private static Permissions GetAllPermission(bool Locked, int PortalID, List <GenericPermissionInfo> GenericPermissionInfo, List <Permission> PermissionDefinitions)
        {
            Permissions Permissions = new Permissions(true, Locked);

            Permissions.RolePermissions =
                Permissions.RolePermissions.OrderByDescending(p => p.Locked)
                .ThenByDescending(p => p.IsDefault)
                .ThenBy(p => p.RoleName)
                .ToList();

            foreach (GenericPermissionInfo perm in GenericPermissionInfo)
            {
                foreach (Permission p in PermissionDefinitions)
                {
                    if (p.PermissionId == perm.PermissionID)
                    {
                        perm.PermissionName = p.PermissionName;
                    }
                }
                if (perm.UserID == -1 && perm.RoleID != -4)
                {
                    if (perm.RoleID != -1)
                    {
                        perm.RoleName = RoleController.Instance.GetRoleById(PortalID, perm.RoleID).RoleName;
                    }

                    Vanjaro.Common.Manager.PermissionManager.AddRolePermission(Permissions, perm);
                }
                else if (perm.UserID != -1 && perm.RoleID == -4)
                {
                    Vanjaro.Common.Manager.PermissionManager.AddUserPermission(Permissions, perm);
                }
            }
            int    RoleID   = RoleController.Instance.GetRoleById(PortalID, PortalSettings.Current.AdministratorRoleId).RoleID;
            string RoleName = RoleController.Instance.GetRoleById(PortalID, PortalSettings.Current.AdministratorRoleId).RoleName;

            foreach (Permission p in PermissionDefinitions)
            {
                GenericPermissionInfo Permission = new GenericPermissionInfo
                {
                    PermissionName = p.PermissionName,
                    PermissionID   = p.PermissionId,
                    AllowAccess    = true,
                    RoleID         = RoleID,
                    RoleName       = RoleName
                };
                Vanjaro.Common.Manager.PermissionManager.AddRolePermission(Permissions, Permission);
            }
            Permissions.PermissionDefinitions = PermissionDefinitions;
            return(Permissions);
        }
        private static List <GenericPermissionInfo> GetGenericPermissions(FolderPermissionCollection FpCollection)
        {
            List <GenericPermissionInfo> GenericPermissions = new List <GenericPermissionInfo>();

            foreach (PermissionInfoBase pinfo in FpCollection.ToList())
            {
                GenericPermissionInfo gp = new GenericPermissionInfo
                {
                    AllowAccess  = pinfo.AllowAccess,
                    PermissionID = pinfo.PermissionID,
                    RoleID       = pinfo.RoleID,
                    UserID       = pinfo.UserID,
                    DisplayName  = pinfo.DisplayName
                };
                GenericPermissions.Add(gp);
            }
            return(GenericPermissions);
        }
Ejemplo n.º 3
0
        public static void AddRolePermission(this Permissions.Permissions Permissions, GenericPermissionInfo permissionInfo)
        {
            RolePermission rolePermission = Permissions.RolePermissions.FirstOrDefault(p => p.RoleId == permissionInfo.RoleID);

            if (rolePermission == null)
            {
                rolePermission = new RolePermission
                {
                    RoleId   = permissionInfo.RoleID,
                    RoleName = permissionInfo.RoleName
                };
                Permissions.RolePermissions.Add(rolePermission);
            }

            if (rolePermission.Permissions.All(p => p.PermissionId != permissionInfo.PermissionID))
            {
                rolePermission.Permissions.Add(new Permission
                {
                    PermissionId   = permissionInfo.PermissionID,
                    PermissionName = permissionInfo.PermissionName,
                    AllowAccess    = permissionInfo.AllowAccess
                });
            }
        }