22 lines
701 B
TypeScript
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);
|
||
|
});
|
||
|
}
|