public async Task <IActionResult> RoleAssign(string id, [FromBody] RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await userService.RoleAssign(id, request);

            if (!result)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Exemple #2
0
        public async Task <bool> RoleAssign(string id, RoleAssignRequest roleRequest)
        {
            var client = httpClientFactory.CreateClient();

            client.BaseAddress = new Uri("https://localhost:44373/api/");
            var sessions = httpContextAccessor.HttpContext.Session.GetString("Token");

            client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", sessions);

            var json        = JsonConvert.SerializeObject(roleRequest);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PutAsync($"User/{id}/roles", httpContent);

            return(response.IsSuccessStatusCode);
        }
        private async Task <RoleAssignRequest> GetRoleAssignRequest(string id)
        {
            var userObj = await _userApiClient.GetById(id);

            var roleObj = await _roleApiClient.GetAll();

            var roleAssignRequest = new RoleAssignRequest();

            foreach (var role in roleObj.ResultObj)
            {
                roleAssignRequest.Roles.Add(new SelectItem()
                {
                    Id   = role.Id.ToString(),
                    Name = role.Name,
                });
            }
            return(roleAssignRequest);
        }
Exemple #4
0
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View(request));
            }
            var result = await _userApiClient.RoleAssignAsync(request);

            if (result.IsSuccessed)
            {
                TempData["Result"] = "Gán quyền thành công";
                return(RedirectToAction("Index", "User"));
            }
            ModelState.AddModelError("", result.Message);
            var roleAssignRequest = await GetRoleAssignRequest(request.UserId);

            return(View(roleAssignRequest));
        }
Exemple #5
0
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            var result = await _userApiClient.RoleAssign(request.Id, request);

            if (result.IsSuccessed)
            {
                TempData["result"] = "cap nhat thanh cong";
                return(RedirectToAction("Index"));
            }
            ModelState.AddModelError("", result.Message);
            var roleAssignRequest = await GetRoleAssignRequest(request.Id);

            return(View(roleAssignRequest));
        }
Exemple #6
0
        private async Task <RoleAssignRequest> GetRoleAssignRequest(Guid id)
        {
            var userObj = await _userApiClient.GetUserByID(id);

            var roles = await _rolesApiClient.GetAll();

            var roleAssignRequest = new RoleAssignRequest();

            foreach (var role in roles.ResultObj)
            {
                roleAssignRequest.Roles.Add(new SelectItem()
                {
                    Id       = role.ID.ToString(),
                    Name     = role.Name,
                    Selected = userObj.ResultObj.Roles.Contains(role.Name)
                });
            }
            return(roleAssignRequest);
        }
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            var result = await _userService.RoleAssign(request.Id, request);

            if (result.IsSucceed)
            {
                TempData["result"] = "Cập nhật quyền thành công";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", result.Message);
            var roleAssignRequest = await GetRoleAssignRequest(request.Id);

            return(View(roleAssignRequest));
        }
        private async Task <RoleAssignRequest> GetRoleAssignRequest(int id)
        {
            var userObj = await _userService.GetById(id);

            var roleObj = await _roleService.GetAll();

            var roleAssignRequest = new RoleAssignRequest();

            foreach (var role in roleObj.ResultObject)
            {
                roleAssignRequest.Roles.Add(new SelectedItem()
                {
                    Id       = role.Id,
                    Name     = role.Name,
                    Selected = userObj.ResultObject.Roles.Contains(role.Name)
                });
            }
            return(roleAssignRequest);
        }
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var result = await _userApiClient.RoleAssignForUser(request.Id, request);

            if (result != null && result.IsSuccessed)
            {
                TempData["result"] = "Gán quyền người dùng thành công";
                return(RedirectToAction("Index")); //Neu update thanh cong thì Redirect
            }
            ModelState.AddModelError("", result.Message);
            var roleAssignRequest = await GetRoleAssignRequest(request.Id);

            return(View(roleAssignRequest)); //Neu không thành công thì trả về View với request để user sửa
        }
        private async Task <RoleAssignRequest> GetRoleAssignRequest(Guid id)
        {
            var userObj = await _userApiClient.GetById(id); //tim user

            var roleObj = await _roleApiClient.GetAll();    //tim danh sách quyền có trong hệ thống

            var roleAssignRequest = new RoleAssignRequest();

            foreach (var role in roleObj.ResultObj)
            {
                roleAssignRequest.Roles.Add(new SelectItem()        //Nhờ Roles được new khi khai báo thuộc tính nên khi Add vào không bị Add vào danh sách null
                {
                    Id       = role.Id.ToString(),
                    Name     = role.Name,
                    Selected = userObj.ResultObj.Roles.Contains(role.Name) //Neu user đang được assign role này thì Selected = true
                });
            }
            return(roleAssignRequest);
        }
Exemple #11
0
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await userApiClient.RoleAssign(request.Id, request);

            if (result)
            {
                return(RedirectToAction("index"));
            }

            ModelState.AddModelError("", "Update Role fail");
            var roleAssignReq = await GetRoleAssignRequest(request.Id);

            return(View(request));
        }
Exemple #12
0
        public async Task <ApiResultLite> RoleAssignAsync(RoleAssignRequest request)
        {
            var user = await _userManager.FindByIdAsync(request.UserId.ToString());

            if (user == null)
            {
                return(new ApiErrorResultLite("Tài khoản không tồn tại"));
            }

            // check role available
            List <Guid> roles = request.Roles.Select(x => Guid.Parse(x.Id)).ToList();

            if (!CheckRoles(roles))
            {
                return(new ApiErrorResultLite("Yêu cầu không hợp lệ"));
            }

            var removedRoles = request.Roles.Where(x => x.Selected == false).Select(x => x.Name).ToList();

            foreach (var roleName in removedRoles)
            {
                if (await _userManager.IsInRoleAsync(user, roleName) == true)
                {
                    await _userManager.RemoveFromRoleAsync(user, roleName);
                }
            }

            var addedRoles = request.Roles.Where(x => x.Selected).Select(x => x.Name).ToList();

            foreach (var roleName in addedRoles)
            {
                if (await _userManager.IsInRoleAsync(user, roleName) == false)
                {
                    if (!(await _userManager.AddToRoleAsync(user, roleName)).Succeeded)
                    {
                        return(new ApiErrorResultLite("Xảy ra lỗi"));
                    }
                }
            }

            return(new ApiSuccessResultLite());
        }
Exemple #13
0
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            var result = await _userApiClient.RoleAssign(request.id, request);

            if (result.IsSuccessed)
            {
                //TempData["result"] = "Cập nhập quyền thành công";
                _notyf.Success("Cập nhập quyền thành công");
                return(RedirectToAction("Index"));
            }
            ModelState.AddModelError("", result.Message);//key and message

            var roleAssignRequest = await GetRoleroleAssignRequest(request.id);

            return(View(roleAssignRequest));
        }
        public async Task <ApiResult <bool> > RoleAssign(Guid id, RoleAssignRequest request)
        {
            var client = _httpClientFactory.CreateClient();

            client.BaseAddress = new Uri(_configuration["BaseAddress"]);
            var sessions = _httpContextAccessor.HttpContext.Session.GetString("Token");

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);
            var json        = JsonConvert.SerializeObject(request);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
            var response    = await client.PutAsync($"/api/users/{id}/roles", httpContent);

            var result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject <ApiSuccessResult <bool> >(result));
            }
            return(JsonConvert.DeserializeObject <ApiErrorResult <bool> >(result));
        }
Exemple #15
0
        public async Task <IActionResult> PostRolesToUserUser(string userId, [FromBody] RoleAssignRequest request)
        {
            if (request.RoleNames?.Length == 0)
            {
                return(BadRequest(new ApiBadRequestResponse("Role names cannot empty")));
            }
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(NotFound(new ApiNotFoundResponse($"Cannot found user with id: {userId}")));
            }
            var result = await _userManager.AddToRolesAsync(user, request.RoleNames);

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest(new ApiBadRequestResponse(result)));
        }
Exemple #16
0
        private async Task <RoleAssignRequest> GetRoleAssignRequest(Guid id)
        {
            var userObj = await _userApiClient.GetById(id);

            // chúng ta phải lấy ra được danh sách role
            var roleObj = await _roleApiClient.GetAll();  // trả về một danh sách ApiResult<List<RoleVm>> ,ta đưa vào list<RoleVm> nên thằng ResultObj sẽ là list<RoleVm>

            var roleAssignRequest = new RoleAssignRequest();

            foreach (var role in roleObj.ResultObj)  // ResultObj nằm trong ApiResult
            {
                roleAssignRequest.Roles.Add(new SelectItem()
                {
                    Id       = role.Id.ToString(),
                    Name     = role.Name,
                    Selected = userObj.ResultObj.Roles.Contains(role.Name) // Contains xem nó có chứa Name của role không,nếu có nó sẽ là true không là false
                });
            }

            return(roleAssignRequest);
        }
Exemple #17
0
        private async Task <RoleAssignRequest> GetRoleAssignRequest(Guid id)
        {
            var userObject = await _userApiClient.GetUserByIdAsync(id);

            var result = await _roleApiClient.GetRolesAsync();

            var roleAssignRequest = new RoleAssignRequest();

            roleAssignRequest.UserId = id;
            foreach (var role in result)
            {
                roleAssignRequest.Roles.Add(new SelectedItem()
                {
                    Id       = role.Id.ToString(),
                    Name     = role.Name,
                    Selected = userObject.ResultObj.Roles.Contains(role.Name)
                });
            }

            return(roleAssignRequest);
        }
