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 = "添加权限成功" })); }
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)); }
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)); }