예제 #1
0
 public async Task<ActionResult> Details(string roleId, string permissionId)
 {
     if (string.IsNullOrWhiteSpace(roleId) || string.IsNullOrWhiteSpace(permissionId))
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     // 取权限
     ApplicationPermission permission =
         db.Permissions.Find(new object[] { int.Parse(permissionId) });
     // 取角色
     var role = await RoleManager.FindByIdAsync(int.Parse(roleId));
     if (permission == null)
     {
         return HttpNotFound();
     }
     var view = new PermissionViewModel
     {
         Controller = permission.Controller,
         Action = permission.Action,
         Description = permission.Description
     };
     view.RoleId = int.Parse(roleId);
     view.RoleName = role.Name;
     return View(view);
 }
예제 #2
0
 public async Task<ActionResult> Index(string roleId, int page = 1)
 {
     // 取role列表
     var roles = await RoleManager.Roles.ToListAsync();
     // roleId是否为空
     if (string.IsNullOrWhiteSpace(roleId))
     {
         roleId = roles.FirstOrDefault().Id.ToString();
     }
     // 放入ViewBag,设置默认值
     ViewBag.RoleID = new SelectList(roles, "Id", "Name", roleId);
     // 取角色权限列表
     var permissions = RoleManager.GetRolePermissions(int.Parse(roleId));
     // 创建ViewModel
     var permissionViews = new List<PermissionViewModel>();
     foreach (var item in permissions)
     {
         var view = new PermissionViewModel
         {
             RoleId = int.Parse(roleId),
             Controller = item.Controller,
             Action = item.Action,
             Description = item.Description
         };
         permissionViews.Add(view);
     }
     // 排序
     //permissionViews.Sort(new PermissionViewModelComparer());
     var v = from p in permissionViews
             orderby p.Id
             select p;
     return View(v.ToPagedList(page, 10));
 }
예제 #3
0
        public PermissionProperties(User user, PermissionViewModel viewModel)
        {
            InitializeComponent();
            this.User = user;
            _model = viewModel;

            _permType = User.GetPermissionType(viewModel.Permission);

            if (_permType == PERMISSION_TYPE.ALLOWDISALLOW) {
                gridAllowDisallow.Visibility = Visibility.Visible;
                gridRWIUD.Visibility = Visibility.Collapsed;

                bool isAllowed = ((int) _model.Permission & (int) PERMISSION_MASK.ALLOW) != 0;

                if (isAllowed) {
                    optAllowed.IsChecked = true;
                } else {
                    optNotAllowed.IsChecked = true;
                }

            } else {

                gridAllowDisallow.Visibility = Visibility.Collapsed;
                gridRWIUD.Visibility = Visibility.Visible;

                optNoPermissions.IsChecked = true;

                if ((_model.Mask & (int) PERMISSION_MASK.READ) != 0) {
                    if ((_model.Mask & (int)PERMISSION_MASK.WRITE) != 0) {
                        optModify.IsChecked = true;
                        chkDelete.IsChecked = (_model.Mask & (int)PERMISSION_MASK.DELETE) != 0;
                        chkInsert.IsChecked = (_model.Mask & (int)PERMISSION_MASK.INSERT) != 0;
                        chkUpdate.IsChecked = (_model.Mask & (int)PERMISSION_MASK.UPDATE) != 0;
                    } else {
                        optReadOnly.IsChecked = true;
                    }
                }
            }

            grp.Header = String.Format("{0}/{1}", PermissionGroups.GetDescriptionForPermission(_model.Permission), _model.Permission);
        }
        // GET: Permissions/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var permission = await _context.Permission.FindAsync(id);

            if (permission == null)
            {
                return(NotFound());
            }
            PermissionViewModel pvm = new PermissionViewModel();

            BindObject.CopyModel(pvm, permission);
            Form form = Form();

            form.Model(pvm, "ID");
            ViewData["formHtml"] = form.GetContent();
            ViewData["script"]   = form.GetScript();
            return(View(permission));
        }
