private static List <UserRoleInfoDTO> ConvertUserInfo(UserInfo userInfo, int RoleID) { List <UserRoleInfoDTO> ListUserInfo = new List <UserRoleInfoDTO>(); if (RoleID > 0) { foreach (UserInfo uInfo in DotNetNuke.Security.Roles.RoleController.Instance.GetUsersByRole((PortalController.Instance.GetCurrentSettings() as PortalSettings).PortalId, RoleManager.GetRole(userInfo.PortalID, RoleID).Name)) { UserRoleInfo userInfoRole = DotNetNuke.Security.Roles.RoleController.Instance.GetUserRole(PortalSettings.Current.PortalId, uInfo.UserID, RoleID); UserRoleInfoDTO UserRoleDTO = new UserRoleInfoDTO { UserId = uInfo.UserID, RoleId = RoleID, DisplayName = uInfo.DisplayName, StartTime = userInfoRole.EffectiveDate, ExpiresTime = userInfoRole.ExpiryDate, AllowExpired = UserManager.AllowExpired(uInfo.UserID, RoleID, PortalSettings.Current), AllowDelete = DotNetNuke.Security.Roles.RoleController.CanRemoveUserFromRole(PortalSettings.Current, uInfo.UserID, RoleID) }; ListUserInfo.Add(UserRoleDTO); } } return(ListUserInfo); }
public ActionResult AddUserToRole(UserRoleDto userRoleDto) { bool notifyUser = false; bool isOwner = false; ActionResult response = new ActionResult(); try { Validate(userRoleDto); if (!UserManager.AllowExpired(userRoleDto.UserId, userRoleDto.RoleId, PortalSettings)) { userRoleDto.StartTime = userRoleDto.ExpiresTime = Null.NullDate; } UserInfo user = UserManager.GetUser(userRoleDto.UserId, PortalSettings, UserInfo, out response); if (user == null) { return(response); } RoleInfo role = DotNetNuke.Security.Roles.RoleController.Instance.GetRoleById(PortalSettings.PortalId, userRoleDto.RoleId); if (role.SecurityMode != SecurityMode.SocialGroup && role.SecurityMode != SecurityMode.Both) { isOwner = false; } if (role.Status != RoleStatus.Approved) { response.AddError("HttpStatusCode.BadRequest" + HttpStatusCode.BadRequest, Localization.GetString("CannotAssginUserToUnApprovedRole", Dnn.PersonaBar.Roles.Components.Constants.LocalResourcesFile)); } foreach (UserRoleInfoDTO ur in ConvertUserInfo(UserInfo, userRoleDto.RoleId)) { if (userRoleDto.UserId == ur.UserId) { response.AddError("UserAlreadyExist", Localization.GetString("UserAlreadyExist", Components.Constants.LocalResourcesFile)); } } if (response.IsSuccess) { DotNetNuke.Security.Roles.RoleController.AddUserRole(user, role, PortalSettings, RoleStatus.Approved, userRoleDto.StartTime, userRoleDto.ExpiresTime, notifyUser, isOwner); UserRoleInfo addedUser = DotNetNuke.Security.Roles.RoleController.Instance.GetUserRole(PortalSettings.PortalId, userRoleDto.UserId, userRoleDto.RoleId); PortalInfo portal = PortalController.Instance.GetPortal(PortalSettings.PortalId); UserRoleInfoDTO UserRoleDTO = new UserRoleInfoDTO { UserId = addedUser.UserID, RoleId = addedUser.RoleID, DisplayName = addedUser.FullName, StartTime = addedUser.EffectiveDate, ExpiresTime = addedUser.ExpiryDate, AllowExpired = UserManager.AllowExpired(addedUser.UserID, addedUser.RoleID, PortalSettings), AllowDelete = DotNetNuke.Security.Roles.RoleController.CanRemoveUserFromRole(portal, addedUser.UserID, addedUser.RoleID) }; response.Data = UserRoleDTO; } } catch (ArgumentException ex) { response.AddError("HttpStatusCode.BadRequest" + HttpStatusCode.BadRequest, ex.Message); } catch (Exception ex) { response.AddError("HttpStatusCode.InternalServerError" + HttpStatusCode.InternalServerError, ex.Message); } return(response); }
public ActionResult GetRoleUsers(string keyword, int roleId, int pageIndex, int pageSize) { ActionResult actionResult = new ActionResult(); try { int PortalID = (PortalController.Instance.GetCurrentSettings() as PortalSettings).PortalId; RoleInfo role = DotNetNuke.Security.Roles.RoleController.Instance.GetRoleById(PortalID, roleId); if (role == null && !actionResult.IsSuccess) { actionResult.AddError(HttpStatusCode.NotFound.ToString(), Localization.GetString("RoleNotFound", Components.Constants.LocalResourcesFile)); } if (actionResult.IsSuccess) { if (role.RoleID == PortalSettings.AdministratorRoleId && !IsAdmin()) { actionResult.AddError(HttpStatusCode.BadRequest.ToString(), Localization.GetString("InvalidRequest", Components.Constants.LocalResourcesFile)); } } if (actionResult.IsSuccess) { IList <UserRoleInfo> users = DotNetNuke.Security.Roles.RoleController.Instance.GetUserRoles(PortalID, Null.NullString, role.RoleName); if (!string.IsNullOrEmpty(keyword)) { users = users.Where(u => u.FullName.ToLower().Contains(keyword.ToLower())).ToList(); } int totalRecords = users.Count; int startIndex = pageIndex * pageSize; PortalInfo portal = PortalController.Instance.GetPortal(PortalID); List <UserRoleInfoDTO> pagedData = new List <UserRoleInfoDTO>(); foreach (UserRoleInfo u in users.Skip(startIndex).Take(pageSize)) { UserRoleInfoDTO uRoleInfo = new UserRoleInfoDTO(); UserInfo UserInfo = UserController.GetUserById((PortalController.Instance.GetCurrentSettings() as PortalSettings).PortalId, u.UserID); uRoleInfo.UserId = u.UserID; uRoleInfo.UserName = UserInfo.Username; uRoleInfo.Email = UserInfo.Email; uRoleInfo.Avatar = UserInfo.Profile.PhotoURL.Contains("no_avatar.gif") ? Vanjaro.Common.Utilities.UserUtils.GetProfileImage(PortalSettings.Current.PortalId, u.UserID, u.Email) : UserInfo.Profile.PhotoURL; uRoleInfo.FirstName = UserInfo.FirstName; uRoleInfo.LastName = UserInfo.LastName; uRoleInfo.RoleId = u.RoleID; uRoleInfo.DisplayName = u.FullName; uRoleInfo.StartTime = u.EffectiveDate; uRoleInfo.ExpiresTime = u.ExpiryDate; uRoleInfo.AllowExpired = AllowExpired(u.UserID, u.RoleID); uRoleInfo.AllowDelete = DotNetNuke.Security.Roles.RoleController.CanRemoveUserFromRole(portal, u.UserID, u.RoleID); pagedData.Add(uRoleInfo); } if (actionResult.IsSuccess) { actionResult.Data = new { users = pagedData, totalRecords }; } } } catch (Exception ex) { actionResult.AddError(HttpStatusCode.InternalServerError.ToString(), ex.Message); } return(actionResult); }