tethys.backend/app/Models/utils.ts
2023-03-03 16:54:28 +01:00

22 lines
701 B
TypeScript

import Database, {
// DatabaseQueryBuilderContract,
QueryClientContract,
TransactionClientContract,
} from "@ioc:Adonis/Lucid/Database";
import Config from "@ioc:Adonis/Core/Config";
export function getUserRoles(
userId: number,
trx?: TransactionClientContract
): Promise<Array<string>> {
const { userRole } = Config.get("acl.joinTables");
return ((trx || Database) as QueryClientContract | TransactionClientContract)
.query()
.from("roles")
.distinct("roles.slug")
.leftJoin(userRole, `${userRole}.role_id`, "roles.id")
.where(`${userRole}.user_id`, userId)
.then((res) => {
return res.map((r) => r.slug);
});
}