コード例 #1
0
        private Principal BuildSharepointPrincipal(DocLibContext context, DCTRoleAssignment dctRoleAssignment)
        {
            Principal principal = null;

            if (dctRoleAssignment.Member.PricinpalType == DCTPrincipalType.SharePointGroup)
            {
                Group group = context.Web.SiteGroups.GetById(dctRoleAssignment.Member.ID);
                principal = group;
            }
            else
            {
                User user = context.Web.EnsureUser((dctRoleAssignment.Member as DCTUser).LoginName);
                principal = user;
            }

            return(principal);
        }
コード例 #2
0
        public BaseCollection <DCTRoleAssignment> DCMGetRoleAssignments(int storageObjID)
        {
            (storageObjID <= 0).TrueThrow <ArgumentException>("ID:{0}无效,请传入大于0的值.", storageObjID);

            using (DocLibContext context = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
            {
                ListItem listItem = GetListItemById(storageObjID, context);
                if (null == listItem)
                {
                    return(new BaseCollection <DCTRoleAssignment>());
                }
                context.Load(listItem);
                context.Load(listItem.RoleAssignments);
                context.ExecuteQuery();

                RoleAssignmentCollection           roleAssignments = listItem.RoleAssignments;
                BaseCollection <DCTRoleAssignment> results         = new BaseCollection <DCTRoleAssignment>();

                foreach (RoleAssignment roleAssignment in roleAssignments)
                {
                    DCTRoleAssignment dctRoleAssignment = new DCTRoleAssignment();
                    context.Load(roleAssignment.Member);
                    context.Load(roleAssignment.RoleDefinitionBindings);
                    context.ExecuteQuery();

                    dctRoleAssignment.Member = GetPrinciple(roleAssignment.Member.PrincipalType);
                    DCTConverterHelper.Convert(roleAssignment.Member, dctRoleAssignment.Member);

                    dctRoleAssignment.RoleDefinitions = new BaseCollection <DCTRoleDefinition>();
                    RoleDefinitionBindingCollection bindingCollection = roleAssignment.RoleDefinitionBindings;
                    foreach (RoleDefinition roleDefinition in bindingCollection)
                    {
                        DCTRoleDefinition dctRoleDefinition = new DCTRoleDefinition();
                        DCTConverterHelper.Convert(roleDefinition, dctRoleDefinition);
                        dctRoleAssignment.RoleDefinitions.Add(dctRoleDefinition);
                    }

                    results.Add(dctRoleAssignment);
                }

                return(results);
            }
        }
コード例 #3
0
        private RoleDefinitionBindingCollection BuildRoleDefninitionBinding(DocLibContext context, DCTRoleAssignment dctRoleAssignment, out bool ignore)
        {
            RoleDefinitionBindingCollection binding = new RoleDefinitionBindingCollection(context);
            int count = 0;

            foreach (DCTRoleDefinition dctRoleDefinition in dctRoleAssignment.RoleDefinitions)
            {
                if (dctRoleDefinition.Name == IgnoreRole)
                {
                    continue;
                }
                RoleDefinition spRoleDefinition = null;

                if (!string.IsNullOrEmpty(dctRoleDefinition.Name))
                {
                    spRoleDefinition = context.Web.RoleDefinitions.GetByName(dctRoleDefinition.Name);
                }
                else
                {
                    spRoleDefinition = context.Web.RoleDefinitions.GetById(dctRoleDefinition.ID);
                }

                context.Load(spRoleDefinition);
                context.ExecuteQuery();
                binding.Add(spRoleDefinition);
                count++;
            }

            ignore = (count == 0);

            return(binding);
        }