/// <summary> /// Returns all the users for a given role /// </summary> /// <param name="role"></param> /// <returns></returns> public static List <IGraffitiUser> GetUsers(string role) { var userList = ZCache.Get <string[]>("usersByRole-" + role); if (userList == null) { if (role != "*") { userList = controller.GetUsersInRole(role); } else { StringCollection sc = new StringCollection(); foreach (RolePermissions rp in RolePermissionManager.GetRolePermissions()) { var users = controller.GetUsersInRole(rp.RoleName); foreach (string u in users) { if (!sc.Contains(u)) { sc.Add(u.ToLower()); } } } var admimUsers = controller.GetUsersInRole(AdminRole); foreach (string u in admimUsers) { if (!sc.Contains(u)) { sc.Add(u.ToLower()); } } userList = new string[sc.Count]; sc.CopyTo(userList, 0); } ZCache.InsertCache("usersByRole-" + role, userList, 180); } var the_users = new List <IGraffitiUser>(); foreach (string username in userList) { the_users.Add(GetUser(username)); } the_users.Sort(delegate(IGraffitiUser u1, IGraffitiUser u2) { return (Comparer <string> .Default.Compare( u1.ProperName, u2.ProperName)); }); return(the_users); }
public static bool IsEveryoneAContentPublisher() { RolePermissionsCollection rpc = RolePermissionManager.GetRolePermissions(); foreach (RolePermissions rp in rpc) { if (rp.RoleName == GraffitiUsers.EveryoneRole) { if (rp.HasEdit || rp.HasPublish) { return(true); } } } return(false); }
public static void DeleteRole(string roleName) { // Remove users from role List <IGraffitiUser> roleUsers = GraffitiUsers.GetUsers(roleName); if (roleUsers != null && roleUsers.Count > 0) { foreach (IGraffitiUser user in roleUsers) { GraffitiUsers.RemoveUserFromRole(user.Name, roleName); } } RolePermissionsCollection rp = RolePermissionManager.GetRolePermissions(); RoleCategoryPermissionsCollection rpc = RolePermissionManager.GetRoleCategoryPermissions(); foreach (RolePermissions rperm in rp) { if (String.Compare(rperm.RoleName, roleName, StringComparison.InvariantCultureIgnoreCase) == 0) { RolePermissions.Destroy(RolePermissions.Columns.RoleName, rperm.RoleName); break; } } foreach (RoleCategoryPermissions rcatperm in rpc) { if (String.Compare(rcatperm.RoleName, roleName, StringComparison.InvariantCultureIgnoreCase) == 0) { RoleCategoryPermissions.Destroy(RolePermissions.Columns.RoleName, rcatperm.RoleName); break; } } RolePermissionManager.MarkDirty(); // Remove role from other membership databases controller.DeleteRole(roleName); }