Agent skill · software engineering · caffeinelabs

extension-user-approval

Approval-based user management.

Why this skill is useful

Provides a prefabricated module for approval-based user management that includes specific role-based access control patterns not commonly found in public documentation.

What it needs

About 2k tokens when loaded. Last updated 2026-08-06.

What this skill does

User Approval User approval extension for Caffeine AI. Overview This skill adds approval-based user management. Users request access; admins approve or reject. Approved users gain access to protected features. Prerequisite: You must follow extension-authorization first, as this integration depends on it. Backend Module API The prefabricated module mo:caffeineai-user-approval/approval provides low-level approval state management. Do not modify it. Setup in main.mo include MixinUserApproval(accessControlState, approvalState) MUST be placed in main.mo, not in a custom mixin file. Declare approvalState at actor top level and pass it into the mixin. The mixin provides these public endpoints automatically: isCallerApproved() requestApproval() setApproval(user, status) listApprovals() Keep approvalState in scope for custom approval guards in app-specific endpoints. Do NOT redeclare any of the mixin-provided functions. The migration chain head — UserApproval.initState depends on the access-control state, so compute it in order inside the migration body: On initState, existing admins are automatically approved. All other users are pending. IMPORTANT: Apply the right authorization and/or approval check to each custom public function. Frontend Approval-based user management: User Approval Flow Check approval status (isCallerApproved) If not approved, show option to request approval (requestApproval) Block access to main features for non-approved users Admins have access to all features of the application Display approval status clearly in the UI Admin Dashboard For admin users, provide a dashboard to: List all users with their approval status (listApprovals) Approve or reject users (setApproval) View and assign user roles (using getCallerUserRole and assignCallerUserRole) Backend Integration The backend already implements the following functionality. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills caffeinelabs/extension-user-approval

View the source on GitHub

Browse the @skills marketplace