private static bool DeleteUserRoleInternal(int portalId, int userId, int roleId) { var user = UserController.GetUserById(portalId, userId); var userRole = RoleController.Instance.GetUserRole(portalId, userId, roleId); bool delete = true; var portal = PortalController.Instance.GetPortal(portalId); if (portal != null && userRole != null) { if (CanRemoveUserFromRole(portal, userId, roleId)) { provider.RemoveUserFromRole(portalId, user, userRole); EventLogController.Instance.AddLog(userRole, PortalController.Instance.GetCurrentPortalSettings(), UserController.Instance.GetCurrentUserInfo().UserID, string.Empty, EventLogController.EventLogType.ROLE_UPDATED); // Remove the UserInfo from the Cache, as it has been modified DataCache.ClearUserCache(portalId, user.Username); Instance.ClearRoleCache(portalId); EventManager.Instance.OnRoleLeft(new RoleEventArgs() { Role = Instance.GetRoleById(portalId, roleId), User = user }); } else { delete = false; } } return(delete); }
/// <summary> /// Completely remove all a user's roles for a specific portal. This method is used when /// anonymizing a user. /// </summary> /// <param name="user">User for which all roles must be deleted. The PortalId property /// is used to determine for which portal roles must be removed.</param> internal static void DeleteUserRoles(UserInfo user) { var ctrl = new RoleController(); var userRoles = ctrl.GetUserRoles(user, true); foreach (var ur in userRoles.Where(r => r.PortalID == user.PortalID)) { provider.RemoveUserFromRole(user.PortalID, user, ur); } }
private static bool DeleteUserRoleInternal(int portalId, int userId, int roleId) { var roleController = new RoleController(); var user = UserController.GetUserById(portalId, userId); var userRole = roleController.GetUserRole(portalId, userId, roleId); var portalController = new PortalController(); bool delete = true; var portal = portalController.GetPortal(portalId); if (portal != null && userRole != null) { if (CanRemoveUserFromRole(portal, userId, roleId)) { provider.RemoveUserFromRole(portalId, user, userRole); var objEventLog = new EventLogController(); objEventLog.AddLog(userRole, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", EventLogController.EventLogType.ROLE_UPDATED); //Remove the UserInfo from the Cache, as it has been modified DataCache.ClearUserCache(portalId, user.Username); TestableRoleController.Instance.ClearRoleCache(portalId); } else { delete = false; } } return(delete); }
/// <summary> /// Delete/Remove a User from a Role /// </summary> /// <param name="PortalId">The Id of the Portal</param> /// <param name="UserId">The Id of the User</param> /// <param name="RoleId">The Id of the Role</param> /// <returns></returns> public bool DeleteUserRole(int PortalId, int UserId, int RoleId) { UserInfo objUser = UserController.GetUser(PortalId, UserId, false); UserRoleInfo objUserRole = GetUserRole(PortalId, UserId, RoleId); PortalController objPortals = new PortalController(); bool blnDelete = true; PortalInfo objPortal = objPortals.GetPortal(PortalId); if (objPortal != null) { if ((objPortal.AdministratorId != UserId || objPortal.AdministratorRoleId != RoleId) && objPortal.RegisteredRoleId != RoleId) { provider.RemoveUserFromRole(PortalId, objUser, objUserRole); } else { blnDelete = false; } } return(blnDelete); }