private RolePermissionCacheItem GetRolePermissionCacheItem(int roleId) { var cacheKey = roleId + "@" + (GetCurrentTenantId() ?? 0); return(_cacheManager.GetRolePermissionCache().Get(cacheKey, () => { var newCacheItem = new RolePermissionCacheItem(roleId); var role = AbpStore.FindById(roleId.ToString(), CancellationToken); if (role == null) { throw new AbpException("There is no role with given id: " + roleId); } var staticRoleDefinition = RoleManagementConfig.StaticRoles.FirstOrDefault(r => r.RoleName == role.Name && r.Side == role.GetMultiTenancySide() ); if (staticRoleDefinition != null) { foreach (var permission in _permissionManager.GetAllPermissions()) { if (staticRoleDefinition.IsGrantedByDefault(permission)) { newCacheItem.GrantedPermissions.Add(permission.Name); } } } foreach (var permissionInfo in RolePermissionStore.GetPermissions(roleId)) { if (permissionInfo.IsGranted) { newCacheItem.GrantedPermissions.AddIfNotContains(permissionInfo.Name); } else { newCacheItem.GrantedPermissions.Remove(permissionInfo.Name); } } return newCacheItem; })); }
private async Task <RolePermissionCacheItem> GetRolePermissionCacheItemAsync(int roleId) { var cacheKey = roleId + "@" + (GetCurrentTenantId() ?? 0); return(await _cacheManager.GetRolePermissionCache().GetAsync(cacheKey, async() => { var newCacheItem = new RolePermissionCacheItem(roleId); foreach (var permissionInfo in await RolePermissionStore.GetPermissionsAsync(roleId)) { if (permissionInfo.IsGranted) { newCacheItem.GrantedPermissions.Add(permissionInfo.Name); } } return newCacheItem; })); }
private async Task <RolePermissionCacheItem> GetRolePermissionCacheItemAsync(int roleId) { var cacheKey = roleId + "@" + (GetCurrentTenantId() ?? 0); return(await CacheManager.GetRolePermissionCache().GetAsync(cacheKey, async() => { var newCacheItem = new RolePermissionCacheItem(roleId); var role = await Store.FindByIdAsync(roleId); if (role == null) { throw new AbpException("There is no role with given id: " + roleId); } var staticRoleDefinition = RoleManagementConfig.StaticRoles.FirstOrDefault(r => r.RoleName == role.Name); if (staticRoleDefinition != null) { foreach (var permission in PermissionManager.GetAllPermissions()) { if (staticRoleDefinition.IsGrantedByDefault(permission)) { newCacheItem.GrantedPermissions.Add(permission.Name); } } } foreach (var permissionInfo in await RolePermissionStore.GetPermissionsAsync(roleId)) { if (permissionInfo.IsGranted) { newCacheItem.GrantedPermissions.AddIfNotContains(permissionInfo.Name); } else { newCacheItem.GrantedPermissions.Remove(permissionInfo.Name); } } return newCacheItem; })); }
private async Task <RolePermissionCacheItem> GetRolePermissionCacheItemAsync(int roleId) { return(await _rolePermissionCache.GetAsync(roleId, async() => { var newCacheItem = new RolePermissionCacheItem(roleId); foreach (var permissionInfo in await RolePermissionStore.GetPermissionsAsync(roleId)) { if (permissionInfo.IsGranted) { newCacheItem.GrantedPermissions.Add(permissionInfo.Name); } else { newCacheItem.ProhibitedPermissions.Add(permissionInfo.Name); } } return newCacheItem; })); }