| <!doctype html> |
| <html lang="id" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-priority-model" data-has-hydrated="false"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="generator" content="Docusaurus v3.9.2"> |
| <title data-rh="true">Priority Model | Casbin</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://casbin.org/id/docs/priority-model"><meta data-rh="true" property="og:locale" content="id"><meta data-rh="true" property="og:locale:alternate" content="en"><meta data-rh="true" property="og:locale:alternate" content="zh"><meta data-rh="true" property="og:locale:alternate" content="ko"><meta data-rh="true" property="og:locale:alternate" content="ru"><meta data-rh="true" property="og:locale:alternate" content="fr"><meta data-rh="true" property="og:locale:alternate" content="de"><meta data-rh="true" property="og:locale:alternate" content="ja"><meta data-rh="true" property="og:locale:alternate" content="es"><meta data-rh="true" property="og:locale:alternate" content="pt"><meta data-rh="true" property="og:locale:alternate" content="uk"><meta data-rh="true" property="og:locale:alternate" content="th"><meta data-rh="true" property="og:locale:alternate" content="ar"><meta data-rh="true" property="og:locale:alternate" content="vi"><meta data-rh="true" property="og:locale:alternate" content="it"><meta data-rh="true" property="og:locale:alternate" content="ms"><meta data-rh="true" property="og:locale:alternate" content="tr"><meta data-rh="true" name="docusaurus_locale" content="id"><meta data-rh="true" name="docsearch:language" content="id"><meta data-rh="true" name="Casbin" content="An authorization library that supports access control models like ACL, RBAC, ABAC, ReBAC, PBAC, OrBAC, BLP, Biba, LBAC, UCON for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Priority Model | Casbin"><meta data-rh="true" name="description" content="Model Prioritas Casbin untuk mengelola kebijakan dengan prioritas berbeda"><meta data-rh="true" property="og:description" content="Model Prioritas Casbin untuk mengelola kebijakan dengan prioritas berbeda"><meta data-rh="true" name="keywords" content="priority model"><link data-rh="true" rel="icon" href="/id/img/favicon.png"><link data-rh="true" rel="canonical" href="https://casbin.org/id/docs/priority-model"><link data-rh="true" rel="alternate" href="https://casbin.org/docs/priority-model" hreflang="en"><link data-rh="true" rel="alternate" href="https://casbin.org/zh/docs/priority-model" hreflang="zh"><link data-rh="true" rel="alternate" href="https://casbin.org/ko/docs/priority-model" hreflang="ko"><link data-rh="true" rel="alternate" href="https://casbin.org/ru/docs/priority-model" hreflang="ru"><link data-rh="true" rel="alternate" href="https://casbin.org/fr/docs/priority-model" hreflang="fr"><link data-rh="true" rel="alternate" href="https://casbin.org/de/docs/priority-model" hreflang="de"><link data-rh="true" rel="alternate" href="https://casbin.org/ja/docs/priority-model" hreflang="ja"><link data-rh="true" rel="alternate" href="https://casbin.org/es/docs/priority-model" hreflang="es"><link data-rh="true" rel="alternate" href="https://casbin.org/pt/docs/priority-model" hreflang="pt"><link data-rh="true" rel="alternate" href="https://casbin.org/uk/docs/priority-model" hreflang="uk"><link data-rh="true" rel="alternate" href="https://casbin.org/th/docs/priority-model" hreflang="th"><link data-rh="true" rel="alternate" href="https://casbin.org/ar/docs/priority-model" hreflang="ar"><link data-rh="true" rel="alternate" href="https://casbin.org/id/docs/priority-model" hreflang="id"><link data-rh="true" rel="alternate" href="https://casbin.org/vi/docs/priority-model" hreflang="vi"><link data-rh="true" rel="alternate" href="https://casbin.org/it/docs/priority-model" hreflang="it"><link data-rh="true" rel="alternate" href="https://casbin.org/ms/docs/priority-model" hreflang="ms"><link data-rh="true" rel="alternate" href="https://casbin.org/tr/docs/priority-model" hreflang="tr"><link data-rh="true" rel="alternate" href="https://casbin.org/docs/priority-model" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://6NBEV8TOFK-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Model","item":"https://casbin.org/id/docs/category/model"},{"@type":"ListItem","position":2,"name":"Priority Model","item":"https://casbin.org/id/docs/priority-model"}]}</script><link rel="alternate" type="application/rss+xml" href="/id/blog/rss.xml" title="Casbin RSS Feed"> |
| <link rel="alternate" type="application/atom+xml" href="/id/blog/atom.xml" title="Casbin Atom Feed"> |
| |
| <link rel="preconnect" href="https://www.google-analytics.com"> |
| <link rel="preconnect" href="https://www.googletagmanager.com"> |
| <script async src="https://www.googletagmanager.com/gtag/js?id=G-8S2TKCJ27X"></script> |
| <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-8S2TKCJ27X",{})</script> |
| |
| |
| |
| <link rel="search" type="application/opensearchdescription+xml" title="Casbin" href="/id/opensearch.xml"> |
| <script src="/js/hotjar.js" async></script> |
| <script src="/js/probe.js" async></script> |
| <script src="/js/clarity.js" async></script><link rel="stylesheet" href="/id/assets/css/styles.786a0297.css"> |
| <script src="/id/assets/js/runtime~main.f25ac9fa.js" defer="defer"></script> |
| <script src="/id/assets/js/main.8c604f7d.js" defer="defer"></script> |
| </head> |
| <body class="navigation-with-keyboard"> |
| <svg style="display: none;"><defs> |
| <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> |
| </defs></svg> |
| <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Lewati ke konten utama"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Lewati ke konten utama</a></div><nav aria-label="Utama" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Alihkan bilah navigasi" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/id/"><div class="navbar__logo"><img src="https://cdn.casbin.org/img/casbin_logo_1024x256.png" alt="Casbin Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="https://cdn.casbin.org/img/casbin_logo_1024x256.png" alt="Casbin Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate"></b></a><div class="navbar__item dropdown dropdown--hoverable"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/id/docs/overview">Dokumen</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/id/docs/get-started">Memulai</a></li><li><a class="dropdown__link" href="/id/docs/category/model">Model</a></li><li><a class="dropdown__link" href="/id/docs/category/storage">Penyimpanan</a></li><li><a class="dropdown__link" href="/id/docs/adapters">Adaptor</a></li><li><a class="dropdown__link" href="/id/docs/category/api">API</a></li><li><a class="dropdown__link" href="/id/docs/ide-plugins">Plugin IDE</a></li><li><a class="dropdown__link" href="/id/docs/contributing">Mulai Berkontribusi</a></li></ul></div><a class="navbar__item navbar__link" href="/id/ecosystem">Plugins</a><a class="navbar__item navbar__link" href="/id/gallery">Authorization Models</a><a class="navbar__item navbar__link" href="/id/editor">GUI Policy Editor</a><a class="navbar__item navbar__link" href="/id/blog">Blog</a><a class="navbar__item navbar__link" href="/id/help">Bantuan</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Indonesia</a><ul class="dropdown__menu"><li><a href="/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/ko/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ko">한국어</a></li><li><a href="/ru/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ru">Русский</a></li><li><a href="/fr/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li><li><a href="/ja/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ja">日本語</a></li><li><a href="/es/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/pt/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="pt">Português</a></li><li><a href="/uk/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="uk">Українська</a></li><li><a href="/th/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="th">ไทย</a></li><li><a href="/ar/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ar">العربية</a></li><li><a href="/id/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="id">Indonesia</a></li><li><a href="/vi/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="vi">Tiếng Việt</a></li><li><a href="/it/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="it">Italiano</a></li><li><a href="/ms/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="ms">Melayu</a></li><li><a href="/tr/docs/priority-model" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="tr">Türkçe</a></li><li class=""><hr style="margin: 0.3rem 0;"></li><li><a href="https://crowdin.com/project/casbin-website" target="_blank" rel="noopener noreferrer" class="dropdown__link">Help Us Translate<svg width="12" height="12" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><a href="https://github.com/casbin/casbin" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><a href="https://discord.gg/S5UjpzGZjN" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-community-discord"></a><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Cari (Meta+k)" aria-keyshortcuts="Meta+k"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="8" stroke="currentColor" fill="none" stroke-width="1.4"></circle><path d="m21 21-4.3-4.3" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Cari</span></span><span class="DocSearch-Button-Keys"></span></button></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Beralih antara mode gelap dan terang (saat ini system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Gulir kembali ke atas" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/id/"><img src="https://cdn.casbin.org/img/casbin_logo_1024x256.png" alt="Casbin Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="https://cdn.casbin.org/img/casbin_logo_1024x256.png" alt="Casbin Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"><b></b></a><nav aria-label="Sidebar Dokumen" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/the-basics"><span title="Dasar-dasar" class="categoryLinkLabel_W154">Dasar-dasar</span></a><button aria-label="Collapse sidebar category 'Dasar-dasar'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/overview"><span title="Overview" class="linkLabel_WmDU">Overview</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/get-started"><span title="Get Started" class="linkLabel_WmDU">Get Started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/how-it-works"><span title="How It Works" class="linkLabel_WmDU">How It Works</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/tutorials"><span title="Tutorials" class="linkLabel_WmDU">Tutorials</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href="/id/docs/category/model"><span title="Model" class="categoryLinkLabel_W154">Model</span></a><button aria-label="Collapse sidebar category 'Model'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/supported-models"><span title="Supported Models" class="linkLabel_WmDU">Supported Models</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/syntax-for-models"><span title="Syntax for Models" class="linkLabel_WmDU">Syntax for Models</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/effector"><span title="Effector" class="linkLabel_WmDU">Effector</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/function"><span title="Functions" class="linkLabel_WmDU">Functions</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex="0" href="/id/docs/rbac-overview"><span title="RBAC" class="categoryLinkLabel_W154">RBAC</span></a><button aria-label="Collapse sidebar category 'RBAC'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac"><span title="RBAC" class="linkLabel_WmDU">RBAC</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-with-pattern"><span title="RBAC with Pattern" class="linkLabel_WmDU">RBAC with Pattern</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-with-domains"><span title="RBAC with Domains" class="linkLabel_WmDU">RBAC with Domains</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-with-conditions"><span title="RBAC with Conditions" class="linkLabel_WmDU">RBAC with Conditions</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-96"><span title="Casbin RBAC vs. RBAC96" class="linkLabel_WmDU">Casbin RBAC vs. RBAC96</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rebac"><span title="ReBAC" class="linkLabel_WmDU">ReBAC</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/abac"><span title="ABAC" class="linkLabel_WmDU">ABAC</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/pbac"><span title="PBAC" class="linkLabel_WmDU">PBAC</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex="0" href="/id/docs/mac-overview"><span title="MAC" class="categoryLinkLabel_W154">MAC</span></a><button aria-label="Collapse sidebar category 'MAC'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/blp"><span title="BLP" class="linkLabel_WmDU">BLP</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/biba"><span title="Biba" class="linkLabel_WmDU">Biba</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/lbac"><span title="LBAC" class="linkLabel_WmDU">LBAC</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/orbac"><span title="OrBAC" class="linkLabel_WmDU">OrBAC</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/id/docs/priority-model"><span title="Priority Model" class="linkLabel_WmDU">Priority Model</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/ucon"><span title="Usage Control (UCON)" class="linkLabel_WmDU">Usage Control (UCON)</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/superadmin"><span title="Super Admin" class="linkLabel_WmDU">Super Admin</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/storage"><span title="Penyimpanan" class="categoryLinkLabel_W154">Penyimpanan</span></a><button aria-label="Collapse sidebar category 'Penyimpanan'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/model-storage"><span title="Model Storage" class="linkLabel_WmDU">Model Storage</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/policy-storage"><span title="Policy Storage" class="linkLabel_WmDU">Policy Storage</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/policy-subset-loading"><span title="Policy Subset Loading" class="linkLabel_WmDU">Policy Subset Loading</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/scenarios"><span title="Skenario" class="categoryLinkLabel_W154">Skenario</span></a><button aria-label="Collapse sidebar category 'Skenario'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/data-permissions"><span title="Data Permissions" class="linkLabel_WmDU">Data Permissions</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/menu-permissions"><span title="Menu Permissions" class="linkLabel_WmDU">Menu Permissions</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/plugins-overview"><span title="Plugins" class="categoryLinkLabel_W154">Plugins</span></a><button aria-label="Collapse sidebar category 'Plugins'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/enforcers"><span title="Enforcers" class="linkLabel_WmDU">Enforcers</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/adapters"><span title="Adapters" class="linkLabel_WmDU">Adapters</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/watchers"><span title="Watchers" class="linkLabel_WmDU">Watchers</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/dispatchers"><span title="Dispatchers" class="linkLabel_WmDU">Dispatchers</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/role-managers"><span title="Role Managers" class="linkLabel_WmDU">Role Managers</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex="0" href="/id/docs/middlewares"><span title="Middlewares" class="categoryLinkLabel_W154">Middlewares</span></a><button aria-label="Collapse sidebar category 'Middlewares'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/kong-authz"><span title="Kong" class="linkLabel_WmDU">Kong</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/graphql-middlewares"><span title="GraphQL" class="linkLabel_WmDU">GraphQL</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/cloud-native"><span title="Cloud Native" class="linkLabel_WmDU">Cloud Native</span></a></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/api"><span title="API" class="categoryLinkLabel_W154">API</span></a><button aria-label="Collapse sidebar category 'API'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/api-overview"><span title="Overview" class="linkLabel_WmDU">Overview</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/management-api"><span title="Management API" class="linkLabel_WmDU">Management API</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-api"><span title="RBAC API" class="linkLabel_WmDU">RBAC API</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-with-domains-api"><span title="RBAC with Domains API" class="linkLabel_WmDU">RBAC with Domains API</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rbac-with-conditions-api"><span title="RBAC with Conditions API" class="linkLabel_WmDU">RBAC with Conditions API</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/rolemanager-api"><span title="RoleManager API" class="linkLabel_WmDU">RoleManager API</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/advanced-usage"><span title="Penggunaan Lanjutan" class="categoryLinkLabel_W154">Penggunaan Lanjutan</span></a><button aria-label="Collapse sidebar category 'Penggunaan Lanjutan'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/multi-threading"><span title="Multi-threading" class="linkLabel_WmDU">Multi-threading</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/benchmark"><span title="Benchmarks" class="linkLabel_WmDU">Benchmarks</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/performance"><span title="Performance Optimization" class="linkLabel_WmDU">Performance Optimization</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/k8s"><span title="Authorization of Kubernetes" class="linkLabel_WmDU">Authorization of Kubernetes</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/k8s-gatekeeper"><span title="Admission Webhook for K8s" class="linkLabel_WmDU">Admission Webhook for K8s</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/envoy"><span title="Authorization of Service Mesh through Envoy" class="linkLabel_WmDU">Authorization of Service Mesh through Envoy</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/management"><span title="Manajemen" class="categoryLinkLabel_W154">Manajemen</span></a><button aria-label="Collapse sidebar category 'Manajemen'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/admin-portal"><span title="Admin Portal" class="linkLabel_WmDU">Admin Portal</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/service"><span title="Casbin Service" class="linkLabel_WmDU">Casbin Service</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/command-line-tools"><span title="Command-line Tools" class="linkLabel_WmDU">Command-line Tools</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/log-error"><span title="Log & Error Handling" class="linkLabel_WmDU">Log & Error Handling</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/frontend"><span title="Frontend Usage" class="linkLabel_WmDU">Frontend Usage</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/editor"><span title="Editor" class="categoryLinkLabel_W154">Editor</span></a><button aria-label="Collapse sidebar category 'Editor'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/online-editor"><span title="Online Editor" class="linkLabel_WmDU">Online Editor</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/ide-plugins"><span title="IDE Plugins" class="linkLabel_WmDU">IDE Plugins</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/id/docs/category/more"><span title="Lainnya" class="categoryLinkLabel_W154">Lainnya</span></a><button aria-label="Collapse sidebar category 'Lainnya'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/adopters"><span title="Our Adopters" class="linkLabel_WmDU">Our Adopters</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/contributing"><span title="Contributing" class="linkLabel_WmDU">Contributing</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/privacy-policy"><span title="Privacy Policy" class="linkLabel_WmDU">Privacy Policy</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/id/docs/terms-of-service"><span title="Terms of Service" class="linkLabel_WmDU">Terms of Service</span></a></li></ul></li></ul></nav><button type="button" title="Tutup sidebar" aria-label="Tutup sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"></path><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Halaman Utama" class="breadcrumbs__link" href="/id/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/id/docs/category/model"><span>Model</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Priority Model</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Di halaman ini</button></div><div class="theme-doc-markdown markdown"><header><h1>Priority Model</h1></header><p>Casbin mendukung pemuatan kebijakan dengan prioritas.</p> |
| <h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="muat-kebijakan-dengan-prioritas-implisit">Muat Kebijakan dengan Prioritas Implisit<a href="#muat-kebijakan-dengan-prioritas-implisit" class="hash-link" aria-label="Tautan langsung ke Muat Kebijakan dengan Prioritas Implisit" title="Tautan langsung ke Muat Kebijakan dengan Prioritas Implisit" translate="no"></a></h2> |
| <p>Ini cukup sederhana: urutan menentukan prioritas; kebijakan yang muncul lebih awal memiliki prioritas lebih tinggi.</p> |
| <p>model.conf:</p> |
| <div class="language-ini codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-ini codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">policy_effect</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">e</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">priority(p.eft) || deny</span><br></span></code></pre></div></div> |
| <h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="muat-kebijakan-dengan-prioritas-eksplisit">Muat Kebijakan dengan Prioritas Eksplisit<a href="#muat-kebijakan-dengan-prioritas-eksplisit" class="hash-link" aria-label="Tautan langsung ke Muat Kebijakan dengan Prioritas Eksplisit" title="Tautan langsung ke Muat Kebijakan dengan Prioritas Eksplisit" translate="no"></a></h2> |
| <blockquote> |
| <p>Lihat juga: <a href="https://github.com/casbin/casbin/issues/550" target="_blank" rel="noopener noreferrer" class="">casbin#550</a></p> |
| </blockquote> |
| <p>Nilai prioritas yang lebih kecil menunjukkan prioritas yang lebih tinggi. Jika ada karakter non-numerik dalam prioritas, itu akan ditempatkan terakhir alih-alih melempar kesalahan.</p> |
| <div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Konvensi nama token</div><div class="admonitionContent_BuS1"><p>Nama token prioritas yang biasa digunakan dalam definisi kebijakan adalah "priority". Untuk menggunakan yang kustom, Anda perlu memanggil <code>e.SetFieldIndex()</code> dan memuat ulang kebijakan (lihat contoh lengkap di <a href="https://github.com/casbin/casbin/pull/1044" target="_blank" rel="noopener noreferrer" class="">TestCustomizedFieldIndex</a>).</p><p>model.conf:</p><div class="language-ini codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-ini codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">policy_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">p</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">customized_priority, sub, obj, act, eft</span><br></span></code></pre></div></div><p>Contoh kode Golang:</p><div class="language-go codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-go codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">e</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">_</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">:=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">NewEnforcer</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"./example/priority_model_explicit_customized.conf"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./example/priority_policy_explicit_customized.csv"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Due to the customized priority token, the enforcer fails to handle the priority.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ok</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> err </span><span class="token operator" style="color:#393A34">:=</span><span class="token plain"> e</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Enforce</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"bob"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"data2"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"read"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// the result will be `true, nil`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Set PriorityIndex and reload</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">e</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">SetFieldIndex</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"p"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> constant</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">PriorityIndex</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">err </span><span class="token operator" style="color:#393A34">:=</span><span class="token plain"> e</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">LoadPolicy</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> err </span><span class="token operator" style="color:#393A34">!=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">nil</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> log</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Fatalf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"LoadPolicy: %v"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> err</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ok</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> err </span><span class="token operator" style="color:#393A34">:=</span><span class="token plain"> e</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Enforce</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"bob"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"data2"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"read"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// the result will be `false, nil`</span><br></span></code></pre></div></div></div></div> |
| <p>Saat ini, prioritas eksplisit hanya mendukung <code>AddPolicy</code> & <code>AddPolicies</code>. Jika <code>UpdatePolicy</code> telah dipanggil, Anda sebaiknya tidak mengubah atribut prioritas.</p> |
| <p>model.conf:</p> |
| <div class="language-ini codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-ini codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">request_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">r</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">sub, obj, act</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">policy_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">p</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">priority, sub, obj, act, eft</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">role_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">g</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">_, _</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">policy_effect</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">e</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">priority(p.eft) || deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">matchers</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">m</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act</span><br></span></code></pre></div></div> |
| <p>policy.csv</p> |
| <div class="language-csv codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csv codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 10</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1_deny_group</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 10</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1_deny_group</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> write</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 10</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2_allow_group</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 10</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2_allow_group</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> write</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> write</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> bob</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> bob</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2_allow_group</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1_deny_group</span><br></span></code></pre></div></div> |
| <p>permintaan:</p> |
| <div class="language-csv codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csv codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token value">alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> write --> true // because `p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> 1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> write</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow` has the highest priority</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">bob</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read --> false</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">bob</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> write --> true // because bob has the role of `data2_allow_group` which has the right to write data2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> and there's no deny policy with higher priority </span><br></span></code></pre></div></div> |
| <h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="muat-kebijakan-dengan-prioritas-berdasarkan-peran-dan-hierarki-pengguna">Muat Kebijakan dengan Prioritas Berdasarkan Peran dan Hierarki Pengguna<a href="#muat-kebijakan-dengan-prioritas-berdasarkan-peran-dan-hierarki-pengguna" class="hash-link" aria-label="Tautan langsung ke Muat Kebijakan dengan Prioritas Berdasarkan Peran dan Hierarki Pengguna" title="Tautan langsung ke Muat Kebijakan dengan Prioritas Berdasarkan Peran dan Hierarki Pengguna" translate="no"></a></h2> |
| <p>Struktur yang diwariskan dari peran dan pengguna hanya bisa berupa beberapa pohon, bukan graf. Jika seorang pengguna memiliki beberapa peran, Anda harus memastikan bahwa pengguna tersebut memiliki tingkat yang sama dalam pohon yang berbeda. Jika dua peran memiliki tingkat yang sama, kebijakan (yang terkait dengan peran) yang muncul lebih awal memiliki prioritas lebih tinggi. Untuk detail lebih lanjut, lihat juga <a href="https://github.com/casbin/casbin/pull/833" target="_blank" rel="noopener noreferrer" class="">casbin#833</a> dan <a href="https://github.com/casbin/casbin/issues/831" target="_blank" rel="noopener noreferrer" class="">casbin#831</a>.</p> |
| <p>model.conf:</p> |
| <div class="language-ini codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-ini codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">request_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">r</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">sub, obj, act</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">policy_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">p</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">sub, obj, act, eft</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">role_definition</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">g</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">_, _</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">policy_effect</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">e</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">subjectPriority(p.eft) || deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token section punctuation" style="color:#393A34">[</span><span class="token section section-name selector" style="color:#00009f">matchers</span><span class="token section punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">m</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">=</span><span class="token plain"> </span><span class="token value attr-value" style="color:#e3116c">g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act</span><span class="token plain"> </span><br></span></code></pre></div></div> |
| <p>policy.csv</p> |
| <div class="language-csv codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csv codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> root</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> admin</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> editor</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> subscriber</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> deny</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> jane</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">p</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> allow</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> admin</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> root</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> editor</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> admin</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> subscriber</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> admin</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> jane</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> editor</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> subscriber </span><br></span></code></pre></div></div> |
| <p>Permintaan:</p> |
| <div class="language-csv codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-csv codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token value">jane</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read --> true // because jane is at the bottom</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> her priority is higher than that of editor</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> admin</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> and root</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token value">alice</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> data1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token value"> read --> true</span><br></span></code></pre></div></div> |
| <p>Hierarki peran tampak seperti ini:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">role: root</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> └─ role: admin</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> ├─ role editor</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> │ └─ user: jane</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> │</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> └─ role: subscriber</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> └─ user: alice</span><br></span></code></pre></div></div> |
| <p>Prioritas otomatis tampak seperti ini:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">role: root # auto priority: 30</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> └─ role: admin # auto priority: 20</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> ├─ role: editor # auto priority: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> └─ role: subscriber # auto priority: 10</span><br></span></code></pre></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/casbin/casbin-website-v2/edit/master/docs/PriorityModel.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit halaman ini</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Halaman Dokumen"><a class="pagination-nav__link pagination-nav__link--prev" href="/id/docs/orbac"><div class="pagination-nav__sublabel">Sebelumnya</div><div class="pagination-nav__label">OrBAC</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/id/docs/ucon"><div class="pagination-nav__sublabel">Berikutnya</div><div class="pagination-nav__label">Usage Control (UCON)</div></a></nav><br></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#muat-kebijakan-dengan-prioritas-implisit" class="table-of-contents__link toc-highlight">Muat Kebijakan dengan Prioritas Implisit</a></li><li><a href="#muat-kebijakan-dengan-prioritas-eksplisit" class="table-of-contents__link toc-highlight">Muat Kebijakan dengan Prioritas Eksplisit</a></li><li><a href="#muat-kebijakan-dengan-prioritas-berdasarkan-peran-dan-hierarki-pengguna" class="table-of-contents__link toc-highlight">Muat Kebijakan dengan Prioritas Berdasarkan Peran dan Hierarki Pengguna</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Dokumen</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/id/docs/get-started">Memulai</a></li><li class="footer__item"><a class="footer__link-item" href="/id/docs/management-api">API Manajemen</a></li><li class="footer__item"><a class="footer__link-item" href="/id/docs/rbac-api">API RBAC</a></li><li class="footer__item"><a class="footer__link-item" href="/id/docs/middlewares">Middleware</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Komunitas</div><ul class="footer__items clean-list"><li class="footer__item"> |
| <a href="https://discord.gg/S5UjpzGZjN" target="_blank" rel="noopener noreferrer" class="footer__link-item footer-community-link"> |
| <svg class="footer-community-icon" viewBox="0 0 127.14 96.36" xmlns="http://www.w3.org/2000/svg"> |
| <path d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z"/> |
| </svg> |
| <span>Discord</span> |
| </a> |
| </li><li class="footer__item"> |
| <a href="https://stackoverflow.com/search?q=casbin" target="_blank" rel="noopener noreferrer" class="footer__link-item footer-community-link"> |
| <svg class="footer-community-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> |
| <path d="M18.986 21.865v-6.404h2.134V24H1.844v-8.539h2.13v6.404h15.012zM6.111 19.731H16.85v-2.137H6.111v2.137zm.259-4.852l10.48 2.189.451-2.07-10.478-2.187-.453 2.068zm1.359-5.056l9.705 4.53.903-1.95-9.706-4.53-.902 1.936v.014zm2.715-4.785l8.217 6.855 1.359-1.62-8.216-6.853-1.35 1.617-.01.001zM15.751 0l-1.746 1.294 6.405 8.604 1.746-1.294L15.749 0h.002z"/> |
| </svg> |
| <span>Stack Overflow</span> |
| </a> |
| </li><li class="footer__item"> |
| <a href="https://groups.google.com/g/casbin" target="_blank" rel="noopener noreferrer" class="footer__link-item footer-community-link"> |
| <svg class="footer-community-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> |
| <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/> |
| </svg> |
| <span>Google Groups</span> |
| </a> |
| </li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Lainnya</div><ul class="footer__items clean-list"><li class="footer__item"> |
| <a href="https://github.com/casbin/casbin" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin?label=Casbin&style=social"> |
| </a> |
| |
| <a href="https://github.com/casbin/jcasbin" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/jcasbin?label=jCasbin&style=social"> |
| </a> |
| </li><li class="footer__item"> |
| <a href="https://github.com/casbin/node-casbin" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/node-casbin?label=Node-Casbin&style=social"> |
| </a> |
| |
| <a href="https://github.com/php-casbin/php-casbin" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/php-casbin/php-casbin?label=PHP-Casbin&style=social"> |
| </a> |
| </li><li class="footer__item"> |
| <a href="https://github.com/casbin/pycasbin" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/pycasbin?label=PyCasbin&style=social"> |
| </a> |
| |
| <a href="https://github.com/casbin/Casbin.NET" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/Casbin.NET?label=Casbin.NET&style=social"> |
| </a> |
| </li><li class="footer__item"> |
| <a href="https://github.com/casbin/casbin-cpp" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin-cpp?label=Casbin-CPP&style=social"> |
| </a> |
| |
| <a href="https://github.com/casbin/casbin-rs" target="_blank"> |
| <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/casbin/casbin-rs?label=Casbin-RS&style=social"> |
| </a> |
| </li><li class="footer__item"> |
| <a href="https://twitter.com/casbinHQ" target="_blank"> |
| <img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/casbinHQ?style=social"> |
| </a> |
| </li><li class="footer__item"> |
| <script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?2c0ffc6f8d49e98d964d59d7aa4cbf34";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script> |
| </li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a class="footerLogoLink_BH7S" href="/id/"><img src="/id/img/casbin_min.svg" alt="Logo Casbin" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE"><img src="/id/img/casbin_min.svg" alt="Logo Casbin" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU"></a></div><div class="footer__copyright">Copyright © 2025 Casbin Organization</div></div></div></footer></div> |
| </body> |
| </html> |