40 int (*
check)(csilk_ctx_t* c,
const char* permission,
const char* resource);
84int csilk_perm_check(csilk_ctx_t* c,
const char* permission,
const char* resource);
void csilk_perm_require(csilk_ctx_t *c, const char *permission, const char *resource)
Abort the handler chain with 403 Forbidden if the check fails. Convenience wrapper: calls csilk_perm_...
Definition perm.c:127
csilk_perm_driver_t * csilk_perm_get_driver(const char *name)
Look up a registered driver by name.
Definition perm.c:75
int csilk_perm_register_driver(const char *name, csilk_perm_driver_t *driver)
Register a permission driver implementation.
Definition perm.c:55
const char * resource
Definition perm.h:54
void csilk_perm_simple_clear(void)
Remove all rules from the simple driver. After calling this, all checks will deny until new rules are...
Definition perm_simple.c:175
void csilk_perm_simple_init(void)
Initialise the built-in in-memory RBAC driver. Registers as "simple". Must be called before any simpl...
Definition perm_simple.c:143
int csilk_perm_set_default(const char *name)
Set the default permission driver used by csilk_perm_check.
Definition perm.c:93
const char * permission
Definition perm.h:53
const char * role
Definition perm.h:52
int csilk_perm_check(csilk_ctx_t *c, const char *permission, const char *resource)
Check the current request against the default permission driver.
Definition perm.c:111
int csilk_perm_simple_allow(const char *role, const char *permission, const char *resource)
Grant a permission on a resource to a role.
Definition perm_simple.c:158
void csilk_perm_auto_middleware(csilk_ctx_t *c)
Automatic permission-check middleware. Looks up the permission and resource from the route's metadata...
Definition perm.c:147
void csilk_perm_init(void)
Initialise the permission subsystem. Safe to call multiple times. Must be called before any driver op...
Definition perm.c:40
A single permission rule for the built-in RBAC driver.
Definition perm.h:51
Main Request Context — holds all state for the current HTTP request/response cycle.
Definition context_internal.h:107
Virtual function table for a permission/ACL driver.
Definition perm.h:32
const char * name
Definition perm.h:33
int(* check)(csilk_ctx_t *c, const char *permission, const char *resource)
Evaluate whether the request is allowed.
Definition perm.h:40