security-privileges

star 217

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.

hmislk By hmislk schedule Updated 2/10/2026

name: security-privileges description: > 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. user-invocable: true

Privilege System Reference

Core Principles

  • 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

Common Privileges

Privilege Description
StockTransactionViewRates Rate/value fields in stock transactions
PharmacyTransferViewRates Rates in pharmacy transfer reports
Developers All bill formats for dev/QA validation

Adding a New Privilege

  1. Check src/main/java/com/divudi/core/data/Privileges.java - reuse existing if matching behavior exists
  2. Never rename or edit legacy enum values (backward compatibility)
  3. Add to most relevant section, keeping existing grouping
  4. Update src/main/webapp/admin/users/user_privileges.xhtml for UI assignment
  5. Extend UserPrivilageController.createPrivilegeHolderTreeNodes() for tree rendering

Usage in XHTML

<p:column rendered="#{webUserController.hasPrivilege('PharmacyTransferViewRates')}">
    <h:outputText value="#{item.rate}" />
</p:column>

Testing Checklist

  • Log in WITHOUT the privilege - confirm UI element is hidden/disabled
  • Log in WITH the privilege - verify workflow succeeds end-to-end
  • Document new privilege in release notes

For complete reference, read developer_docs/security/privilege-system.md.

Install via CLI
npx skills add https://github.com/hmislk/hmis --skill security-privileges
Repository Details
star Stars 217
call_split Forks 134
navigation Branch main
article Path SKILL.md
More from Creator