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);
        }
Beispiel #2
0
 private bool Checkperm(AccessControlEntryData perm)
 {
     return(!(
                //perm.AttachObjectsPermission == MFPermission.MFPermissionAllow ||
                perm.ChangePermissionsPermission == MFPermission.MFPermissionAllow ||
                perm.DeletePermission == MFPermission.MFPermissionAllow ||
                perm.EditPermission == MFPermission.MFPermissionAllow ||
                perm.ReadPermission == MFPermission.MFPermissionAllow));
 }
        internal static AccessControlEntryDataWrapper GetInstance()
        {
            AccessControlEntryData real = default(AccessControlEntryData);

            RealInstanceFactory(ref real);
            var instance = (AccessControlEntryDataWrapper)AccessControlEntryDataWrapper.GetWrapper(real);

            InstanceFactory(ref instance);
            if (instance == null)
            {
                Assert.Inconclusive("Could not Create Test Instance");
            }
            return(instance);
        }
Beispiel #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AccessControlEntry"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="bluePrintInfo"><see cref="T:Tridion.ContentManager.CoreService.Client.AccessControlEntryData" /></param>
 public AccessControlEntry(Client client, AccessControlEntryData accessControlEntryData) : base(client)
 {
     mAccessControlEntryData = accessControlEntryData;
 }
        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);
        }
 static partial void RealInstanceFactory(ref AccessControlEntryData real, [CallerMemberName] string callerName = "");
 /// <summary>
 /// Initializes a new instance of the <see cref="AccessControlEntry"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="bluePrintInfo"><see cref="T:Tridion.ContentManager.CoreService.Client.AccessControlEntryData" /></param>
 public AccessControlEntry(Client client, AccessControlEntryData accessControlEntryData)
     : base(client)
 {
     mAccessControlEntryData = accessControlEntryData;
 }
Beispiel #8
0
 public void Add(AccessControlEntryKey AccessControlEntryKey, AccessControlEntryData AccessControlEntryData)
 {
     throw new NotImplementedException();
 }