Пример #1
0
        public async Task <IActionResult> Edit(string userId)
        {
            // получаем пользователя
            IdentityUser user = await userManager.FindByIdAsync(userId);

            if (user != null)
            {
                // получем список ролей пользователя
                var userRoles = await userManager.GetRolesAsync(user);

                var allRoles = roleManager.Roles.ToList();


                ChangeRoleModel model = new ChangeRoleModel
                {
                    UserId    = user.Id,
                    UserEmail = user.Email,
                    UserRoles = userRoles,
                    AllRoles  = allRoles
                };
                return(View(model));
            }

            return(NotFound());
        }
Пример #2
0
        public async Task <ActionResult> ChangeRole(string userId)
        {
            if (userId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var role = await UserService.GetUserRole(userId);

            ChangeRoleModel model = new ChangeRoleModel
            {
                UserId  = userId,
                OldRole = role,
                Role    = role
            };

            var userRole = UserService.GetUserRole(userId);
            var roles    = AccountService.GetAllRoles().ToList();

            ViewBag.Role = new SelectList(
                roles,
                "Name",
                "Description",
                model.Role);

            return(View(model));
        }
Пример #3
0
        public eErrors ChangeRole(ChangeRoleModel i_Model)
        {
            eErrors error = eErrors.None;

            using (MyDiveEntities MyDiveDB = new MyDiveEntities())
            {
                ObjectResult <int?> serverResult = MyDiveDB.stp_GetUserRole(i_Model.AdminId);
                List <int>          result       = new List <int>();
                foreach (int res in serverResult)
                {
                    result.Add(res);
                }

                if (result.Count > 0)
                {
                    if (result[0] == 1)
                    {
                        MyDiveDB.stp_ChangeUserRole(i_Model.UserId, (int)i_Model.Role);
                    }
                    else
                    {
                        error = eErrors.UserIsNotAdmin;
                    }
                }
                else
                {
                    error = eErrors.AdminNotExist;
                }
            }

            return(error);
        }
        public async Task <IdentityResult> ChangeRole(ChangeRoleModel model)
        {
            bool roleExist = this.RoleManager.RoleExistsAsync(model.UpdatedRole).Result;

            var user        = this.UserManager.FindByIdAsync(model.Id).Result;
            var currentRole = await this.UserManager.GetRolesAsync(user);

            IdentityResult result = null;

            if (!roleExist && !currentRole.Any())
            {
                return(IdentityResult.Failed());
            }

            if (!roleExist && currentRole.Any())
            {
                await this.UserManager.RemoveFromRoleAsync(user, currentRole.First());

                return(IdentityResult.Success);
            }

            if (roleExist && !currentRole.Any())
            {
                result = await this.UserManager.AddToRoleAsync(user, model.UpdatedRole);
            }
            else
            {
                await this.UserManager.RemoveFromRoleAsync(user, currentRole.First());

                result = await this.UserManager.AddToRoleAsync(user, model.UpdatedRole);
            }

            return(result);
        }
Пример #5
0
        public ActionResult ChangeRole(int?id)
        {
            // Получаем редактируемого пользователя из БД
            User user = db.Users.FirstOrDefault(p => p.Id == id);

            // Если пользователь найден
            if (user != null)
            {
                // Формируем список для dropdown
                SelectList roles;
                // Админ может присвоить роль модератора, пользователя или забанить
                if (User.IsInRole("Admin"))
                {
                    roles = new SelectList(db.Roles.Where(p => p.Id > 1), "Id", "Description");
                }
                // Модератор может присвоить роль пользователя или забанить
                else
                {
                    roles = new SelectList(db.Roles.Where(p => p.Id > 2), "Id", "Description");
                }
                ViewBag.Roles    = roles;
                ViewBag.UserName = user.Login;
                ChangeRoleModel model = new ChangeRoleModel();
                model.UserId = user.Id;
                model.RoleId = (int)user.RoleId;
                return(View(model));
            }
            // иначе выводим ошибку
            else
            {
                return(View("Error"));
            }
        }
Пример #6
0
        public async Task <ActionResult> ChangeRole(string userId)
        {
            var user = await UserManager.FindByIdAsync(userId);

            var model = new ChangeRoleModel();

            if (user == null)
            {
                ModelState.AddModelError("", "Usuário não encontrado");
            }
            else
            {
                model.Role   = user.Roles.FirstOrDefault().RoleId ?? "";
                model.UserId = userId;
            }

            var r = RoleList.CreateSelectableList(Database);

            //foreach (var role in r)
            //{
            //    role.Selected = (role.Text == model.Role);
            //}
            ViewBag.Roles = r;

            return(View(model));
        }
Пример #7
0
 public ActionResult ChangeRole(ChangeRoleModel model)
 {
     if (ModelState.IsValid)
     {
         // Получаем пользователя и роль из БД
         User user = db.Users.FirstOrDefault(p => p.Id == model.UserId);
         Role role = db.Roles.FirstOrDefault(p => p.Id == model.RoleId);
         // Если такие записи найдены в БД
         if (user != null && role != null)
         {
             // Изменяем и сохраняем запись пользователя
             user.Role            = role;
             db.Entry(user).State = EntityState.Modified;
             db.SaveChanges();
             return(RedirectToAction("Profile/" + user.Login, "Account"));
         }
         // иначе добавляем сообщение об ошибке
         else
         {
             ModelState.AddModelError("", "Ошибка при изменении роли...");
         }
     }
     else
     {
         ModelState.AddModelError("", "Ошибка при изменении роли...");
     }
     return(View(model));
 }
Пример #8
0
        public IActionResult ChangeRole(string id)
        {
            if (String.IsNullOrEmpty(id))
            {
                return(NotFound().WithError(LOCALIZATION_ERROR_NOT_FOUND));
            }

            var account = _userManager.Users.Where(u => u.Id == id)?.First();

            if (account == null)
            {
                return(NotFound().WithError(LOCALIZATION_ERROR_NOT_FOUND));
            }

            var             roles = _userManager.GetRolesAsync(account)?.Result;
            ChangeRoleModel model = new ChangeRoleModel
            {
                Id       = account.Id,
                Email    = account.Email,
                Username = account.UserName,
                Roles    = roles == null ? new List <string>() : roles.ToList(),
            };

            return(View(model));
        }
Пример #9
0
        public async Task <ActionResult> ChangeRole([Bind(Include = "UserId,OldRole,Role")] ChangeRoleModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ChangeRoleDTO changeRoleDTO = new ChangeRoleDTO
                    {
                        UserId  = model.UserId,
                        OldRole = model.OldRole,
                        Role    = model.Role
                    };
                    await UserService.ChangeUserRole(changeRoleDTO);

                    TempData["success"] = "Изменения сохранены.";
                }
                catch (Exception)
                {
                    ModelState.AddModelError("", "Произошла ошибка. Попробуйте еще раз либо обратитесь к администратору.");
                }
            }
            ViewBag.Role = GetRoleNameSelectList(model.Role);

            return(View());
        }
        public PartialViewResult ChangeUserRole(string userId, string email)
        {
            var model = new ChangeRoleModel
            {
                UserId = userId,
                Email  = email
            };

            return(PartialView("_ChangeRole", model));
        }
        public async Task <ActionResult> ChangeRole(ChangeRoleModel model)
        {
            var user = await _userManager.FindByIdAsync(model.Id);

            await UpdateRoleStatus(user, UserRoleName, model.IsVerified);
            await UpdateRoleStatus(user, MaintainerRoleName, model.CanUpload);

            await _userManager.UpdateSecurityStampAsync(user);

            return(RedirectToAction("Index"));
        }
Пример #12
0
        public async Task <HttpResponseMessage> Update(ChangeRoleModel model)
        {
            Thread.CurrentThread.CurrentCulture = culture;

            var role = "";

            if (model.roleId == "0")
            {
                role = "Administrador";
            }
            else if (model.roleId == "1")
            {
                role = "Provider";
            }
            else if (model.roleId == "2")
            {
                role = "User";
            }

            try
            {
                using (SqlConnection connection1 = new SqlConnection(connetionString))
                {
                    await connection1.OpenAsync();

                    string roleid = await GetRoleId(connection1, role);

                    if (roleid != "")
                    {
                        await doChangeRole(connection1, model, roleid);
                    }
                }
            }
            catch (TransactionAbortedException ex)
            {
                ErrorModel _errors = new ErrorModel();
                _errors.message = ex.Message;
                return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, _errors));
            }
            catch (ApplicationException ex)
            {
                ErrorModel _errors = new ErrorModel();
                _errors.message = ex.Message;
                return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, _errors));
            }
            catch (Exception ex)
            {
                ErrorModel _errors = new ErrorModel();
                _errors.message = ex.Message;
                return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, _errors));
            }

            return(Request.CreateResponse(System.Net.HttpStatusCode.OK));
        }
Пример #13
0
        public IActionResult EditRole(ChangeRoleModel inputModel)
        {
            var result = this.AdminService.ChangeRole(inputModel).Result;

            if (result == IdentityResult.Success)
            {
                return(RedirectToAction(nameof(AllUsers)));
            }

            this.ViewData[GlobalConstants.Error] = GlobalConstants.RoleChangeError;
            return(this.EditRole(inputModel.Id));
        }
        public ActionResult ChangeRole(ChangeRoleModel model)
        {
            ApplicationUser user    = UserManager.FindById(model.UserId);
            string          oldRole = user.Roles.ToList()[0].RoleId;

            oldRole = db.Roles.Where(r => r.Id == oldRole).First().Name;

            UserManager.RemoveFromRole(user.Id, oldRole);
            UserManager.AddToRole(user.Id, model.Role);

            return(RedirectToAction("Index", "Users"));
        }
Пример #15
0
        public async Task <IActionResult> UpdateRole(ChangeRoleModel model)
        {
            var user = _dbContext.Users.Single(x => x.Id == model.UserRoles.First().UserId);

            var roles = await _userManager.GetRolesAsync(user);

            await _userManager.RemoveFromRolesAsync(user, roles);

            var role = _dbContext.Roles
                       .Single(x => x.Id == model.UserRoles.First().RoleId);

            await _userManager.AddToRoleAsync(user, role.Name);

            StatusMessage = "Role Updated";
            return(RedirectToAction(nameof(ManageUsers)));
        }
        public void ChangeRoleShouldFailWithNonExistantRole()
        {
            //arrange
            var roles = new[]
            {
                "admin",
                "user"
            };

            foreach (var currentRolename in roles)
            {
                var role = new IdentityRole
                {
                    Name = currentRolename
                };

                this.roleManager.CreateAsync(role).GetAwaiter();
            }

            var user = new GetShreddedUser
            {
                Id        = "UserIdTests",
                UserName  = "******",
                FirstName = "UserFirstNameTests",
                LastName  = "UserLastNameTests",
            };

            this.userManager.CreateAsync(user).GetAwaiter();
            this.Context.SaveChanges();

            //act
            string newRole = "RoleTests";

            var model = new ChangeRoleModel
            {
                Id = user.Id,
                ApplicationRoles = roles,
                UpdatedRole      = newRole,
                Username         = user.UserName,
                Role             = GlobalConstants.DefaultRole
            };

            var methodResult = this.adminService.ChangeRole(model);

            //assert
            methodResult.Should().Equals(IdentityResult.Failed());
        }
        public async Task <PartialViewResult> ChangeUserRole(ChangeRoleModel changeRoleModel)
        {
            if (ModelState.IsValid)
            {
                var result = await UserService.ChangeUserRole(changeRoleModel.Role, changeRoleModel.UserId);

                if (result.Succedeed)
                {
                    ViewBag.ChangeRoleStatus = "Success";
                    return(PartialView("_ChangeRole", changeRoleModel));
                }
                ModelState.AddModelError(result.Property, result.Message);
            }

            ViewBag.ChangeRoleStatus = "Fail";
            return(PartialView("_ChangeRole", changeRoleModel));
        }
        public async Task <ActionResult> ChangeRole(string id)
        {
            var user           = _userManager.Users.Where(x => x.Id == id).Include(x => x.Roles).First();
            var verifiedRoleId = await GetVerifiedRoleId();

            var maintainerRoleId = await GetMaintainerRoleId();

            var model = new ChangeRoleModel
            {
                Id         = user.Id,
                UserName   = user.UserName,
                IsVerified = user.Roles.Any(r => r.RoleId == verifiedRoleId),
                CanUpload  = user.Roles.Any(r => r.RoleId == maintainerRoleId)
            };

            return(View(model));
        }
Пример #19
0
        public async Task <IActionResult> Edit(string userId)
        {
            User user = await _userManager.FindByIdAsync(userId);

            if (user != null)
            {
                var userRoles = await _userManager.GetRolesAsync(user);

                var             allRoles = _roleManager.Roles.ToList();
                ChangeRoleModel model    = new ChangeRoleModel {
                    UserId = user.Id, UserEmail = user.Email, UserRoles = userRoles, AllRoles = allRoles
                };
                return(View(model));
            }

            return(NotFound());
        }
Пример #20
0
        public async Task <ActionResult> Edit(string Id)
        {
            ApplicationRole role = await RoleManager.FindByIdAsync(Id);

            if (role == null)
            {
                return(View("Error", new string[] { "该角色不存在!" }));
            }
            ChangeRoleModel model = new ChangeRoleModel
            {
                Id          = role.Id,
                RoleName    = role.Name,
                Description = role.Description
            };

            return(View(model));
        }
Пример #21
0
        public ActionResult RoleChange(ChangeRoleModel model)
        {
            #region role and is logged in
            if (Session["uname"] == null || Session["uname"].ToString() == "")
            {
                return(RedirectToAction("Login", "User"));
            }

            if (Session["role"].ToString() != "Admin")
            {
                return(RedirectToAction("Index", "Unauthorised"));
            }


            #endregion

            Database d = Database.CurrentInstance;

            AESCryptoStuff aes_obj = AESCryptoStuff.CurrentInstance;
            try
            {
                if (d.OpenConnection())
                {
                    string       queryString = "UPDATE dububase.users SET role = @role Where username=@username;";
                    MySqlCommand cmd         = new MySqlCommand(queryString, d.conn);
                    cmd.CommandText = queryString;
                    cmd.Parameters.AddWithValue("@role", model.NewRole);
                    cmd.Parameters.AddWithValue("@username", model.Username);
                    cmd.ExecuteNonQuery();
                    return(RedirectToAction("UserProfile", "Admin", new { username = model.Username }));
                }
            }catch (System.Data.SqlClient.SqlException ex)
            {
                string errorMsg = "Error";
                errorMsg += ex.Message;
                throw new Exception(errorMsg);
            }
            finally
            {
                d.CloseConnection();
            }

            //change to somewhere
            return(View());
        }
Пример #22
0
        public async Task <IActionResult> ChangeRole(string id)
        {
            User user = await userManager.FindByIdAsync(id);

            if (user != null)
            {
                var userRoles = await userManager.GetRolesAsync(user);

                var             allRoles = roleManager.Roles.ToList();
                ChangeRoleModel model    = new ChangeRoleModel {
                    Id = user.Id, UserName = user.UserName, Roles = allRoles, UserRoles = userRoles
                };
                return(View(model));
            }
            else
            {
                return(NotFound());
            }
        }
Пример #23
0
        public IActionResult UpdateRole(string userId)
        {
            var user = _dbContext.Users.Single(x => x.Id == userId);

            List <IdentityUserRole <string> > userRoles = _dbContext.UserRoles.Where(x => x.UserId == userId).ToList();

            var model = new ChangeRoleModel
            {
                User  = user,
                Roles = _dbContext.Roles
                        .Select(x => new { x.Id, x.Name })
                        .AsEnumerable()
                        .Select(x => new Tuple <string, string>(x.Id, x.Name))
                        .ToList(),
                UserRoles = userRoles
            };

            return(View(model));
        }
Пример #24
0
        private async Task doChangeRole(SqlConnection connection1, ChangeRoleModel model, string roleId)
        {
            String commandText1 = "UPDATE AspNetUserRoles " +
                                  "SET RoleId = @roleId " +
                                  "WHERE UserId = @userId";

            SqlCommand command1 = new SqlCommand(commandText1, connection1);

            SqlParameter parameter = new SqlParameter("@roleId", SqlDbType.VarChar);

            parameter.Value = roleId;
            command1.Parameters.Add(parameter);

            parameter       = new SqlParameter("@userId", SqlDbType.VarChar);
            parameter.Value = model.userId;
            command1.Parameters.Add(parameter);

            await command1.ExecuteNonQueryAsync();
        }
Пример #25
0
        public async Task <ActionResult> ChangeRole(string userId)
        {
            if (userId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var role = await UserService.GetUserRole(userId);

            ChangeRoleModel model = new ChangeRoleModel
            {
                UserId  = userId,
                OldRole = role,
                Role    = role
            };

            ViewBag.Role = GetRoleNameSelectList(model.Role);

            return(View(model));
        }
Пример #26
0
        public async Task <ActionResult> Edit(ChangeRoleModel role)
        {
            ApplicationRole mroles = await RoleManager.FindByIdAsync(role.Id);

            if (!ModelState.IsValid)
            {
                return(View(role));
            }
            mroles.Id          = role.Id;
            mroles.Description = role.Description;
            mroles.WhoCreate   = User.Identity.GetUserName();

            var result = await RoleManager.UpdateAsync(mroles);

            if (result.Succeeded)
            {
                return(View("_SuccessView", new { Result = "修改成功" }));
            }
            return(View());
        }
Пример #27
0
        public async Task <ActionResult> ChangeRole(ChangeRoleModel model)
        {
            if (ModelState.IsValid)
            {
                var roles = await UserManager.GetRolesAsync(model.UserId);

                var roleFound = Database.Roles.Find(model.Role);

                foreach (var role in roles)
                {
                    await UserManager.RemoveFromRoleAsync(model.UserId, role);
                }

                await UserManager.AddToRoleAsync(model.UserId, roleFound.Name);

                return(RedirectToAction("Index", new { userId = model.UserId, message = ManageMessageId.RoleChanged }));
            }

            ViewBag.Roles = RoleList.CreateSelectableList(Database);
            return(View(model));
        }
Пример #28
0
        public async Task <IActionResult> Edit(string id)
        {
            var user = await userManager.FindByIdAsync(id);

            if (user != null)
            {
                var userRoles = await userManager.GetRolesAsync(user);

                var             allRoles = roleManager.Roles.ToList();
                ChangeRoleModel model    = new ChangeRoleModel
                {
                    UserId    = user.Id,
                    UserName  = user.UserName,
                    UserRoles = userRoles.ToList(),
                    AllRoles  = allRoles
                };
                return(View(model));
            }
            ModelState.AddModelError("", "User not found");
            return(View("Index", "Admin"));
        }
Пример #29
0
        public async Task <IActionResult> Change(string userId)
        {
            int  _id  = int.Parse(userId);
            User user = await _user.FindById(_id);

            if (user != null)
            {
                var userRoles = await _user.RolesInUser(user.Id);

                var allRoles = await _role.ToListRole();

                ChangeRoleModel model = new ChangeRoleModel
                {
                    UserId    = user.Id,
                    UserEmail = user.Email,
                    UserRoles = userRoles,
                    AllRoles  = allRoles
                };
                return(View(model));
            }
            return(NotFound());
        }
Пример #30
0
        public IHttpActionResult ChangeUserRole([FromBody] ChangeRoleModel i_Model)
        {
            LogControllerEntring("changerole");
            IHttpActionResult result = Ok();
            eErrors           error  = eErrors.None;

            try
            {
                error = m_Logic.ChangeRole(i_Model);
                if (error != eErrors.None)
                {
                    result = BadRequest(((int)error).ToString());
                }
                LogData("user role changed", i_Model);
            }
            catch (Exception ex)
            {
                result = LogException(ex, JsonConvert.SerializeObject(i_Model));
            }

            return(result);
        }