2
0

PermissionConfiguration.cs 910 B

123456789101112131415161718192021222324
  1. using Jellyfin.Data.Entities;
  2. using Microsoft.EntityFrameworkCore;
  3. using Microsoft.EntityFrameworkCore.Metadata.Builders;
  4. namespace Jellyfin.Server.Implementations.ModelConfiguration
  5. {
  6. /// <summary>
  7. /// FluentAPI configuration for the Permission entity.
  8. /// </summary>
  9. public class PermissionConfiguration : IEntityTypeConfiguration<Permission>
  10. {
  11. /// <inheritdoc/>
  12. public void Configure(EntityTypeBuilder<Permission> builder)
  13. {
  14. // Used to get a user's permissions or a specific permission for a user.
  15. // Also prevents multiple values being created for a user.
  16. // Filtered over non-null user ids for when other entities (groups, API keys) get permissions
  17. builder
  18. .HasIndex(p => new { p.UserId, p.Kind })
  19. .HasFilter("[UserId] IS NOT NULL")
  20. .IsUnique();
  21. }
  22. }
  23. }