[{"data":1,"prerenderedAt":685},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fcatalog":124,"\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fcatalog-surround":680},[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":83,"body":126,"description":674,"extension":675,"meta":676,"navigation":677,"path":84,"seo":678,"stem":85,"__hash__":679},"docs\u002F2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F5.catalog.md",{"type":127,"value":128,"toc":670},"minimark",[129,138,349,352,371,374,379,476,479,539,543,666],[130,131,132,133,137],"p",{},"Instead of seeding by hand, describe your roles and permissions in ",[134,135,136],"code",{},"config\u002Fpermissions.ts",":",[139,140,145],"pre",{"className":141,"code":142,"filename":136,"language":143,"meta":144,"style":144},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","defineConfig({\n  \u002F\u002F ...\n  catalog: {\n    permissions: ['view articles', 'create articles', 'edit articles', 'delete articles'],\n    roles: {\n      admin: ['view articles', 'create articles', 'edit articles', 'delete articles'],\n      editor: ['view articles', 'create articles', 'edit articles'],\n    },\n  },\n})\n","ts","",[134,146,147,164,171,183,238,248,292,328,334,340],{"__ignoreMap":144},[148,149,152,156,160],"span",{"class":150,"line":151},"line",1,[148,153,155],{"class":154},"s2Zo4","defineConfig",[148,157,159],{"class":158},"sTEyZ","(",[148,161,163],{"class":162},"sMK4o","{\n",[148,165,167],{"class":150,"line":166},2,[148,168,170],{"class":169},"sHwdD","  \u002F\u002F ...\n",[148,172,174,178,180],{"class":150,"line":173},3,[148,175,177],{"class":176},"swJcz","  catalog",[148,179,137],{"class":162},[148,181,182],{"class":162}," {\n",[148,184,186,189,191,194,197,201,203,206,209,212,214,216,218,221,223,225,227,230,232,235],{"class":150,"line":185},4,[148,187,188],{"class":176},"    permissions",[148,190,137],{"class":162},[148,192,193],{"class":158}," [",[148,195,196],{"class":162},"'",[148,198,200],{"class":199},"sfazB","view articles",[148,202,196],{"class":162},[148,204,205],{"class":162},",",[148,207,208],{"class":162}," '",[148,210,211],{"class":199},"create articles",[148,213,196],{"class":162},[148,215,205],{"class":162},[148,217,208],{"class":162},[148,219,220],{"class":199},"edit articles",[148,222,196],{"class":162},[148,224,205],{"class":162},[148,226,208],{"class":162},[148,228,229],{"class":199},"delete articles",[148,231,196],{"class":162},[148,233,234],{"class":158},"]",[148,236,237],{"class":162},",\n",[148,239,241,244,246],{"class":150,"line":240},5,[148,242,243],{"class":176},"    roles",[148,245,137],{"class":162},[148,247,182],{"class":162},[148,249,251,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290],{"class":150,"line":250},6,[148,252,253],{"class":176},"      admin",[148,255,137],{"class":162},[148,257,193],{"class":158},[148,259,196],{"class":162},[148,261,200],{"class":199},[148,263,196],{"class":162},[148,265,205],{"class":162},[148,267,208],{"class":162},[148,269,211],{"class":199},[148,271,196],{"class":162},[148,273,205],{"class":162},[148,275,208],{"class":162},[148,277,220],{"class":199},[148,279,196],{"class":162},[148,281,205],{"class":162},[148,283,208],{"class":162},[148,285,229],{"class":199},[148,287,196],{"class":162},[148,289,234],{"class":158},[148,291,237],{"class":162},[148,293,295,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326],{"class":150,"line":294},7,[148,296,297],{"class":176},"      editor",[148,299,137],{"class":162},[148,301,193],{"class":158},[148,303,196],{"class":162},[148,305,200],{"class":199},[148,307,196],{"class":162},[148,309,205],{"class":162},[148,311,208],{"class":162},[148,313,211],{"class":199},[148,315,196],{"class":162},[148,317,205],{"class":162},[148,319,208],{"class":162},[148,321,220],{"class":199},[148,323,196],{"class":162},[148,325,234],{"class":158},[148,327,237],{"class":162},[148,329,331],{"class":150,"line":330},8,[148,332,333],{"class":162},"    },\n",[148,335,337],{"class":150,"line":336},9,[148,338,339],{"class":162},"  },\n",[148,341,343,346],{"class":150,"line":342},10,[148,344,345],{"class":162},"}",[148,347,348],{"class":158},")\n",[130,350,351],{},"Then synchronize:",[139,353,357],{"className":354,"code":355,"language":356,"meta":144,"style":144},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","node ace permissions:sync\n","bash",[134,358,359],{"__ignoreMap":144},[148,360,361,365,368],{"class":150,"line":151},[148,362,364],{"class":363},"sBMFI","node",[148,366,367],{"class":199}," ace",[148,369,370],{"class":199}," permissions:sync\n",[130,372,373],{},"Missing roles and permissions are created, role permissions are synced, and entries not in the catalog are pruned. If a pruned item is still assigned to a model, the command stops and asks for confirmation.",[375,376,378],"h2",{"id":377},"commands","Commands",[380,381,382,395],"table",{},[383,384,385],"thead",{},[386,387,388,392],"tr",{},[389,390,391],"th",{},"Command",[389,393,394],{},"Description",[396,397,398,409,419,429,439,456,466],"tbody",{},[386,399,400,406],{},[401,402,403],"td",{},[134,404,405],{},"permissions:sync",[401,407,408],{},"Sync roles and permissions from the catalog.",[386,410,411,416],{},[401,412,413],{},[134,414,415],{},"permissions:sync-permissions",[401,417,418],{},"Sync only permissions.",[386,420,421,426],{},[401,422,423],{},[134,424,425],{},"permissions:sync-roles",[401,427,428],{},"Sync only roles and their permissions.",[386,430,431,436],{},[401,432,433],{},[134,434,435],{},"permissions:create-permission \u003Cname> [guard]",[401,437,438],{},"Create a permission.",[386,440,441,446],{},[401,442,443],{},[134,444,445],{},"permissions:create-role \u003Cname> [guard] [permissions]",[401,447,448,449,452,453,455],{},"Create a role; permissions separated by ",[134,450,451],{},"|"," or ",[134,454,205],{},".",[386,457,458,463],{},[401,459,460],{},[134,461,462],{},"permissions:show [guard]",[401,464,465],{},"Print roles and permissions in a table.",[386,467,468,473],{},[401,469,470],{},[134,471,472],{},"permissions:cache-reset",[401,474,475],{},"Clear the permission cache.",[130,477,478],{},"Sync flags:",[380,480,481,490],{},[383,482,483],{},[386,484,485,488],{},[389,486,487],{},"Flag",[389,489,394],{},[396,491,492,502,519,529],{},[386,493,494,499],{},[401,495,496],{},[134,497,498],{},"--guard",[401,500,501],{},"Guard to sync.",[386,503,504,509],{},[401,505,506],{},[134,507,508],{},"--team-id",[401,510,511,512,515,516,455],{},"Team to sync (when ",[134,513,514],{},"teams"," is enabled). Not available on ",[134,517,518],{},"sync-permissions",[386,520,521,526],{},[401,522,523],{},[134,524,525],{},"--force",[401,527,528],{},"Skip confirmation and delete assigned items.",[386,530,531,536],{},[401,532,533],{},[134,534,535],{},"--no-prune",[401,537,538],{},"Do not delete items missing from the catalog.",[375,540,542],{"id":541},"programmatic-usage","Programmatic usage",[139,544,546],{"className":141,"code":545,"language":143,"meta":144,"style":144},"import app from '@adonisjs\u002Fcore\u002Fservices\u002Fapp'\n\nconst syncer = await app.container.make('permission.syncer')\nconst report = await syncer.inspect()\nawait syncer.syncAll({ force: false })\n",[134,547,548,568,574,613,635],{"__ignoreMap":144},[148,549,550,554,557,560,562,565],{"class":150,"line":151},[148,551,553],{"class":552},"s7zQu","import",[148,555,556],{"class":158}," app ",[148,558,559],{"class":552},"from",[148,561,208],{"class":162},[148,563,564],{"class":199},"@adonisjs\u002Fcore\u002Fservices\u002Fapp",[148,566,567],{"class":162},"'\n",[148,569,570],{"class":150,"line":166},[148,571,573],{"emptyLinePlaceholder":572},true,"\n",[148,575,576,580,583,586,589,592,594,597,599,602,604,606,609,611],{"class":150,"line":173},[148,577,579],{"class":578},"spNyl","const",[148,581,582],{"class":158}," syncer ",[148,584,585],{"class":162},"=",[148,587,588],{"class":552}," await",[148,590,591],{"class":158}," app",[148,593,455],{"class":162},[148,595,596],{"class":158},"container",[148,598,455],{"class":162},[148,600,601],{"class":154},"make",[148,603,159],{"class":158},[148,605,196],{"class":162},[148,607,608],{"class":199},"permission.syncer",[148,610,196],{"class":162},[148,612,348],{"class":158},[148,614,615,617,620,622,624,627,629,632],{"class":150,"line":185},[148,616,579],{"class":578},[148,618,619],{"class":158}," report ",[148,621,585],{"class":162},[148,623,588],{"class":552},[148,625,626],{"class":158}," syncer",[148,628,455],{"class":162},[148,630,631],{"class":154},"inspect",[148,633,634],{"class":158},"()\n",[148,636,637,640,642,644,647,649,652,655,657,661,664],{"class":150,"line":240},[148,638,639],{"class":552},"await",[148,641,626],{"class":158},[148,643,455],{"class":162},[148,645,646],{"class":154},"syncAll",[148,648,159],{"class":158},[148,650,651],{"class":162},"{",[148,653,654],{"class":176}," force",[148,656,137],{"class":162},[148,658,660],{"class":659},"sfNiH"," false",[148,662,663],{"class":162}," }",[148,665,348],{"class":158},[667,668,669],"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":144,"searchDepth":151,"depth":166,"links":671},[672,673],{"id":377,"depth":166,"text":378},{"id":541,"depth":166,"text":542},"Declare roles and permissions in config and sync them with the database.","md",{},{"icon":86},{"title":83,"description":674},"pqtGhdtU9v8NGFb1VWozjNMnaEqsBb42VV_3jvqJyXM",[681,683],{"title":78,"path":79,"stem":80,"description":682,"icon":81,"children":-1},"Apache Shiro style wildcard permissions.",{"title":94,"path":95,"stem":96,"description":684,"icon":97,"children":-1},"Scope roles and permissions per team or tenant.",1793679731157]