예제 #1
0
        public IActionResult UserPermissions(Guid userGuid)
        {
            try
            {
                var addItem = false;

                var loggedUser = Guid.Empty;
                if (userGuid == Guid.Empty)
                {
                    loggedUser = UserHelper.CurrentUserGuid(HttpContext);
                }
                else
                {
                    loggedUser = userGuid;
                }

                var userGroups     = _groupUserService.GetGroupUserByUserGUID(loggedUser);
                var userGroupGuids = userGroups.Select(c => c.GroupGUID).ToList();
                var list           = new List <GroupPermissionApplicationModelView>();
                var resources      = _groupService.GetGroupResources(loggedUser);
                var applications   = resources.Select(c => c.Application).Distinct().OrderBy(c => c).ToList();
                foreach (var app in applications)
                {
                    addItem = false;
                    var item = new GroupPermissionApplicationModelView
                    {
                        Application = app,
                        Resources   = resources.Where(c => c.Application == app).AsEnumerable()
                    };
                    foreach (var r in item.Resources)
                    {
                        r.Actions = _groupService.GetGroupResourceActions(userGroupGuids, r.ResourceGuid);
                        if (r.Actions.Count() > 0)
                        {
                            addItem = true;
                        }
                    }
                    if (addItem)
                    {
                        list.Add(item);
                    }
                }


                return(Json(list));
            }
            catch (Exception ex)
            {
                ModelState.Clear();
                ModelState.AddModelError("", ex.Message);
                return(BadRequestFormatter.BadRequest(this, ex));
            }
        }
예제 #2
0
        public IActionResult ResourceGroup(Guid groupGuid)
        {
            try
            {
                var addItem      = false;
                var list         = new List <GroupPermissionApplicationModelView>();
                var resources    = _groupService.GetGroupResources();
                var applications = resources.Select(c => c.Application).Distinct().OrderBy(c => c).ToList();
                foreach (var app in applications)
                {
                    addItem = false;
                    var item = new GroupPermissionApplicationModelView
                    {
                        Application = app,
                        Resources   = resources.Where(c => c.Application == app).AsEnumerable()
                    };
                    foreach (var r in item.Resources)
                    {
                        r.Actions = _groupService.GetGroupResourceActions(groupGuid, r.ResourceGuid);
                        if (r.Actions.Count() > 0)
                        {
                            addItem = true;
                        }
                    }
                    if (addItem)
                    {
                        list.Add(item);
                    }
                }

                return(Json(list));
            }
            catch (Exception ex)
            {
                ModelState.Clear();
                ModelState.AddModelError("", ex.Message);
                return(BadRequestFormatter.BadRequest(this, ex));
            }
        }