public virtual async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) { await CheckProviderPolicy(providerName); var permissions = await PermissionGrantRepository.GetListAsync(providerName, providerKey); foreach (var permission in input.Permissions) { var editPermission = permissions.FirstOrDefault(p => p.Name.Equals(permission.Name)); if (editPermission == null) { if (permission.IsGranted) { var permissionGrant = new PermissionGrant(GuidGenerator.Create(), permission.Name, providerName, providerKey, CurrentTenant.Id); await PermissionGrantRepository.InsertAsync(permissionGrant); } } else { if (!permission.IsGranted) { await PermissionGrantRepository.DeleteAsync(editPermission.Id); } } } }
public virtual async Task SeedAsync( string providerName, string providerKey, IEnumerable <string> grantedPermissions, Guid?tenantId = null) { using (CurrentTenant.Change(tenantId)) { var names = grantedPermissions.ToArray(); var existsPermissionGrants = (await PermissionGrantRepository.GetListAsync(names, providerName, providerKey)).Select(x => x.Name).ToList(); foreach (var permissionName in names.Except(existsPermissionGrants)) { await PermissionGrantRepository.InsertAsync( new PermissionGrant( GuidGenerator.Create(), permissionName, providerName, providerKey, tenantId ) ); } } }
public virtual async Task SeedAsync( string providerName, string providerKey, Dictionary <string, string> permissions, Guid?tenantId = null) { foreach (var permission in permissions) { var permissionGrant = await PermissionGrantRepository.FindAsync(permission.Key, providerName, providerKey); if (permissionGrant != null) { if (permissionGrant.ProviderScope == permission.Value) { continue; } permissionGrant.ProviderScope = permission.Value; await PermissionGrantRepository.UpdateAsync(permissionGrant); } await PermissionGrantRepository.InsertAsync( new PermissionGrant ( GuidGenerator.Create(), permission.Key, providerName, permission.Value, providerKey, tenantId ) ); } }
public virtual async Task SeedAsync( string providerName, string providerKey, IEnumerable <string> grantedPermissions, Guid?tenantId = null) { using (CurrentTenant.Change(tenantId)) { foreach (var permissionName in grantedPermissions) { if (await PermissionGrantRepository.FindAsync(permissionName, providerName, providerKey) != null) { continue; } await PermissionGrantRepository.InsertAsync( new PermissionGrant( GuidGenerator.Create(), permissionName, providerName, providerKey, tenantId ) ); } } }
protected virtual async Task GrantAsync(string permissionName, string providerName, string providerScope, string providerKey) { var permissionGrant = await PermissionGrantRepository.FindAsync(permissionName, providerName, providerKey); if (permissionGrant != null) { if (permissionGrant.ProviderScope == providerScope) { return; } permissionGrant.ProviderScope = providerScope; await PermissionGrantRepository.UpdateAsync(permissionGrant); } await PermissionGrantRepository.InsertAsync( new PermissionGrant ( GuidGenerator.Create(), permissionName, providerName, providerScope, providerKey, CurrentTenant.Id ) ); }
/// <summary> /// 授权 /// </summary> /// <param name="name"></param> /// <param name="providerKey"></param> /// <returns></returns> protected virtual async Task GrantAsync(string name, string providerKey) { var permissionGrant = await PermissionGrantRepository.FindAsync(name, Name, providerKey); if (permissionGrant != null) { return; } await PermissionGrantRepository.InsertAsync(new PermissionGrant(IDUtils.NewId(), name, Name, providerKey, CurrentTenant.Id)); }
protected virtual async Task GrantAsync(string name, string providerKey) { var permissionGrant = await PermissionGrantRepository.FindAsync(name, Name, providerKey).ConfigureAwait(false); if (permissionGrant != null) { return; } await PermissionGrantRepository.InsertAsync( new PermissionGrant( GuidGenerator.Create(), name, Name, providerKey, CurrentTenant.Id ) ).ConfigureAwait(false); }
public async Task SeedAsync( string providerName, string providerKey, IEnumerable <string> grantedPermissions, Guid?tenantId = null) { foreach (var permissionName in grantedPermissions) { if (await PermissionGrantRepository.FindAsync(permissionName, providerName, providerKey) != null) { continue; } await PermissionGrantRepository.InsertAsync( new PermissionGrant( GuidGenerator.Create(), permissionName, providerName, providerKey, tenantId ) ).ConfigureAwait(false); } }