示例#1
0
        public static IEnumerable <IOperationPermission> GetCustomPermissions(this IXpandRoleCustomPermissions xpandRoleCustomPermissions)
        {
            var operationPermissions = xpandRoleCustomPermissions.Permissions.SelectMany(data => data.GetPermissions());
            var permissions          = operationPermissions.Union(PermissionProviderStorage.Instance.SelectMany(info => info.GetPermissions(xpandRoleCustomPermissions)));

            return(xpandRoleCustomPermissions.SecurityOperationAttributePermissions().Concat(permissions));
        }
示例#2
0
        public static IEnumerable <IOperationPermission> SecurityOperationAttributePermissions(this IXpandRoleCustomPermissions xpandRoleCustomPermissions)
        {
            var operationPermissionCollectionMembers = xpandRoleCustomPermissions.OperationPermissionCollectionMembers();
            var operationPermissions = new List <IOperationPermission>();

            foreach (var operationPermissionCollectionMember in operationPermissionCollectionMembers)
            {
                operationPermissions.AddRange(xpandRoleCustomPermissions.ObjectOperationPermissions(operationPermissionCollectionMember));
            }
            return(operationPermissions.Distinct());
        }
示例#3
0
        static IEnumerable <XPMemberInfo> OperationPermissionCollectionMembers(this IXpandRoleCustomPermissions xpandRoleCustomPermissions)
        {
            var classInfo = ((IXPClassInfoProvider)xpandRoleCustomPermissions).ClassInfo;

            return(classInfo.OwnMembers.Where(info => info.IsAssociationList && info.CollectionElementType.HasAttribute(typeof(SecurityOperationsAttribute))));
        }