コード例 #1
0
        public async Task <IResultModel> BindPermissions(RolePermissionBindModel model)
        {
            _rolePermissionRepository.BeginTrans();
            var result = await _rolePermissionRepository.DeleteByRole(model.RoleId);

            if (result >= 0)
            {
                if (model.Permissions != null && model.Permissions.Any())
                {
                    var list = model.Permissions.Select(m => new RolePermissionEntity
                    {
                        RoleId         = model.RoleId,
                        PermissionCode = m
                    }).ToList();

                    await _rolePermissionRepository.InsertAsync(list);
                }

                _rolePermissionRepository.Commit();
                //todo 这里是做什么的需要搞清楚
                //await ClearAccountPermissionCache(model.RoleId);
                return(ResultModel.Success());
            }
            return(ResultModel.Failed());
        }
コード例 #2
0
ファイル: RoleService.cs プロジェクト: zhxuyang11/NetModular
        public async Task <IResultModel> BindPlatformPermissions(RolePermissionBindModel model)
        {
            if (model.Platform == Platform.Web)
            {
                return(ResultModel.Failed("WEB平台请使用页面授权"));
            }

            using var uow = _dbContext.NewUnitOfWork();
            var result = await _permissionRepository.DeleteByRole(model.RoleId, model.Platform, uow);

            if (result)
            {
                if (model.Permissions != null && model.Permissions.Any())
                {
                    var list = model.Permissions.Select(m => new RolePermissionEntity
                    {
                        RoleId         = model.RoleId,
                        Platform       = model.Platform,
                        PermissionCode = m
                    }).ToList();

                    await _permissionRepository.AddAsync(list, uow);
                }

                uow.Commit();
                await ClearAccountPermissionCache(model.RoleId);

                return(ResultModel.Success());
            }

            return(ResultModel.Failed());
        }
コード例 #3
0
 public Task <IResultModel> BindPlatformPermissions(RolePermissionBindModel model)
 {
     return(_service.BindPlatformPermissions(model));
 }