예제 #5
0
        public virtual ActionResult Properties(string tabId, int parentId, int id, FormCollection collection)
        {
            var permission = Service.ReadForUpdate(id);
            var model      = PermissionViewModel.Create(permission, tabId, parentId, Service);

            TryUpdateModel(model);
            model.Validate(ModelState);
            if (ModelState.IsValid)
            {
                try
                {
                    model.Data = Service.Update(model.Data);
                    return(Redirect("Properties", new { tabId, parentId, id = model.Data.Id, successfulActionCode = ActionCode.UpdateSitePermission }));
                }
                catch (ActionNotAllowedException nae)
                {
                    ModelState.AddModelError("OperationIsNotAllowedForAggregated", nae.Message);
                    return(JsonHtml("EntityPermissionProperties", model));
                }
            }

            return(JsonHtml("EntityPermissionProperties", model));
        }
예제 #6
0
 public async Task<ActionResult> Index(int page = 1)
 {
     var permissions = await db.Permissions.ToListAsync();
     // 创建ViewModel
     var permissionViews = new List<PermissionViewModel>();
     foreach (var item in permissions)
     {
         var view = new PermissionViewModel
         {
             Id = item.Id,
             Controller = item.Controller,
             Action = item.Action,
             Description = item.Description
         };
         permissionViews.Add(view);
     }
     // 排序
     permissionViews.Sort(new PermissionViewModelComparer());
     var v = from p in permissionViews
             orderby p.Id
             select p;
     return View(v.ToPagedList(page, 10));
 }
예제 #7
0
        public async Task <IActionResult> Update(PermissionViewModel model)
        {
            var role = await _roleManager.FindByIdAsync(model.RoleId);

            //Remove all Claims First
            var claims = await _roleManager.GetClaimsAsync(role);

            foreach (var claim in claims)
            {
                await _roleManager.RemoveClaimAsync(role, claim);
            }
            var selectedClaims = model.RoleClaims.Where(a => a.Selected).ToList();

            foreach (var claim in selectedClaims)
            {
                await _roleManager.AddPermissionClaim(role, claim.Value);
            }
            _notify.Success($"Updated Claims / Permissions for Role '{role.Name}'");
            //var user = await _userManager.GetUserAsync(User);
            //await _signInManager.RefreshSignInAsync(user);

            return(RedirectToAction("Index", new { roleId = model.RoleId }));
        }
