[{"data":1,"prerenderedAt":516},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fwildcard-permissions":124,"\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fwildcard-permissions-surround":511},[4,23],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-tabler-home",{"title":13,"path":14,"stem":15,"icon":16},"Manifest","\u002Fgetting-started\u002Fmanifest","1.getting-started\u002F2.manifest","i-tabler-file-diff",{"title":18,"path":19,"stem":20,"icon":21},"Contributing","\u002Fgetting-started\u002Fcontributing","1.getting-started\u002F3.contributing","i-tabler-git-fork",false,{"title":24,"path":25,"stem":26,"children":27,"icon":30},"Packages","\u002Fpackages","2.packages\u002F1.index",[28,31],{"title":29,"path":25,"stem":26,"icon":30},"Overview","i-tabler-packages",{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":22},"AdonisJS Permission","i-tabler-shield-lock","\u002Fpackages\u002Fadonisjs-permission","2.packages\u002Fadonisjs-permission",[37,56,87,113],{"title":5,"icon":38,"path":39,"stem":40,"children":41,"page":22},"i-tabler-rocket","\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started","2.packages\u002Fadonisjs-permission\u002F1.getting-started",[42,46,51],{"title":10,"path":43,"stem":44,"icon":45},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F1.introduction","i-tabler-book",{"title":47,"path":48,"stem":49,"icon":50},"Installation","\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F2.installation","i-tabler-download",{"title":52,"path":53,"stem":54,"icon":55},"Configuration","\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F3.configuration","i-tabler-settings",{"title":57,"icon":58,"path":59,"stem":60,"children":61,"page":22},"Basic Usage","i-tabler-shield-check","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage","2.packages\u002Fadonisjs-permission\u002F2.basic-usage",[62,67,72,77,82],{"title":63,"path":64,"stem":65,"icon":66},"Roles & Permissions","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Froles-and-permissions","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F1.roles-and-permissions","i-tabler-users",{"title":68,"path":69,"stem":70,"icon":71},"Checking Access","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fchecking","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F2.checking","i-tabler-checks",{"title":73,"path":74,"stem":75,"icon":76},"Middleware","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fmiddleware","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F3.middleware","i-tabler-route",{"title":78,"path":79,"stem":80,"icon":81},"Wildcard Permissions","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fwildcard-permissions","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F4.wildcard-permissions","i-tabler-asterisk",{"title":83,"path":84,"stem":85,"icon":86},"Catalog & Sync","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fcatalog","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F5.catalog","i-tabler-refresh",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":22},"Advanced","i-tabler-tool","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced","2.packages\u002Fadonisjs-permission\u002F3.advanced",[93,98,103,108],{"title":94,"path":95,"stem":96,"icon":97},"Teams","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fteams","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F1.teams","i-tabler-building",{"title":99,"path":100,"stem":101,"icon":102},"Super-Admin","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fsuper-admin","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F2.super-admin","i-tabler-crown",{"title":104,"path":105,"stem":106,"icon":107},"Events","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fevents","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F3.events","i-tabler-radio",{"title":109,"path":110,"stem":111,"icon":112},"Cache","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fcache","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F4.cache","i-tabler-database",{"title":114,"icon":115,"path":116,"stem":117,"children":118,"page":22},"Upgrading","i-tabler-circle-arrow-up","\u002Fpackages\u002Fadonisjs-permission\u002Fupgrading","2.packages\u002Fadonisjs-permission\u002F4.upgrading",[119],{"title":120,"path":121,"stem":122,"icon":123},"From adonis-lucid-permission","\u002Fpackages\u002Fadonisjs-permission\u002Fupgrading\u002Ffrom-adonis-lucid-permission","2.packages\u002Fadonisjs-permission\u002F4.upgrading\u002F1.from-adonis-lucid-permission","i-tabler-git-compare",{"id":125,"title":78,"body":126,"description":505,"extension":506,"meta":507,"navigation":508,"path":79,"seo":509,"stem":80,"__hash__":510},"docs\u002F2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F4.wildcard-permissions.md",{"type":127,"value":128,"toc":503},"minimark",[129,133,194,209,425,428,493,499],[130,131,132],"p",{},"Enable wildcards in your config:",[134,135,141],"pre",{"className":136,"code":137,"filename":138,"language":139,"meta":140,"style":140},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","defineConfig({\n  \u002F\u002F ...\n  enableWildcardPermission: true,\n})\n","config\u002Fpermissions.ts","ts","",[142,143,144,161,168,185],"code",{"__ignoreMap":140},[145,146,149,153,157],"span",{"class":147,"line":148},"line",1,[145,150,152],{"class":151},"s2Zo4","defineConfig",[145,154,156],{"class":155},"sTEyZ","(",[145,158,160],{"class":159},"sMK4o","{\n",[145,162,164],{"class":147,"line":163},2,[145,165,167],{"class":166},"sHwdD","  \u002F\u002F ...\n",[145,169,171,175,178,182],{"class":147,"line":170},3,[145,172,174],{"class":173},"swJcz","  enableWildcardPermission",[145,176,177],{"class":159},":",[145,179,181],{"class":180},"sfNiH"," true",[145,183,184],{"class":159},",\n",[145,186,188,191],{"class":147,"line":187},4,[145,189,190],{"class":159},"}",[145,192,193],{"class":155},")\n",[130,195,196,197,200,201,204,205,208],{},"Parts are separated by ",[142,198,199],{},".",", sub-parts by ",[142,202,203],{},","," and ",[142,206,207],{},"*"," matches anything:",[134,210,212],{"className":136,"code":211,"language":139,"meta":140,"style":140},"await user.givePermissionTo('posts.*')\n\nawait user.can('posts.create') \u002F\u002F true\nawait user.can('posts.edit.123') \u002F\u002F true\nawait user.can('users.create') \u002F\u002F false\n\nawait user.givePermissionTo('articles.view,edit')\nawait user.can('articles.edit') \u002F\u002F true\nawait user.can('articles.delete') \u002F\u002F false\n\nawait user.givePermissionTo('*') \u002F\u002F everything\n",[142,213,214,241,247,273,296,321,326,348,372,396,401],{"__ignoreMap":140},[145,215,216,220,223,225,228,230,233,237,239],{"class":147,"line":148},[145,217,219],{"class":218},"s7zQu","await",[145,221,222],{"class":155}," user",[145,224,199],{"class":159},[145,226,227],{"class":151},"givePermissionTo",[145,229,156],{"class":155},[145,231,232],{"class":159},"'",[145,234,236],{"class":235},"sfazB","posts.*",[145,238,232],{"class":159},[145,240,193],{"class":155},[145,242,243],{"class":147,"line":163},[145,244,246],{"emptyLinePlaceholder":245},true,"\n",[145,248,249,251,253,255,258,260,262,265,267,270],{"class":147,"line":170},[145,250,219],{"class":218},[145,252,222],{"class":155},[145,254,199],{"class":159},[145,256,257],{"class":151},"can",[145,259,156],{"class":155},[145,261,232],{"class":159},[145,263,264],{"class":235},"posts.create",[145,266,232],{"class":159},[145,268,269],{"class":155},") ",[145,271,272],{"class":166},"\u002F\u002F true\n",[145,274,275,277,279,281,283,285,287,290,292,294],{"class":147,"line":187},[145,276,219],{"class":218},[145,278,222],{"class":155},[145,280,199],{"class":159},[145,282,257],{"class":151},[145,284,156],{"class":155},[145,286,232],{"class":159},[145,288,289],{"class":235},"posts.edit.123",[145,291,232],{"class":159},[145,293,269],{"class":155},[145,295,272],{"class":166},[145,297,299,301,303,305,307,309,311,314,316,318],{"class":147,"line":298},5,[145,300,219],{"class":218},[145,302,222],{"class":155},[145,304,199],{"class":159},[145,306,257],{"class":151},[145,308,156],{"class":155},[145,310,232],{"class":159},[145,312,313],{"class":235},"users.create",[145,315,232],{"class":159},[145,317,269],{"class":155},[145,319,320],{"class":166},"\u002F\u002F false\n",[145,322,324],{"class":147,"line":323},6,[145,325,246],{"emptyLinePlaceholder":245},[145,327,329,331,333,335,337,339,341,344,346],{"class":147,"line":328},7,[145,330,219],{"class":218},[145,332,222],{"class":155},[145,334,199],{"class":159},[145,336,227],{"class":151},[145,338,156],{"class":155},[145,340,232],{"class":159},[145,342,343],{"class":235},"articles.view,edit",[145,345,232],{"class":159},[145,347,193],{"class":155},[145,349,351,353,355,357,359,361,363,366,368,370],{"class":147,"line":350},8,[145,352,219],{"class":218},[145,354,222],{"class":155},[145,356,199],{"class":159},[145,358,257],{"class":151},[145,360,156],{"class":155},[145,362,232],{"class":159},[145,364,365],{"class":235},"articles.edit",[145,367,232],{"class":159},[145,369,269],{"class":155},[145,371,272],{"class":166},[145,373,375,377,379,381,383,385,387,390,392,394],{"class":147,"line":374},9,[145,376,219],{"class":218},[145,378,222],{"class":155},[145,380,199],{"class":159},[145,382,257],{"class":151},[145,384,156],{"class":155},[145,386,232],{"class":159},[145,388,389],{"class":235},"articles.delete",[145,391,232],{"class":159},[145,393,269],{"class":155},[145,395,320],{"class":166},[145,397,399],{"class":147,"line":398},10,[145,400,246],{"emptyLinePlaceholder":245},[145,402,404,406,408,410,412,414,416,418,420,422],{"class":147,"line":403},11,[145,405,219],{"class":218},[145,407,222],{"class":155},[145,409,199],{"class":159},[145,411,227],{"class":151},[145,413,156],{"class":155},[145,415,232],{"class":159},[145,417,207],{"class":235},[145,419,232],{"class":159},[145,421,269],{"class":155},[145,423,424],{"class":166},"\u002F\u002F everything\n",[130,426,427],{},"You can also use the matcher directly:",[134,429,431],{"className":136,"code":430,"language":139,"meta":140,"style":140},"import { WildcardPermission } from '@eienjs\u002Fadonisjs-permission'\n\nWildcardPermission.implies('posts.*', 'posts.create') \u002F\u002F true\n",[142,432,433,459,463],{"__ignoreMap":140},[145,434,435,438,441,444,447,450,453,456],{"class":147,"line":148},[145,436,437],{"class":218},"import",[145,439,440],{"class":159}," {",[145,442,443],{"class":155}," WildcardPermission",[145,445,446],{"class":159}," }",[145,448,449],{"class":218}," from",[145,451,452],{"class":159}," '",[145,454,455],{"class":235},"@eienjs\u002Fadonisjs-permission",[145,457,458],{"class":159},"'\n",[145,460,461],{"class":147,"line":163},[145,462,246],{"emptyLinePlaceholder":245},[145,464,465,468,470,473,475,477,479,481,483,485,487,489,491],{"class":147,"line":170},[145,466,467],{"class":155},"WildcardPermission",[145,469,199],{"class":159},[145,471,472],{"class":151},"implies",[145,474,156],{"class":155},[145,476,232],{"class":159},[145,478,236],{"class":235},[145,480,232],{"class":159},[145,482,203],{"class":159},[145,484,452],{"class":159},[145,486,264],{"class":235},[145,488,232],{"class":159},[145,490,269],{"class":155},[145,492,272],{"class":166},[494,495,496],"warning",{},[130,497,498],{},"Wildcard checks load the model's permissions and compare them in memory. Keep permission names consistent.",[500,501,502],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":140,"searchDepth":148,"depth":163,"links":504},[],"Apache Shiro style wildcard permissions.","md",{},{"icon":81},{"title":78,"description":505},"Q0vxz_g2A1goh9v4nseOdxQSjg0-xDImGMRu9eNTyL0",[512,514],{"title":73,"path":74,"stem":75,"description":513,"icon":76,"children":-1},"Protect routes with role and permission middlewares.",{"title":83,"path":84,"stem":85,"description":515,"icon":86,"children":-1},"Declare roles and permissions in config and sync them with the database.",1793679731156]