public static bool HasPermissions(this IObjVerEx obj, PERMISSIONS permissionsToCheck, int userOrGroupId, bool isGroup) { if (obj.objVerEx.Permissions == null) { return(false); } bool hasPermission = true; ObjectVersionPermissions objPermissions = obj.objVerEx.Permissions; AccessControlListComponent aclComponent = objPermissions.AccessControlList.CustomComponent; AccessControlEntryData aceData = aclComponent.GetACEByUserOrGroupID(userOrGroupId, isGroup); if ((permissionsToCheck & PERMISSIONS.READ) == PERMISSIONS.READ) { hasPermission = hasPermission && aceData.ReadPermission == MFPermission.MFPermissionAllow; } if ((permissionsToCheck & PERMISSIONS.DELETE) == PERMISSIONS.DELETE) { hasPermission = hasPermission && aceData.DeletePermission == MFPermission.MFPermissionAllow; } if ((permissionsToCheck & PERMISSIONS.EDIT) == PERMISSIONS.EDIT) { hasPermission = hasPermission && aceData.EditPermission == MFPermission.MFPermissionAllow; } if ((permissionsToCheck & PERMISSIONS.CHANGE_PERMISSIONS) == PERMISSIONS.CHANGE_PERMISSIONS) { hasPermission = hasPermission && aceData.ChangePermissionsPermission == MFPermission.MFPermissionAllow; } if ((permissionsToCheck & PERMISSIONS.ATTACH_OBJECT) == PERMISSIONS.ATTACH_OBJECT) { hasPermission = hasPermission && aceData.AttachObjectsPermission == MFPermission.MFPermissionAllow; } return(hasPermission); }
public static void CreateNewDocumentWithNewACL() { LogIntoVault(); //Prerequisites for creating an object in mfiles; //Type of object E.g. 0 is for document //PropertyValues //Source files if the object's type is document or any other type that can have documents var properties = new PropertyValues(); //Class 0 -> Sınıflandırılmamış Doküman var classProperty = new PropertyValue(); classProperty.PropertyDef = (int)MFBuiltInPropertyDef.MFBuiltInPropertyDefClass; //Simply 100 classProperty.TypedValue.SetValue(MFDataType.MFDatatypeLookup, 0); properties.Add(0, classProperty); //Name or Title -> İsim veya başlık var nameProperty = new PropertyValue(); nameProperty.PropertyDef = (int)MFBuiltInPropertyDef.MFBuiltInPropertyDefNameOrTitle; //Simply 0 nameProperty.TypedValue.SetValue(MFDataType.MFDatatypeText, "SampleTextFile"); properties.Add(0, nameProperty); //File from fileSystem var sourceObjectFile = new SourceObjectFile(); sourceObjectFile.Title = "SampleTextFile"; sourceObjectFile.SourceFilePath = "SampleTextFile.txt"; sourceObjectFile.Extension = "txt"; //Create New ACL var accessControlList = new AccessControlList(); accessControlList.IsFullyAuthoritative = true; //Create Component var aclComponent = new AccessControlListComponent(); //Create Entry var aclEntryKey = new AccessControlEntryKey(); aclEntryKey.SetUserOrGroupID(1, true); //Create Data (Permissions for Entry) var aclData = new AccessControlEntryData(); aclData.DeletePermission = MFPermission.MFPermissionNotSet; aclData.ReadPermission = MFPermission.MFPermissionAllow; aclData.EditPermission = MFPermission.MFPermissionNotSet; aclData.AttachObjectsPermission = MFPermission.MFPermissionAllow; aclData.ChangePermissionsPermission = MFPermission.MFPermissionNotSet; //Set Entry Key, Data aclComponent.AccessControlEntries.Add(aclEntryKey, aclData); //Add to ACL accessControlList.CustomComponent = aclComponent; var namedACLAdmin = new NamedACLAdmin(); var namedACL = new NamedACL(); namedACL.AccessControlList = accessControlList; namedACL.Name = "NewACL" + Guid.NewGuid().ToString().Substring(7); namedACLAdmin.NamedACL = namedACL; //Add ACL TO Server var newCreatedACL = loggedInVault.NamedACLOperations.AddNamedACLAdmin(namedACLAdmin); //Use newly Added ACL loggedInVault.ObjectOperations.CreateNewSFDObject( 0 , properties , sourceObjectFile , true , newCreatedACL.NamedACL.AccessControlList); }
/// <summary> /// Initializes a new instance of the <see cref="_CreateOrUpdateInfoComponent"/> class. /// </summary> /// <param name="selector">The selector.</param> /// <param name="pageObjectFactory">The page object factory.</param> /// <param name="driver">The driver.</param> /// <exception cref="ArgumentNullException">pageObjectFactory</exception> public _CreateOrUpdateInfoComponent(By selector, IPageObjectFactory pageObjectFactory, IWebDriver driver) : base(selector, driver) { this.pageObjectFactory = pageObjectFactory ?? throw new ArgumentNullException(nameof(pageObjectFactory)); GeneralInformation = new GeneralInformationComponent( By.CssSelector(".panel.panel-default"), pageObjectFactory, WrappedDriver); GiftCard = new GroupGiftCardComponent( By.CssSelector("#group-giftcard"), WrappedDriver); DownloadableProduct = new DownloadableProductComponent( By.CssSelector("#group-downloads"), WrappedDriver); RecurringProduct = new RecurringProductComponent( By.CssSelector("#group-recurring"), WrappedDriver); Rental = new RentalComponent( By.CssSelector("#group-rental"), WrappedDriver); Prices = new PricesComponent( By.CssSelector("#group-prices"), WrappedDriver); TierPrices = new TierPricesComponent( By.CssSelector("#tier-prices"), pageObjectFactory, WrappedDriver); Inventory = new InventoryComponent( By.CssSelector("#group-inventory"), WrappedDriver); Shipping = new ShippingComponent( By.CssSelector("#group-shipping"), WrappedDriver); Mapping = new MappingComponent( By.CssSelector("#group-shipping + div"), WrappedDriver); AccessControlList = new AccessControlListComponent( By.CssSelector("#group-shipping + div + div"), WrappedDriver); RequireOtherProducts = new RequireOtherProductsComponent( By.CssSelector("#group-required-other-products"), WrappedDriver); RelatedProducts = new RelatedProductsComponent( By.CssSelector("#group-required-other-products + div"), pageObjectFactory, WrappedDriver); CrossSells = new CrossSellsComponent( By.CssSelector("#group-required-other-products + div + div"), pageObjectFactory, WrappedDriver); }