Exemple #18
0
        public async Task <IActionResult> RoleAssign(RoleAssignRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var result = await _userApiClient.RoleAssign(request.Id, request);

            if (result.IsSuccessed)
            {
                TempData["result"] = "Thêm Quyền Thành Công"; //có key là result
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", result.Message);                   // đây là lỗi của Model này

            var roleAssignRequest = await GetRoleAssignRequest(request.Id); // nếu trong trường hợp bị false nó vẫn lấy được về

            return(View(roleAssignRequest));
        }
Exemple #19
0
        public async Task <IActionResult> PostRolesToUserUser(string userId, [FromBody] RoleAssignRequest request)
        {
            if (request.RoleNames?.Length == 0)
            {
                return(BadRequest(new ApiBadRequestResponse(_localizer["RoleNameEmptyErr"])));
            }
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(NotFound(new ApiNotFoundResponse(_localizer["FindUserIdError"] + " " + userId)));
            }
            var result = await _userManager.AddToRolesAsync(user, request.RoleNames);

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest(new ApiBadRequestResponse(result)));
        }
Exemple #20
0
        private async Task <RoleAssignRequest> GetRoleAssignRequest(Guid Id)
        {
            var userObj = await _userApiClient.GetById(Id);

            var roleObj = await _roleApiClient.GetAll();

            var roleAssignRequest = new RoleAssignRequest();

            if (roleObj.ResultObject != null || userObj.ResultObject != null)
            {
                foreach (var role in roleObj.ResultObject)
                {
                    roleAssignRequest.Roles.Add(new SelectedItem()
                    {
                        Id       = role.Id.ToString(),
                        Name     = role.Name,
                        Selected = userObj.ResultObject.Roles.Contains(role.Name)
                    });
                }
            }
            return(roleAssignRequest);
        }
Exemple #21
0
        // phương thức Role
        public async Task <ApiResult <bool> > RoleAssign(Guid Id, RoleAssignRequest request)
        {
            // lấy user
            var user = await _userManager.FindByIdAsync(Id.ToString()); // tìm thoe id mà gặp phát lấy ra luân rồi không tìm tiếp  // co nghĩa là chỉ 1

            if (user == null)                                           // nếu user không tồn tại
            {
                return(new ApiErrorResult <bool>("Tài khoản không tồn tại"));
            }

            // selected bằng false là đã tích hay chưa // có nghĩa là khi ta nhán checkbox không còn tích thì nó sẽ có Selected bằng false và xóa quyền ,kể cả chưa tích cũng xóa
            var removedRoles = request.Roles.Where(x => x.Selected == false).Select(x => x.Name).ToList(); //vào danh sách roles lấy ra thằng nào không Selected có nghĩa là bằng false và lấy cái name của thằng đấy ra

            // nhớ là Roles  ,chuyền vào user và danh sách các role

            foreach (var roleName in removedRoles)
            {
                if (await _userManager.IsInRoleAsync(user, roleName) == true) // user có có roleName
                {
                    await _userManager.RemoveFromRoleAsync(user, roleName);   // RemoveFromRolesAsync nó tính theo Name lên phải lấy Name ra
                }
            }

            // trong trường hợp thằng nào đã có tồn tại , có nghĩa là khi ta tích vào check box nó sẽ cho Selected bằng true
            var addedRoles = request.Roles.Where(x => x.Selected == true).Select(x => x.Name).ToList();

            foreach (var roleName in addedRoles)
            {
                // bắt buộc chưa nằm trong cái role mới add vào role
                if (await _userManager.IsInRoleAsync(user, roleName) == false)
                {
                    await _userManager.AddToRoleAsync(user, roleName); // ở đay là add từng role nên không có s nhe
                }
            }

            return(new ApiSuccessResult <bool>());
        }
Exemple #22
0
 public async Task <ApiResultLite> RoleAssignAsync(RoleAssignRequest request)
 {
     return(await PutAsync <ApiResultLite>("Api/User/RoleAssign", request));
 }
        public async Task <ApiResultLite> RoleAssignAsync([FromBody] RoleAssignRequest request)
        {
            var result = await _userService.RoleAssignAsync(request);

            return(result);
        }
Exemple #24
0
 public async Task <ApiResult <bool> > RoleAssign(Guid id, RoleAssignRequest request)
 {
     return(await PutAsync <ApiResult <bool> >($"/api/Users/{id}/roles", request));
 }
Exemple #25
0
        // phương thức role cho frontend
        public async Task <ApiResult <bool> > RoleAssign(Guid Id, RoleAssignRequest request)
        {
            var data = await PutAsync <ApiResult <bool> >($"/api/users/{Id}/roles", request);

            return(data);
        }
Exemple #26
0
 public async Task <bool> RoleAssign(string id, RoleAssignRequest request)
 {
     return(await userRepository.RoleAssign(id, request));
 }