fix 🐛: type fix and role assertion
Some checks failed
Release / Release (push) Has been cancelled

This commit is contained in:
2025-06-01 15:58:00 +03:00
parent bcf9c2b191
commit 63a0d5948a

View File

@@ -1,4 +1,4 @@
import type { Accountability } from "@directus/types"; import type { Accountability, Policy, User } from "@directus/types";
import { getAuthProviders } from "./authProvider/get-auth-providers.js"; import { getAuthProviders } from "./authProvider/get-auth-providers.js";
import { verify_token } from "./verify-token.js"; import { verify_token } from "./verify-token.js";
@@ -27,7 +27,7 @@ const getUser = async (
database: Knex, database: Knex,
externalIdentifier: string | undefined, externalIdentifier: string | undefined,
provider: string provider: string
) => { ): Promise<User & Policy> => {
return database return database
.select( .select(
"directus_users.id", "directus_users.id",
@@ -49,7 +49,7 @@ const getUser = async (
.first(); .first();
}; };
const insertUser = async (database: Knex, user: Record<string, string | undefined>): Promise<unknown> => { const insertUser = async (database: Knex, user: Record<string, string | undefined>) => {
await database("directus_users").insert(user); await database("directus_users").insert(user);
return getUser(database, user.external_identifier, user.provider!); return getUser(database, user.external_identifier, user.provider!);
}; };
@@ -128,12 +128,12 @@ export async function getAccountabilityForToken(
} }
if (user) { if (user) {
const userRoleId = user.role?.id || user.role as unknown as string;
accountability.user = user.id; accountability.user = user.id;
accountability.role = user.role; accountability.role = userRoleId;
accountability.roles = [user.role]; accountability.roles = [userRoleId];
accountability.admin = accountability.admin = user.admin_access;
user.admin_access === true || user.admin_access == 1; accountability.app = user.app_access;
accountability.app = user.app_access === true || user.app_access == 1;
if (CacheEnabled() && result.sub) { if (CacheEnabled() && result.sub) {
await CacheSet(result.sub, accountability); await CacheSet(result.sub, accountability);