3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00

Add rudimentary user management to dashboard

This commit is contained in:
Dragory 2021-09-05 16:42:35 +03:00
parent 48c4b3578d
commit 3b09d2d679
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
12 changed files with 395 additions and 81 deletions

View file

@ -48,12 +48,13 @@ export class ApiPermissionAssignments extends BaseRepository {
});
}
addUser(guildId, userId, permissions: ApiPermissions[]) {
addUser(guildId, userId, permissions: ApiPermissions[], expiresAt: string | null = null) {
return this.apiPermissions.insert({
guild_id: guildId,
type: ApiPermissionTypes.User,
target_id: userId,
permissions,
expires_at: expiresAt,
});
}
@ -61,6 +62,19 @@ export class ApiPermissionAssignments extends BaseRepository {
return this.apiPermissions.delete({ guild_id: guildId, type: ApiPermissionTypes.User, target_id: userId });
}
async updateUserPermissions(guildId: string, userId: string, permissions: ApiPermissions[]): Promise<void> {
await this.apiPermissions.update(
{
guild_id: guildId,
type: ApiPermissionTypes.User,
target_id: userId,
},
{
permissions,
},
);
}
async clearExpiredPermissions() {
await this.apiPermissions
.createQueryBuilder()

View file

@ -8,7 +8,7 @@ export class ApiPermissionAssignment {
@PrimaryColumn()
guild_id: string;
@Column({ type: "string" })
@Column({ type: String })
@PrimaryColumn()
type: ApiPermissionTypes;
@ -19,8 +19,8 @@ export class ApiPermissionAssignment {
@Column("simple-array")
permissions: string[];
@Column()
expires_at: string;
@Column({ type: String, nullable: true })
expires_at: string | null;
@ManyToOne(
type => ApiUserInfo,