mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-04-24 05:57:20 -04:00
Add ApiKey entity and associated relationships
This commit is contained in:
parent
16ca8c7536
commit
1c501b17d7
2 changed files with 57 additions and 0 deletions
50
Jellyfin.Data/Entities/Security/ApiKey.cs
Normal file
50
Jellyfin.Data/Entities/Security/ApiKey.cs
Normal file
|
@ -0,0 +1,50 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Jellyfin.Data.Entities.Security
|
||||
{
|
||||
/// <summary>
|
||||
/// An entity representing an API key.
|
||||
/// </summary>
|
||||
public class ApiKey
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ApiKey"/> class.
|
||||
/// </summary>
|
||||
/// <param name="name">The name.</param>
|
||||
public ApiKey(string name)
|
||||
{
|
||||
Name = name;
|
||||
|
||||
AccessToken = Guid.NewGuid();
|
||||
DateCreated = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the id.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Identity, Indexed, Required.
|
||||
/// </remarks>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the date created.
|
||||
/// </summary>
|
||||
public DateTime DateCreated { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name.
|
||||
/// </summary>
|
||||
[MaxLength(64)]
|
||||
[StringLength(64)]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the access token.
|
||||
/// </summary>
|
||||
public Guid AccessToken { get; set; }
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using Jellyfin.Data.Entities;
|
||||
using Jellyfin.Data.Entities.Security;
|
||||
using Jellyfin.Data.Interfaces;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
|
@ -29,6 +30,8 @@ namespace Jellyfin.Server.Implementations
|
|||
|
||||
public virtual DbSet<ActivityLog> ActivityLogs { get; set; }
|
||||
|
||||
public virtual DbSet<ApiKey> ApiKeys { get; set; }
|
||||
|
||||
public virtual DbSet<DisplayPreferences> DisplayPreferences { get; set; }
|
||||
|
||||
public virtual DbSet<ImageInfo> ImageInfos { get; set; }
|
||||
|
@ -196,6 +199,10 @@ namespace Jellyfin.Server.Implementations
|
|||
|
||||
// Indexes
|
||||
|
||||
modelBuilder.Entity<ApiKey>()
|
||||
.HasIndex(entity => entity.AccessToken)
|
||||
.IsUnique();
|
||||
|
||||
modelBuilder.Entity<User>()
|
||||
.HasIndex(entity => entity.Username)
|
||||
.IsUnique();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue