summaryrefslogtreecommitdiff
path: root/PrincipalProviders/LocalPrincipalProvider.cs
blob: 7bee800437f8c6f0c8d0bc0fa0eca0fdf791ee0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using HyperBooru.Services;
using Microsoft.EntityFrameworkCore;

namespace HyperBooru.PrincipalProviders;

public class LocalPrincipalProvider : PrincipalProvider {
    private IDbContextFactory<HBContext> dbFactory;

    public LocalPrincipalProvider(IDbContextFactory<HBContext> dbFactory) =>
        this.dbFactory = dbFactory;

    public override Principal? GetPrincipal(string name) {
        using var db = dbFactory.CreateDbContext();

        LocalPrincipal? principal = db.Principals.FirstOrDefault(p => p.Name == name);
        if(principal is null)
            return null;

        return principal;
    }

    public override User? GetUser(string name) {
        using var db = dbFactory.CreateDbContext();

        LocalUser? user = db.Users.FirstOrDefault(p => p.Name == name);
        if(user is null)
            return null;

        return user;
    }

    public override Group? GetGroup(string name) {
        using var db = dbFactory.CreateDbContext();

        LocalGroup? group = db.Groups.FirstOrDefault(p => p.Name == name);
        if(group is null)
            return null;

        return group;
    }

    public override Group[] GetGroups(Principal principal, bool recurse) {
        throw new NotImplementedException();
    }

    public override bool ValidatePassword(User principal, string password) {
        throw new NotImplementedException();
    }
}