HomeAbout UsServicesProductCase StudyBlogsContact Us
Try AI Dashboard
  1. Home
  2. /
  3. Blogs
  4. /
  5. Boosting Frappe: Perm Parser with base ORM

Scalix Insights1 min read

Boosting Frappe: Perm Parser with base ORM

By Prafful Suthar

Frappe Perm Parser

For cases where a custom query is created and permissions need to be validated use has_valid_perms function to validate doctype access.

    has_valid_perms(
        qb,                             # Query builder or pure SQL query
        exclude=[],                     # Doctype names that should be bypass validation
        user=None,                      # Specify user or session user will be used
        ptype="read",                   # Permission type (Default = "read")
        raise_exception=False           # Throws frappe.permission error with standard message if true
        append_query_validations=True   # Appends query validation for field level and global permissions
    )

Examples

  • Frappe Query Builder

    import frappe from frappe_utils.frappe_perm_parser.frappe_perm_parser import has_valid_perms

    WebPageView = frappe.qb.DocType("Note")

    builder = frappe.qb.from_(WebPageView).select("*")

    builder = has_valid_perms(builder) # Throws frappe permission error or returns query with appended filters.

    return builder.run()

  • Frappe DB SQL

    import frappe from frappe_utils.frappe_perm_parser.frappe_perm_parser import has_valid_perms

    query = f""" SELECT path, COUNT(*) as count, COUNT(CASE WHEN CAST(is_unique as Integer) = 1 THEN 1 END) as unique_count FROM tabWeb Page View WHERE creation BETWEEN {some_date} AND {some_later_date} """

    query = has_valid_perms(query) # Throws frappe permission error or returns true.

    return frappe.db.sql(query)

About the author

Prafful Suthar writes for Scalix on enterprise platforms, high-throughput systems, and ERP delivery. Scalix builds and migrates mission-critical software for regulated and scale-heavy organizations from Mumbai and remote-first teams. See our case studies for problem–solution–result write-ups, or contact us about your roadmap.

Related case studies

  • Reliance — SAP-class MDM and Frappe at conglomerate scale
  • Citixsys / iVend — retail ERP and secure distribution
  • SprintMoney — fintech integrations and platform performance
Footer Logo

About

  • Company
  • Blogs
  • Contact Us

Services

  • Custom Development
  • System Optimization
  • Infrastructure & Operation
  • Strategic Technology
  • Quality Assurance

Got a question?

Phone icon

Call us

+91 - 9987938039
Email icon

Email Us

sales@scalix.in
Location icon

Location

113 - Tanvi Diamoda Gold, Tanvi Complex,
S.V. Road, Dahisar (E),
Mumbai, Maharashtra 400068.
Footer Logo

Got a question?

Phone icon

Call us

+91 - 9987938039
Email icon

Email Us

sales@scalix.in
Location icon

Location

113 - Tanvi Diamoda Gold, Tanvi Complex,
S.V. Road, Dahisar (E),
Mumbai, Maharashtra 400068.

About

  • Company
  • Blogs
  • Contact Us

Services

  • Custom Development
  • System Optimization
  • Infrastructure & Operation
  • Strategic Technology
  • Quality Assurance

© Copyright 2026. All Rights Reserved.