Пример #1
0
        public async Task <ActionResult <OkMsg> > DispatchAuths(
            LinGroupDispatchAuthsResource linGroupDispatchAuthsResource)
        {
            var linAuths        = new List <LinAuth>();
            var dispatchedMetas = PermissionMetaHandler.GetAllDispatchedMetas();

            var auths = (await _adminRepository.GetAllAuthsAsync()).ToList();

            foreach (var auth in linGroupDispatchAuthsResource.Auths)
            {
                var existedLinAuth = auths.FirstOrDefault(a => a.GroupId == linGroupDispatchAuthsResource.GroupId && a.Auth == auth);
                if (existedLinAuth == null)
                {
                    var meta = dispatchedMetas.Where(m => m.Auth == auth).ToList();
                    if (meta.Any())
                    {
                        var addLinAuths = MyMapper.Map <IEnumerable <PermissionMeta>, IEnumerable <LinAuth> >(meta);
                        linAuths.AddRange(addLinAuths);
                    }
                }
            }

            _adminRepository.AddRange(linAuths);

            await UnitOfWork.SaveAsync();

            return(Ok(new OkMsg
            {
                Msg = "添加权限成功"
            }));
        }
Пример #2
0
        public ActionResult <Dictionary <string, Dictionary <string, IEnumerable <string> > > > GetAllAuthorities()
        {
            var dispatchedMetas = PermissionMetaHandler.GetAllDispatchedMetas();
            var resource        = MyMapper.Map <IEnumerable <PermissionMeta>, Dictionary <string, Dictionary <string, IEnumerable <string> > > >(dispatchedMetas);

            return(Ok(resource));
        }
Пример #3
0
        public async Task <ActionResult <LinGroupWithAuthsResource> > AddGroup(LinGroupAddResource linGroupAddResource)
        {
            var group = MyMapper.Map <LinGroupAddResource, LinGroup>(linGroupAddResource);

            var dispatchedMetas = PermissionMetaHandler.GetAllDispatchedMetas();

            var permissionMetas = dispatchedMetas.Where(meta => linGroupAddResource.Auths.Contains(meta.Auth));

            var linAuths = MyMapper.Map <IEnumerable <PermissionMeta>, IEnumerable <LinAuth> >(permissionMetas);

            group.LinAuths = linAuths.ToList();

            _adminRepository.Add(group);

            if (!await UnitOfWork.SaveAsync())
            {
                throw new Exception("Save Failed!");
            }

            var resource = MyMapper.Map <LinGroup, LinGroupWithAuthsResource>(group);

            return(CreatedAtRoute("GetGroup", new { id = resource.Id }, resource));
        }