예제 #8
0
        public async Task <ActionResult> Edit(int id)
        {
            if (id <= 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var applicationpermissions =
                await this.ActionPermissionManager.GetByIdAsync(id);

            if (applicationpermissions == null)
            {
                return(HttpNotFound());
            }
            var actionRoles = this.ActionPermissionManager.GetControllerActionRoles(id).ToList();
            // Get a list, not a DbSet or queryable:
            var allRoles = this.RoleManager.Roles.ToList();

            var model = new PermissionViewModel()
            {
                Id             = applicationpermissions.Id,
                ControllerName = applicationpermissions.ControllerName,
                ActionName     = applicationpermissions.ActionName
            };

            // load the roles/Roles for selection in the form:
            foreach (var role in allRoles)
            {
                var listItem = new SelectListItem()
                {
                    Text     = role.Name,
                    Value    = role.Id,
                    Selected = actionRoles.Any(g => g.Id == role.Id)
                };
                model.RolesList.Add(listItem);
            }
            return(View(model));
        }
예제 #9
0
        /// <summary>
        /// Add an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public PermissionViewModel Add(PermissionViewModel model)
        {
            this.ThrowExceptionIfExist(model);

            var entity = model.ToEntity();

            entity = this._PermissionsRepository.Add(entity);

            var entityAr = new Permission
            {
                Id          = entity.Id,
                Description = model.DescriptionAr,
                Name        = model.NameAr,
                Language    = Language.Arabic
            };

            entity.ChildTranslatedPermissions.Add(entityAr);
            this._PermissionsRepository.Add(entityAr);

            var entityEn = new Permission
            {
                Id          = entity.Id,
                Description = model.DescriptionEn,
                Name        = model.NameEn,
                Language    = Language.English
            };

            entity.ChildTranslatedPermissions.Add(entityEn);
            this._PermissionsRepository.Add(entityEn);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion

            model = entity.ToModel();
            return(model);
        }
예제 #10
0
        // GET: Permission
        public async Task <ActionResult> Index()
        {
            try
            {
                var results = new PermissionModel();
                //Call API Provider
                var uid = User.Identity.GetUserId();
                controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                var token = _userSession.BearerToken;
                var list  = await APIProvider.Authorize_Get <List <PermissionViewModel> >(token, controllerName, "GetAll", null, APIConstant.API_Resource_Authorize);

                if (list == null)
                {
                    list = new List <PermissionViewModel>();
                }

                var permission = new PermissionViewModel();

                results.lstPermissionViewModel = list;
                results.PermissionViewModel    = permission;

                TempData["Data"] = list;
                return(View(results));
            }
            catch (HttpException ex)
            {
                Logger.LogError(ex);
                int statusCode = ex.GetHttpCode();
                if (statusCode == 401)
                {
                    TempData["Alert"] = ApplicationGenerator.RenderResult(FuntionType.Department, APIConstant.ACTION_ACCESS);
                    return(new HttpUnauthorizedResult());
                }

                throw ex;
            }
        }
예제 #11
0
        public async Task <Result <string> > CreateOrUpdateRole(PermissionViewModel role)
        {
            if (role != null && role.Name != "SuperAdmin" && role.Name != "Basic")

            {
                if (string.IsNullOrEmpty(role.Id))
                {
                    await _roleManager.CreateAsync(new IdentityRole(role.Name));
                }
                else
                {
                    var existingRole = await _roleManager.FindByIdAsync(role.Id);

                    existingRole.Name           = role.Name;
                    existingRole.NormalizedName = role.Name.ToUpper();
                    await _roleManager.UpdateAsync(existingRole);

                    var claims = await _roleManager.GetClaimsAsync(existingRole);

                    foreach (var claim in claims)
                    {
                        await _roleManager.RemoveClaimAsync(existingRole, claim);
                    }
                    var selectedClaims = role.RoleClaims.Where(a => a.Selected).ToList();
                    foreach (var claim in selectedClaims)
                    {
                        await _roleManager.AddPermissionClaim(existingRole, claim.Value);
                    }
                }
                return(Result <string> .Success("Done!!!"));
            }
            else
            {
                throw new ApiException("Unexpected Error!");
            }
        }
예제 #12
0
        public virtual async Task <ActionResult> New(string tabId, int parentId, IFormCollection collection)
        {
            var permission = Service.New(parentId);
            var model      = PermissionViewModel.Create(permission, tabId, parentId, Service);

            await TryUpdateModelAsync(model);

            if (ModelState.IsValid)
            {
                try
                {
                    model.Data = Service.Save(model.Data);
                    PersistResultId(model.Data.Id);
                    return(Redirect("Properties", new { tabId, parentId, id = model.Data.Id, successfulActionCode = ActionCode.SaveSitePermission }));
                }
                catch (ActionNotAllowedException nae)
                {
                    ModelState.AddModelError("OperationIsNotAllowedForAggregated", nae.Message);
                    return(await JsonHtml("EntityPermissionProperties", model));
                }
            }

            return(await JsonHtml("EntityPermissionProperties", model));
        }
예제 #13
0
        public virtual ActionResult Change(string tabId, int parentId, int?userId, int?groupId, FormCollection collection)
        {
            var permission = ChangeService.ReadOrDefaultForChange(parentId, userId, groupId);
            var model      = PermissionViewModel.Create(permission, tabId, parentId, Service, ChangeService.ViewModelSettings);

            TryUpdateModel(model);
            model.Validate(ModelState);
            if (ModelState.IsValid)
            {
                model.Data = ChangeService.Change(model.Data);
                return(Redirect("Change", new
                {
                    tabId,
                    parentId,
                    userId = model.Data.UserId,
                    groupId = model.Data.GroupId,
                    isPostBack = true,
                    successfulActionCode = ActionCode.ChangeEntityTypePermission
                }));
            }

            model.IsPostBack = true;
            return(JsonHtml("ActionPermissionChange", model));
        }
예제 #14
0
        public void Update(PermissionViewModel permissionViewModel)
        {
            var propertyChanged = false;

            var permission = _permissionRespository.GetById(permissionViewModel.Id);

            if (permission.EmployeeName != permissionViewModel.EmployeeName)
            {
                permission.ChangeEmployeeName(permissionViewModel.EmployeeName);
                propertyChanged = true;
            }

            if (permission.LastNameEmployee != permissionViewModel.LastNameEmployee)
            {
                permission.ChangeLastNameEmployee(permissionViewModel.LastNameEmployee);
                propertyChanged = true;
            }

            if (permission.PermissionTypeId != permissionViewModel.PermissionTypeId)
            {
                permission.ChangePermissionTypeId(permissionViewModel.PermissionTypeId);
                propertyChanged = true;
            }

            if (permission.PermitDate != permissionViewModel.PermitDate)
            {
                permission.ChangePermitDate(permissionViewModel.PermitDate);
                propertyChanged = true;
            }

            if (propertyChanged)
            {
                _permissionRespository.Update(permission);
                _permissionRespository.SaveChanges();
            }
        }
예제 #15
0
        public IActionResult CreatePermissionForm(PermissionViewModel model)
        {
            if (ModelState.IsValid)
            {
                user CurrentUser = _context.users.Include(u => u.permissions).SingleOrDefault(u => u.userid == ( int )HttpContext.Session.GetInt32("userid"));

                permission NewPerm = new permission
                {
                    landAmt    = model.landAmt,
                    allergies  = model.allergies,
                    accessInfo = model.accessInfo,
                    accessTime = model.accessTime,
                    userid     = CurrentUser.userid
                };
                _context.permissions.Add(NewPerm);
                _context.SaveChanges();

                NewPerm = _context.permissions.SingleOrDefault(p => p.permissionid == NewPerm.permissionid);
                HttpContext.Session.SetInt32("permissionid", NewPerm.permissionid);

                return(RedirectToAction("PermissionDash")); //FOR TESTING DB, Should RedirectToAction to a DASH
            }
            return(View("AddPermPage"));
        }
예제 #16
0
 public virtual IActionResult RolesIdPermissionsPost([FromRoute] int id, [FromBody] PermissionViewModel item)
 {
     return(_service.RolesIdPermissionsPostAsync(id, item));
 }
예제 #17
0
        public ActionResult CreateEditRoles(PermissionViewModel model)
        {
            var activeModules = GlobalContext.GetActiveModules();

            ViewBag.Modules = activeModules;
            var permission = new NccPermission();

            permission.Description = model.Description;
            permission.Rank        = model.Rank;
            permission.Group       = model.Group;
            permission.Name        = model.Name;
            permission.Id          = model.Id;

            var removePermissionDetailsIdList = new List <long>();
            var addedPermissionDetails        = new List <NccPermissionDetails>();

            foreach (var item in model.Modules)
            {
                foreach (var am in item.AdminMenus)
                {
                    foreach (var mi in am.MenuItems)
                    {
                        if (mi.IsChecked)
                        {
                            var permissionDetails = new NccPermissionDetails()
                            {
                                Id           = mi.Id,
                                ModuleName   = item.ModuleName,
                                Name         = am.Name,
                                Action       = mi.Action,
                                Controller   = mi.Controller,
                                PermissionId = permission.Id
                            };
                            permission.PermissionDetails.Add(permissionDetails);
                            if (permission.Id > 0 && permissionDetails.Id == 0)
                            {
                                addedPermissionDetails.Add(permissionDetails);
                            }
                        }
                        else
                        {
                            if (mi.Id > 0)
                            {
                                removePermissionDetailsIdList.Add(mi.Id);
                            }
                        }
                    }
                }

                foreach (var sm in item.SiteMenus)
                {
                    foreach (var mi in sm.MenuItems)
                    {
                        if (mi.IsChecked)
                        {
                            var permissionDetails = new NccPermissionDetails()
                            {
                                Id           = mi.Id,
                                ModuleName   = item.ModuleName,
                                Name         = sm.Name,
                                Action       = mi.Action,
                                Controller   = mi.Controller,
                                PermissionId = permission.Id
                            };
                            permission.PermissionDetails.Add(permissionDetails);
                            if (permission.Id > 0 && permissionDetails.Id == 0)
                            {
                                addedPermissionDetails.Add(permissionDetails);
                            }
                        }
                        else
                        {
                            if (mi.Id > 0)
                            {
                                removePermissionDetailsIdList.Add(mi.Id);
                            }
                        }
                    }
                }
            }

            var(res, message) = _nccPermissionService.SaveOrUpdate(permission, addedPermissionDetails, removePermissionDetailsIdList);

            if (res)
            {
                TempData["SuccessMessage"] = message;
                return(RedirectToAction("CreateEditRoles"));
            }
            else
            {
                ViewBag.ErrorMessage = message;
            }

            return(View(model));
        }
예제 #18
0
        private PermissionViewModel GetPermissionViewModel(NccPermission permission)
        {
            var pvm = new PermissionViewModel(permission);

            return(pvm);
        }
예제 #19
0
        public async Task <IActionResult> Put(PermissionViewModel model)
        {
            await _permissionServices.UpdatePermissionAsync(model);

            return(Ok());
        }
예제 #20
0
        public void Update(PermissionViewModel permission)
        {
            var permissionModel = _mapper.Map <PermissionViewModel, Permission>(permission);

            _repositoryPermission.Update(permissionModel);
        }
예제 #21
0
 public virtual IActionResult PermissionsIdPut([FromRoute] int id, [FromBody] PermissionViewModel item)
 {
     return(this._service.PermissionsIdPutAsync(id, item));
 }
예제 #22
0
        public IActionResult CreatePermission(string permissionCode, string permissionLabel)
        {
            if (HttpContext == null ||
                HttpContext.Session == null ||
                HttpContext.Session.GetObject <UserViewModel>(MiscConstants.USER_SESSION_VM_KEY) == null)
            {
                return(RedirectToAction("Warning", "Home"));
            }

            string logSnippet = new StringBuilder("[")
                                .Append(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"))
                                .Append("][PermissionController][CreatePermission][HttpPost] => ")
                                .ToString();

            User          qmsUser   = HttpContext.Session.GetObject <User>(MiscConstants.USER_SESSION_KEY);
            UserViewModel qmsUserVM = HttpContext.Session.GetObject <UserViewModel>(MiscConstants.USER_SESSION_VM_KEY);

            Console.WriteLine(logSnippet + $"(permissionCode)...: '{permissionCode}'");
            Console.WriteLine(logSnippet + $"(permissionLabel)..: '{permissionLabel}'");
            Console.WriteLine(logSnippet + $"(qmsUser == null)..: {qmsUser == null}");
            Console.WriteLine(logSnippet + $"(qmsUserVM == null): {qmsUserVM == null}");

            if (qmsUserVM.CanCreatePermission == false)
            {
                return(RedirectToAction("UnauthorizedAccess", "Home"));
            }

            PermissionViewModel permissionVM = new PermissionViewModel
            {
                ShowAlert                      = true,
                UserAdminModule                = UserAdminConstants.UserAdminModuleConstants.ACTIVE_PERMISSION,
                PermissionNavItemNavLink       = UserAdminConstants.UserAdminCssConstants.ACTIVE_NAVITEM_NAVLINK_VALUE,
                PermissionTabPadFade           = UserAdminConstants.UserAdminCssConstants.ACTIVE_TABPANE_FADE_VALUE,
                ActivePermissionNavItemNavLink = UserAdminConstants.UserAdminCssConstants.ACTIVE_NAVITEM_NAVLINK_VALUE,
                ActivePermissionTabPadFade     = UserAdminConstants.UserAdminCssConstants.ACTIVE_TABPANE_FADE_VALUE,
            };

            (bool isValid, string[] errorMessages) = _permissionValidator.CreatePermissionValuesAreValid(permissionCode, permissionLabel);
            if (isValid == false)
            {
                StringBuilder sb = new StringBuilder("<ul>");
                foreach (string errMsg in errorMessages)
                {
                    sb.Append("<li>").Append(errMsg).Append("</li>");
                }
                sb.Append("</ul>");

                permissionVM.AlertType    = UserAdminConstants.AlertTypeConstants.FAILURE;
                permissionVM.AlertMessage = sb.ToString();

                HttpContext.Session.SetObject(UserAdminConstants.PERMISSION_VIEW_MODEL, permissionVM);
                return(RedirectToAction("Index", "Permission"));
            }

            try
            {
                /////////////////////////////////////////////////////////////////////////////////////////////////
                // CALL PERMISSION SERVICE TO SAVE NEWLY CREATED PERMISSION TO DATABASE
                /////////////////////////////////////////////////////////////////////////////////////////////////
                int permissionId = _permissionService.CreatePermission(permissionCode, permissionLabel, qmsUser);
                /////////////////////////////////////////////////////////////////////////////////////////////////

                permissionVM.AlertType    = UserAdminConstants.AlertTypeConstants.SUCCESS;
                permissionVM.AlertMessage = $"Permission successfully created: ['{permissionId}', '{permissionCode}', '{permissionLabel}']";
            }
            catch (Exception exc)
            {
                Console.WriteLine(logSnippet + exc.Message);
                permissionVM.AlertType    = UserAdminConstants.AlertTypeConstants.FAILURE;
                permissionVM.AlertMessage = $"Create new permission failed.";
            }

            HttpContext.Session.SetObject(UserAdminConstants.PERMISSION_VIEW_MODEL, permissionVM);
            return(RedirectToAction("Index", "Permission"));
        }
예제 #23
0
        public static ScreenPermissionListTreeResult ToEntity2(this PermissionViewModel model)
        {
            var entity = AutoMapper.Mapper.Map <ScreenPermissionListTreeResult>(model);

            return(entity);
        }
예제 #24
0
 public IActionResult Register([FromBody] PermissionViewModel permissionViewModel)
 {
     _permissionAppService.Register(permissionViewModel);
     return(Ok("Permission registered"));
 }
예제 #25
0
 public IActionResult Update([FromBody] PermissionViewModel permissionViewModel)
 {
     _permissionAppService.Update(permissionViewModel);
     return(Ok("Permission updated"));
 }
예제 #26
0
 public async Task<ActionResult> Create(int page = 1)
 {
     // 创建ViewModel
     var permissionViews = new List<PermissionViewModel>();
     // 取程序集中权限
     var allPermissions = permissionsOfAssembly;
     // 取数据库已有权限
     var dbPermissions = await db.Permissions.ToListAsync();
     // 取两者差集
     var permissions = allPermissions.Except(dbPermissions, new ApplicationPermissionEqualityComparer());
     foreach (var item in permissions)
     {
         var view = new PermissionViewModel
         {
             Controller = item.Controller,
             Action = item.Action,
             Description = item.Description
         };
         permissionViews.Add(view);
     }
     // 排序
     permissionViews.Sort(new PermissionViewModelComparer());
     return View(permissionViews.ToPagedList(page, 10));
 }
 public ActionResult Permission(PermissionViewModel permissionviewmodel)
 {
     permissionviewmodel.Rolelist = new SelectList(_permissioncomponent.GetAllRoles(), "RoleId", "Role");
     return(View(permissionviewmodel));
 }
예제 #28
0
        public void Add(PermissionViewModel permission)
        {
            var permssionModel = _mapper.Map <PermissionViewModel, Permission>(permission);

            _repositoryPermission.Add(permssionModel);
        }
예제 #29
0
 // GET: Rols
 public ActionResult Index()
 {
     ViewBag.AltaModificacion = PermissionViewModel.TienePermisoAlta(WindowHelper.GetWindowId(ModuleDescription, WindowDescription));
     ViewBag.Baja             = PermissionViewModel.TienePermisoBaja(WindowHelper.GetWindowId(ModuleDescription, WindowDescription));
     return(View(db.Rols.ToList()));
 }
예제 #30
0
 /// <summary>
 /// Setup the test.
 /// </summary>
 public PermissionViewModelModelTests()
 {
     instance = new PermissionViewModel();
 }
예제 #31
0
 public void Add(PermissionViewModel permission)
 {
     _permissionRepository.Add(_mapper.Map <Permission>(permission));
 }
예제 #32
0
        public async Task<ActionResult> Create(string roleId, int page = 1)
        {
            if (string.IsNullOrWhiteSpace(roleId))
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            var roles = await RoleManager.Roles.ToListAsync();
            ViewBag.RoleID = new SelectList(roles, "Id", "Name", roleId);

            // 取角色权限ID
            var rolePermissions = RoleManager.GetRolePermissions(int.Parse(roleId));
            // 取全部权限与角色权限的差集
            var allPermission = await db.Permissions.ToListAsync();
            var permissions = allPermission.Except(rolePermissions, new ApplicationPermissionEqualityComparer());
            // 创建ViewModel
            var permissionViews = new List<PermissionViewModel>();
            foreach (var item in permissions)
            {
                var permisionView = new PermissionViewModel
                {
                    Id = item.Id,
                    Controller = item.Controller,
                    Action = item.Action,
                    Description = item.Description
                };
                permissionViews.Add(permisionView);
            }
            // 排序
            permissionViews.Sort(new PermissionViewModelComparer());
            var v = from p in permissionViews
                    orderby p.Id
                    select p;
            return View(v.ToPagedList(page, 10));
        }
예제 #33
0
        // GET: Orders
        public ActionResult Index()
        {
            ViewBag.Editar   = PermissionViewModel.TienePermisoAcesso(WindowHelper.GetWindowId(ModuleDescription, WindowDescription));
            ViewBag.Ver      = PermissionViewModel.TienePermisoAlta(WindowHelper.GetWindowId(ModuleDescription, WindowDescription));
            ViewBag.Baja     = PermissionViewModel.TienePermisoBaja(WindowHelper.GetWindowId(ModuleDescription, WindowDescription));
            ViewBag.Imprimir = PermissionViewModel.TienePermisoAcesso(WindowHelper.GetWindowId(ModuleDescription, WindowDescription));
            List <OrderIndexViewModel> list = new List <OrderIndexViewModel>();
            Usuario       usuario           = db.Usuarios.Find(SessionHelper.GetUser());
            List <Order>  orders            = new List <Order>();
            List <Center> lCentros          = new List <Center>();
            List <Status> lEstados          = new List <Status>();

            if (usuario.Rol.IsAdmin)
            {
                lCentros = db.Centers.Where(x => x.Enable).ToList();
            }
            else
            {
                lCentros = db.Centers.Where(x => x.Id == usuario.CenterId).ToList();
            }
            lEstados             = db.Status.ToList();
            ViewBag.listaCentros = lCentros;
            ViewBag.listaEstados = lEstados;
            ViewBag.isAdmin      = usuario.Rol.IsAdmin;


            if (!usuario.Rol.IsAdmin)
            {
                orders = db.Orders.Where(x => x.CenterId == usuario.CenterId).Include(o => o.Center).OrderByDescending(x => x.Id).ToList();
            }
            else
            {
                orders = db.Orders.Include(o => o.Center).Include(o => o.Usuario).OrderByDescending(x => x.Id).ToList();
            }

            foreach (var item in orders)
            {
                OrderIndexViewModel orderIndexViewModel = new OrderIndexViewModel
                {
                    Id        = item.Id,
                    Center    = item.Center?.Descripcion,
                    Fecha     = item.InitialDate.ToString("dd/MM/yyyy"),
                    Usuario   = item.Usuario?.Nombreusuario,
                    Estado    = item.Status.Descripcion,
                    NroPedido = item.NroPedido.ToString("000000")
                };


                switch (item.StatusId)
                {
                case (int)StatusOrder.Solicitado:
                    orderIndexViewModel.Ver       = true;
                    orderIndexViewModel.Modificar = true;
                    orderIndexViewModel.Eliminar  = true;
                    break;

                case (int)StatusOrder.Aceptado:
                    orderIndexViewModel.Ver = true;
                    if (usuario.Rol.IsAdmin)
                    {
                        orderIndexViewModel.Modificar = true;
                        orderIndexViewModel.Eliminar  = true;
                    }
                    break;

                case (int)StatusOrder.Rechazado:
                    orderIndexViewModel.Ver = true;
                    if (usuario.Rol.IsAdmin)
                    {
                        orderIndexViewModel.Eliminar = true;
                    }
                    break;

                case (int)StatusOrder.Entregado:
                    orderIndexViewModel.Ver = true;
                    if (usuario.Rol.IsAdmin)
                    {
                        orderIndexViewModel.Eliminar = true;
                    }
                    break;
                }

                list.Add(orderIndexViewModel);
            }

            return(View(list));
        }
예제 #34
0
        public async Task <IActionResult> Post(PermissionViewModel model)
        {
            await _permissionServices.AddNewAsync(model);

            return(Ok());
        }
예제 #35
0
 public virtual IActionResult PermissionsPost([FromBody] PermissionViewModel item)
 {
     return(this._service.PermissionsPostAsync(item));
 }
예제 #36
0
        public ActionResult Dashboard()
        {
            string actionName = "Dashboard";
            string inRoleId   = ((SessionHelper)Session[SessionKeys.SessionHelperInstance])?.CurrentRoleId;

            try
            {
                string siteId = Session[SessionKeys.UserUnitId]?.ToString();

                _logger.Log(LogLevel.Trace, actionName + " :: started.");

                if (!string.IsNullOrWhiteSpace(siteId))
                {
                    if (Regex.IsMatch(siteId, RegexHelper.NumberOnly))
                    {
                        var applicableUnits = ((List <ClassLibrary.Models.tbl_Unit>)Session[SessionKeys.ApplicableUnits]);
                        int intSiteId       = Convert.ToInt32(siteId);

                        if (applicableUnits != null && applicableUnits.Where(x => x.Id == intSiteId).Any())
                        {
                            DashboardViewModel         dashboard = new DashboardViewModel();
                            List <PermissionViewModel> ListPermissionViewModel = new List <PermissionViewModel>();

                            dashboard._tbl_Unit = ((List <ClassLibrary.Models.tbl_Unit>)Session[SessionKeys.AllUnits]);

                            string defaultRoleId = !String.IsNullOrWhiteSpace(inRoleId) ? inRoleId : string.Empty;

                            dashboard.datetime = DateTime.Now.ToString();
                            string loginUserId = Session[SessionKeys.UserId]?.ToString();

                            using (Entities _context = new Entities())
                            {
                                if (string.IsNullOrWhiteSpace(defaultRoleId))
                                {
                                    defaultRoleId = _context.tbl_UserRole.Where(x => x.UserId == loginUserId && x.IsDefault == 1 && x.IsActive != 0 && x.IsDeleted != 1)?.FirstOrDefault().RoleId;
                                }
                                else
                                {
                                    defaultRoleId = _context.tbl_UserRole.Where(x => x.UserId == loginUserId && x.RoleId == inRoleId && x.IsActive != 0 && x.IsDeleted != 1)?.FirstOrDefault().RoleId;
                                }

                                if (!String.IsNullOrWhiteSpace(defaultRoleId))
                                {
                                    SessionKeys.LoadTablesInSession(SessionKeys.RolePermissions, "", defaultRoleId);
                                    var permissions = ((List <tbl_Permission>)Session[SessionKeys.RolePermissions]);

                                    foreach (var item in permissions)
                                    {
                                        PermissionViewModel permissionViewModel = new PermissionViewModel()
                                        {
                                            PermissionId = item.PermissionId,
                                            DisplayName  = item.DisplayName,
                                            Level        = item.PermissionLevel?.ToString(),
                                            ParentId     = item.ParentId,
                                            URL          = item.URL,
                                            IconPath     = item.IconPath
                                        };

                                        ListPermissionViewModel.Add(permissionViewModel);
                                    }

                                    Session[SessionKeys.SessionHelperInstance] = new SessionHelper(loginUserId, defaultRoleId, ListPermissionViewModel);
                                    dashboard.DashboardId = GetDashboardId(loginUserId);


                                    return(View(dashboard));
                                }
                                else
                                {
                                    _logger.Log(LogLevel.Error, actionName + " :: Role id not found.");
                                }
                            }
                        }
                        else
                        {
                            _logger.Log(LogLevel.Error, actionName + " :: Please select valid site id.");
                        }
                    }
                    else
                    {
                        _logger.Log(LogLevel.Error, actionName + " :: Invalid input in site id.");
                    }
                }
                else
                {
                    _logger.Log(LogLevel.Error, actionName + " :: Site id empty.");
                }
            }
            catch (Exception ex)
            {
                _logger.Log(LogLevel.Error, actionName + " EXCEPTION :: " + ex.ToString() + " INNER EXCEPTION :: " + ex.InnerException?.ToString());
            }
            return(RedirectToAction("UnitSelection"));
        }