frappe-core-permissions

Define and enforce a five-layer access control model in Frappe apps.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-core-permissions
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-core-permissions
Source: https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package/tree/main/skills/source/core/frappe-core-permissions
Command: npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-core-permissions

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Frappe/ERPNext permission configuration is complex and error-prone, often leading to data exposure or restricted workflows. This Skill codifies a deterministic, five-layer approach (roles, user permissions, perm levels, permission hooks, and data masking) to standardize and secure access control across v14–v16.

Core Features & Use Cases

  • Five-layer permission model: Role Permissions, User Permissions, Perm Levels, Permission Hooks, Data Masking, with field-level control and safe bypass patterns.
  • Comprehensive guidance on how to configure and audit permissions for common scenarios, including owner-based restrictions and sharing.
  • Practical API references and code examples to implement and enforce permission checks across DocTypes.

Quick Start

Follow the built-in examples to implement and test the five-layer permission model in your Frappe app.

Frequently Asked Questions about frappe-core-permissions

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

FAQPage Schema
How do I configure Frappe permissions to secure access control across multiple DocTypes?

Frappe permissions are configured using a deterministic five-layer model covering roles, user permissions, perm levels, permission hooks, and data masking to standardize secure access control across multiple DocTypes.

What is the best way to implement field-level permissions and data masking in ERPNext?

Field-level permissions and data masking in ERPNext are best implemented through the five-layer permission model, which provides explicit perm levels, field-level control, and safe bypass patterns to prevent data exposure.

Does this Frappe permission model support owner-based restrictions and sharing workflows?

Yes, the Frappe permission model supports owner-based restrictions and sharing workflows, providing comprehensive guidance and practical API references to configure and audit these common scenarios safely.

How do I use permission hooks and has_permission checks in Frappe app development?

Permission hooks and has_permission checks in Frappe app development are applied via standardized code examples and API references that enforce explicit permission checks across DocTypes using the five-layer model.

Why are my Frappe user permissions and perm levels not preventing data exposure as expected?

Frappe user permissions and perm levels fail to prevent data exposure when not applied within a deterministic five-layer model; auditing roles, user permissions, perm levels, hooks, and data masking together secures the workflow.