Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }