예제 #1
0
        public ActionResult ResetUserType()
        {
            int id   = DoRequest.GetFormInt("id");
            int type = DoRequest.GetFormInt("type");

            int returnValue = -1;
            var res         = SetUserType.Do(id, type);

            if (res != null && res.Header != null && res.Header.Result != null && res.Header.Result.Code != null)
            {
                returnValue = Utils.StrToInt(res.Header.Result.Code, -1);
            }
            if (returnValue == 0)
            {
                DoCache cache = new DoCache();
                cache.RemoveCacheStartsWith("user");
                return(Json(new { error = false, message = "操作成功!" }));
            }

            return(Json(new { error = true, message = "操作失败" }));
        }
예제 #2
0
        public async Task <IActionResult> SetUserTypeAction(SetUserType setUserType)
        {
            InitialSystemInfo();
            if (!ModelState.IsValid)
            {
                ProcessModelState();
            }

            ApplicationUser user;

            //Check if user exist?
            try
            {
                user = _context.Users.First(a => a.Id == setUserType.Id);
            }
            catch (InvalidOperationException)
            {
                TempData["Error"] = "Please select correct user!";
                return(RedirectToAction("SetUserType"));
            }
            //Check if already a Administrator
            var roles = await _userManager.GetRolesAsync(user);

            if (roles.Any() && roles.Contains(Roles.Administrator))
            {
                TempData["Error"] = "User " + user.Email + "already has \"Administrator\" role! Cannot Add!";
                return(RedirectToAction("SetUserType"));
            }
            //Add user's role
            await _userManager.AddToRoleAsync(user, Roles.Administrator);

            _context.Administraotrs.Add(new Administraotr {
                Id = user.Id, Name = user.UserName
            });
            await _context.SaveChangesAsync();

            TempData["Success"] = "User" + user.Email + " added \"Administrator\" role!";
            return(RedirectToAction("SetUserType"));
        }