security-privileges

Define and enforce HMIS user privileges for role-based access control.

Updated Aug 27, 2026
One-click install
npx skills add https://github.com/withmartian-sandbox/ghrc-x-a78d77e2f0a84f43b4d486d418566b5b --skill security-privileges
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: security-privileges
Source: https://github.com/withmartian-sandbox/ghrc-x-a78d77e2f0a84f43b4d486d418566b5b/tree/main/.claude/skills/security-privileges
Command: npx skills add https://github.com/withmartian-sandbox/ghrc-x-a78d77e2f0a84f43b4d486d418566b5b --skill security-privileges

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Privilege system reference for the HMIS project. Use when adding new privileges, implementing access control, working with user roles, checking privilege-based rendering in XHTML, or auditing security controls.

Core Features & Use Cases

  • Declare privileges in Privileges.java - append to enum without reordering
  • Check in controllers via webUserController.hasPrivilege(...)
  • Assign through UI via User Privileges admin interface; never seed in database
  • Name descriptively so usage is obvious from enum value

Quick Start

Define a new privilege in Privileges.java, assign it through the User Privileges UI, and verify access is enforced via webUserController.hasPrivilege(...) checks.

Frequently Asked Questions about security-privileges

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add new user privileges for HMIS role-based access control?

To add new user privileges for HMIS, declare them in the Privileges.java enum file by appending new values without reordering existing ones. Assign the new privileges through the User Privileges administration UI rather than seeding them directly in the database.

How do I enforce role-based access control in HMIS controllers?

Enforce role-based access control in HMIS controllers by calling webUserController.hasPrivilege(...) with the required Privileges.java enum value to verify user authorization before processing requests or rendering XHTML views.

What is the correct way to assign HMIS privileges to user roles?

Assign HMIS privileges to user roles exclusively through the User Privileges administration interface. Never seed privileges directly in the database, as the UI manages the mapping between roles and the Privileges.java enum declarations securely.

Can I check HMIS user privileges for conditional rendering in XHTML views?

Yes, you can check HMIS user privileges for conditional XHTML rendering by using the webUserController.hasPrivilege(...) method. Name privileges descriptively in the enum so their usage remains obvious during access control checks in views.

Why should I avoid reordering existing entries in the Privileges.java enum?

Avoid reordering existing entries in the Privileges.java enum because enum ordinals are persisted and used for database references. Reordering breaks existing role-based access control mappings and corrupts the HMIS security controls across modules.

How do I audit security controls and access policies across HMIS modules?

Audit HMIS security controls by reviewing Privileges.java enum declarations, verifying webUserController.hasPrivilege(...) checks in controllers, and inspecting role assignments via the User Privileges administration interface across all modules.