コード例 #1
0
ファイル: AccessController.cs プロジェクト: PikaLinh/Working
        public ActionResult UpdateRoles(int id, string[] selectedPages)
        {
            if (ModelState.IsValid)
            {
                RolesRepository _repository      = new RolesRepository(_context);
                RolesModel      rolesmodel       = _repository.Find(id);
                var             UpdateRolesModel = _context.RolesModel.Include("PageModel").SingleOrDefault(p => p.RolesId == id);
                //Lấy thông tin cá nhân của mình
                AccountModel accsession = ((AccountModel)Session["acc"]);
                int          orderby    = (int)_context.AccountModel.SingleOrDefault(a => a.UserId == accsession.UserId).RolesModel.OrderBy;
                //Không cho cập nhật OrderBy nhỏ hơn của mình
                if (orderby > rolesmodel.OrderBy)
                {
                    ViewBag.Message = "Không thể cập nhật \"Thứ tự\" nhỏ hơn " + orderby.ToString();
                    PageSelectData(rolesmodel);
                }
                //Không cho cập nhật quyền quản lý
                else if (CurrentUser.RolesId == 2 && id == 2)
                {
                    ViewBag.Message = "Không thể cập nhật quyền quản lý";
                    PageSelectData(rolesmodel);
                }
                else
                {
                    //Cập nhật lại quyền
                    UpdatePagesForRoles(selectedPages, UpdateRolesModel);

                    _context.Entry(UpdateRolesModel).State = EntityState.Modified;
                    _context.SaveChanges();
                    return(RedirectToAction("Index", new { id = id }));
                }
            }

            return(RedirectToAction("Index", new { id = id }));
        }
コード例 #2
0
        private string ConvertIdRoleToRole(int idr)
        {
            RolesRepository repo = new RolesRepository(new QueryBuilder());
            Roles           role = repo.Find(idr);

            return(role.nameRole.ToUpper());
        }
コード例 #3
0
        private FindUserDto TransformModelToDto(User user)
        {
            int             idr  = 0;
            string          r    = "";
            RolesRepository repo = new RolesRepository(new QueryBuilder());

            if (user.IdRoles != null)
            {
                idr = (int)repo.Find((int)user.IdRoles).idRoles;
                r   = ConvertIdRoleToRole(idr);
            }
            return(new FindUserDto(
                       user.IdUser,
                       user.Username,
                       user.Firstname,
                       user.Lastname,
                       user.Email,
                       idr,
                       r));
        }
コード例 #4
0
ファイル: AccessController.cs プロジェクト: PikaLinh/Working
        public ActionResult Index(int?id)
        {
            RolesRepository _rolesRepository = new RolesRepository(_context);

            if (id == null)
            {
                var lst = _rolesRepository.GetAll(currentAccount, LanguageId).ToList();
                if (lst.Count > 0)
                {
                    ViewBag.RolesId = new SelectList(lst, "RolesId", "RolesName");
                    PageSelectData(lst.First());
                    ViewBag.id = lst.First().RolesId;
                }
                return(View());
            }
            else
            {
                int RolesId = Convert.ToInt32(id);
                try
                {
                    RolesModel rolesmodel = _rolesRepository.Find(RolesId);
                    if (rolesmodel == null)
                    {
                        return(HttpNotFound());
                    }

                    ViewBag.RolesId = new SelectList(_rolesRepository.GetAll(currentAccount, LanguageId), "RolesId", "RolesName", RolesId);
                    ViewBag.id      = RolesId;
                    PageSelectData(rolesmodel);

                    return(View());
                }
                catch
                {
                    return(HttpNotFound());
                }
            }
        }