18 lines
482 B
TypeScript
18 lines
482 B
TypeScript
|
import type { Enforcer } from 'casbin'
|
||
|
import type { Context } from 'hono'
|
||
|
import { auth } from 'hono/utils/basic-auth'
|
||
|
|
||
|
const getUserName = (c: Context): string => {
|
||
|
const requestUser = auth(c.req.raw)
|
||
|
if (!requestUser) {
|
||
|
return ''
|
||
|
}
|
||
|
return requestUser.username
|
||
|
}
|
||
|
|
||
|
export const basicAuthorizer = async (c: Context, enforcer: Enforcer): Promise<boolean> => {
|
||
|
const { path, method } = c.req
|
||
|
const user = getUserName(c)
|
||
|
return enforcer.enforce(user, path, method)
|
||
|
}
|