Added docs
This commit is contained in:
parent
ffcf2d0992
commit
e4c5ddd04c
|
|
@ -11,9 +11,20 @@ import { permissionsSchema } from "../drizzle/schema/permissions";
|
|||
import { RoleCode } from "../data/roles";
|
||||
import { SpecificPermissionCode } from "../data/permissions";
|
||||
|
||||
/**
|
||||
* Middleware to load and set authentication information for a user.
|
||||
*
|
||||
* It queries the database to fetch user details, roles, and permissions based on the user ID provided in the context.
|
||||
* It joins several tables to efficiently gather all relevant data, and then processes this data to attach the user's roles and permissions to the context.
|
||||
* If the user is found and active, their details are added to the context for use in subsequent middleware or routes.
|
||||
*
|
||||
* @param c - The context provided by Hono, which includes environment and user-specific data.
|
||||
* @param next - The next middleware function in the chain.
|
||||
*/
|
||||
const authInfo = createMiddleware<HonoEnv>(async (c, next) => {
|
||||
const { uid, currentUser } = c.var;
|
||||
|
||||
// Proceed only if uid is present and currentUser is not already set
|
||||
if (uid && !currentUser) {
|
||||
const user = await db
|
||||
.select()
|
||||
|
|
@ -58,8 +69,9 @@ const authInfo = createMiddleware<HonoEnv>(async (c, next) => {
|
|||
}
|
||||
});
|
||||
|
||||
// Setting the currentUser with fetched data
|
||||
c.set("currentUser", {
|
||||
name: user[0].users.name,
|
||||
name: user[0].users.name, // Assuming the first result is the user
|
||||
permissions: Array.from(permissions),
|
||||
roles: Array.from(roles),
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user