public IActionResult SetRole(int userId, string actionName, string controllerName, bool permision, string controllerTitle, string actionTitle, string dependTo, string dependToTitle)
        {
            if (permision)
            {
                if (!string.IsNullOrEmpty(dependTo))
                {
                    if (!_context.UserAccesses.Any(c => c.UserId.Equals(userId) &&
                                                   c.ControllerName.Equals(controllerName) &&
                                                   c.ActionName.Equals(dependTo)))
                    {
                        _context.UserAccesses.Add(new UserAccess
                        {
                            ActionName      = dependTo,
                            ActionTitle     = dependToTitle,
                            ControllerName  = controllerName,
                            ControllerTitle = controllerTitle,
                            UserId          = userId
                        });
                    }
                }

                _context.UserAccesses.Add(new UserAccess
                {
                    ActionName      = actionName,
                    ControllerName  = controllerName,
                    UserId          = userId,
                    ActionTitle     = actionTitle,
                    ControllerTitle = controllerTitle
                });
            }
            else
            {
                var actions = new SubSystemService()
                              .GetAllActions_DependToAction(Assembly.GetExecutingAssembly(),
                                                            controllerName,
                                                            actionName);

                var userAccess = _context.UserAccesses.Where(c => c.UserId.Equals(userId) &&
                                                             c.ControllerName.Equals(controllerName) &&
                                                             actions.Contains(c.ActionName))
                                 .ToList();

                userAccess.ForEach(c =>
                {
                    _context.Remove(c);
                });

                var entity = _context.UserAccesses
                             .FirstOrDefault(c => c.UserId == userId && c.ControllerName == controllerName && c.ActionName == actionName);

                if (entity != null)
                {
                    _context.Remove(entity);
                }
            }

            _context.SaveChanges();

            return(RedirectToAction(nameof(Roles), new { id = userId }));
        }
        Task <bool> IRequestHandler <UpdateSubSystemRequest, bool> .Handle(UpdateSubSystemRequest request, CancellationToken cancellationToken)
        {
            var existingSubSystem = SubSystemService.Get(request.SubSystem.Name);

            if (existingSubSystem == null)
            {
                throw new ApplicationException($"UpdateSystemHandler: System with Name {request.SubSystem.Name} does not exist.");
            }

            var checkDuplicate = SubSystemService.Get(request.SubSystem);

            if (checkDuplicate != null)
            {
                throw new ApplicationException($"UpdateSystemHandler: System with Name {request.SubSystem.Name} already exist.");
            }

            //AutoMapper to Map the fields
            Mapper.Map(request.SubSystem, existingSubSystem);

            using (var ts = new TransactionScope())
            {
                var updatedSubSystem = SubSystemService.Update(existingSubSystem);

                ts.Complete();
            }
            return(Task.FromResult(true));
        }
        public IActionResult Roles(int id)
        {
            var userAccess = _context
                             .UserAccesses
                             .Where(c => c.UserId.Equals(id))
                             .ToList();

            var modules = new SubSystemService()
                          .GetAllWithPermision(Assembly.GetExecutingAssembly(), userAccess);

            ViewBag.UserId = id;

            return(View(modules));
        }
Beispiel #4
0
        public IActionResult Index()
        {
            var strUserId = HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;

            var userId = Convert.ToInt32(strUserId);

            var userAccess = _context
                             .UserAccesses
                             .Where(c => c.UserId.Equals(userId))
                             .ToList();

            var modules = new SubSystemService()
                          .GetAllWithPermision(Assembly.GetExecutingAssembly(), userAccess);

            return(View(modules));
        }