[{"data":1,"prerenderedAt":912},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fchecking":124,"\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fchecking-surround":907},[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":68,"body":126,"description":901,"extension":902,"meta":903,"navigation":904,"path":69,"seo":905,"stem":70,"__hash__":906},"docs\u002F2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F2.checking.md",{"type":127,"value":128,"toc":894},"minimark",[129,141,145,339,353,468,472,639,643,710,714,721,804,808,827,890],[130,131,132],"tip",{},[133,134,135,136,140],"p",{},"Prefer checking ",[137,138,139],"strong",{},"permissions"," over roles. Roles are just groups of permissions.",[142,143,144],"h2",{"id":139},"Permissions",[146,147,152],"pre",{"className":148,"code":149,"language":150,"meta":151,"style":151},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","await user.can('edit articles') \u002F\u002F boolean\nawait user.cannot('edit articles') \u002F\u002F boolean\nawait user.hasPermissionTo('edit articles') \u002F\u002F boolean\nawait user.checkPermissionTo('edit articles') \u002F\u002F true or throws\n\nawait user.hasAnyPermission('edit articles', 'delete articles')\nawait user.hasAllPermissions('edit articles', 'delete articles')\n","ts","",[153,154,155,195,219,243,268,275,309],"code",{"__ignoreMap":151},[156,157,160,164,168,172,176,179,182,186,188,191],"span",{"class":158,"line":159},"line",1,[156,161,163],{"class":162},"s7zQu","await",[156,165,167],{"class":166},"sTEyZ"," user",[156,169,171],{"class":170},"sMK4o",".",[156,173,175],{"class":174},"s2Zo4","can",[156,177,178],{"class":166},"(",[156,180,181],{"class":170},"'",[156,183,185],{"class":184},"sfazB","edit articles",[156,187,181],{"class":170},[156,189,190],{"class":166},") ",[156,192,194],{"class":193},"sHwdD","\u002F\u002F boolean\n",[156,196,198,200,202,204,207,209,211,213,215,217],{"class":158,"line":197},2,[156,199,163],{"class":162},[156,201,167],{"class":166},[156,203,171],{"class":170},[156,205,206],{"class":174},"cannot",[156,208,178],{"class":166},[156,210,181],{"class":170},[156,212,185],{"class":184},[156,214,181],{"class":170},[156,216,190],{"class":166},[156,218,194],{"class":193},[156,220,222,224,226,228,231,233,235,237,239,241],{"class":158,"line":221},3,[156,223,163],{"class":162},[156,225,167],{"class":166},[156,227,171],{"class":170},[156,229,230],{"class":174},"hasPermissionTo",[156,232,178],{"class":166},[156,234,181],{"class":170},[156,236,185],{"class":184},[156,238,181],{"class":170},[156,240,190],{"class":166},[156,242,194],{"class":193},[156,244,246,248,250,252,255,257,259,261,263,265],{"class":158,"line":245},4,[156,247,163],{"class":162},[156,249,167],{"class":166},[156,251,171],{"class":170},[156,253,254],{"class":174},"checkPermissionTo",[156,256,178],{"class":166},[156,258,181],{"class":170},[156,260,185],{"class":184},[156,262,181],{"class":170},[156,264,190],{"class":166},[156,266,267],{"class":193},"\u002F\u002F true or throws\n",[156,269,271],{"class":158,"line":270},5,[156,272,274],{"emptyLinePlaceholder":273},true,"\n",[156,276,278,280,282,284,287,289,291,293,295,298,301,304,306],{"class":158,"line":277},6,[156,279,163],{"class":162},[156,281,167],{"class":166},[156,283,171],{"class":170},[156,285,286],{"class":174},"hasAnyPermission",[156,288,178],{"class":166},[156,290,181],{"class":170},[156,292,185],{"class":184},[156,294,181],{"class":170},[156,296,297],{"class":170},",",[156,299,300],{"class":170}," '",[156,302,303],{"class":184},"delete articles",[156,305,181],{"class":170},[156,307,308],{"class":166},")\n",[156,310,312,314,316,318,321,323,325,327,329,331,333,335,337],{"class":158,"line":311},7,[156,313,163],{"class":162},[156,315,167],{"class":166},[156,317,171],{"class":170},[156,319,320],{"class":174},"hasAllPermissions",[156,322,178],{"class":166},[156,324,181],{"class":170},[156,326,185],{"class":184},[156,328,181],{"class":170},[156,330,297],{"class":170},[156,332,300],{"class":170},[156,334,303],{"class":184},[156,336,181],{"class":170},[156,338,308],{"class":166},[133,340,341,344,345,348,349,352],{},[153,342,343],{},"can()"," and ",[153,346,347],{},"hasPermissionTo()"," check ",[137,350,351],{},"direct permissions and permissions inherited from roles",". To be specific:",[146,354,356],{"className":148,"code":355,"language":150,"meta":151,"style":151},"await user.hasDirectPermission('edit articles')\nawait user.hasPermissionViaRole('edit articles')\n\nawait user.getDirectPermissions() \u002F\u002F permission models\nawait user.getPermissionsViaRoles() \u002F\u002F permission models\nawait user.getAllPermissions() \u002F\u002F direct + via roles\nawait user.getPermissionNames() \u002F\u002F string[] (direct)\n",[153,357,358,379,400,404,421,436,452],{"__ignoreMap":151},[156,359,360,362,364,366,369,371,373,375,377],{"class":158,"line":159},[156,361,163],{"class":162},[156,363,167],{"class":166},[156,365,171],{"class":170},[156,367,368],{"class":174},"hasDirectPermission",[156,370,178],{"class":166},[156,372,181],{"class":170},[156,374,185],{"class":184},[156,376,181],{"class":170},[156,378,308],{"class":166},[156,380,381,383,385,387,390,392,394,396,398],{"class":158,"line":197},[156,382,163],{"class":162},[156,384,167],{"class":166},[156,386,171],{"class":170},[156,388,389],{"class":174},"hasPermissionViaRole",[156,391,178],{"class":166},[156,393,181],{"class":170},[156,395,185],{"class":184},[156,397,181],{"class":170},[156,399,308],{"class":166},[156,401,402],{"class":158,"line":221},[156,403,274],{"emptyLinePlaceholder":273},[156,405,406,408,410,412,415,418],{"class":158,"line":245},[156,407,163],{"class":162},[156,409,167],{"class":166},[156,411,171],{"class":170},[156,413,414],{"class":174},"getDirectPermissions",[156,416,417],{"class":166},"() ",[156,419,420],{"class":193},"\u002F\u002F permission models\n",[156,422,423,425,427,429,432,434],{"class":158,"line":270},[156,424,163],{"class":162},[156,426,167],{"class":166},[156,428,171],{"class":170},[156,430,431],{"class":174},"getPermissionsViaRoles",[156,433,417],{"class":166},[156,435,420],{"class":193},[156,437,438,440,442,444,447,449],{"class":158,"line":277},[156,439,163],{"class":162},[156,441,167],{"class":166},[156,443,171],{"class":170},[156,445,446],{"class":174},"getAllPermissions",[156,448,417],{"class":166},[156,450,451],{"class":193},"\u002F\u002F direct + via roles\n",[156,453,454,456,458,460,463,465],{"class":158,"line":311},[156,455,163],{"class":162},[156,457,167],{"class":166},[156,459,171],{"class":170},[156,461,462],{"class":174},"getPermissionNames",[156,464,417],{"class":166},[156,466,467],{"class":193},"\u002F\u002F string[] (direct)\n",[142,469,471],{"id":470},"roles","Roles",[146,473,475],{"className":148,"code":474,"language":150,"meta":151,"style":151},"await user.hasRole('writer')\nawait user.hasRole(['writer', 'admin']) \u002F\u002F any of them\nawait user.hasAnyRole('writer', 'admin')\nawait user.hasAllRoles('writer', 'admin')\nawait user.hasExactRoles('writer', 'admin') \u002F\u002F exactly these roles\nawait user.getRoleNames() \u002F\u002F string[]\n",[153,476,477,499,533,562,591,623],{"__ignoreMap":151},[156,478,479,481,483,485,488,490,492,495,497],{"class":158,"line":159},[156,480,163],{"class":162},[156,482,167],{"class":166},[156,484,171],{"class":170},[156,486,487],{"class":174},"hasRole",[156,489,178],{"class":166},[156,491,181],{"class":170},[156,493,494],{"class":184},"writer",[156,496,181],{"class":170},[156,498,308],{"class":166},[156,500,501,503,505,507,509,512,514,516,518,520,522,525,527,530],{"class":158,"line":197},[156,502,163],{"class":162},[156,504,167],{"class":166},[156,506,171],{"class":170},[156,508,487],{"class":174},[156,510,511],{"class":166},"([",[156,513,181],{"class":170},[156,515,494],{"class":184},[156,517,181],{"class":170},[156,519,297],{"class":170},[156,521,300],{"class":170},[156,523,524],{"class":184},"admin",[156,526,181],{"class":170},[156,528,529],{"class":166},"]) ",[156,531,532],{"class":193},"\u002F\u002F any of them\n",[156,534,535,537,539,541,544,546,548,550,552,554,556,558,560],{"class":158,"line":221},[156,536,163],{"class":162},[156,538,167],{"class":166},[156,540,171],{"class":170},[156,542,543],{"class":174},"hasAnyRole",[156,545,178],{"class":166},[156,547,181],{"class":170},[156,549,494],{"class":184},[156,551,181],{"class":170},[156,553,297],{"class":170},[156,555,300],{"class":170},[156,557,524],{"class":184},[156,559,181],{"class":170},[156,561,308],{"class":166},[156,563,564,566,568,570,573,575,577,579,581,583,585,587,589],{"class":158,"line":245},[156,565,163],{"class":162},[156,567,167],{"class":166},[156,569,171],{"class":170},[156,571,572],{"class":174},"hasAllRoles",[156,574,178],{"class":166},[156,576,181],{"class":170},[156,578,494],{"class":184},[156,580,181],{"class":170},[156,582,297],{"class":170},[156,584,300],{"class":170},[156,586,524],{"class":184},[156,588,181],{"class":170},[156,590,308],{"class":166},[156,592,593,595,597,599,602,604,606,608,610,612,614,616,618,620],{"class":158,"line":270},[156,594,163],{"class":162},[156,596,167],{"class":166},[156,598,171],{"class":170},[156,600,601],{"class":174},"hasExactRoles",[156,603,178],{"class":166},[156,605,181],{"class":170},[156,607,494],{"class":184},[156,609,181],{"class":170},[156,611,297],{"class":170},[156,613,300],{"class":170},[156,615,524],{"class":184},[156,617,181],{"class":170},[156,619,190],{"class":166},[156,621,622],{"class":193},"\u002F\u002F exactly these roles\n",[156,624,625,627,629,631,634,636],{"class":158,"line":277},[156,626,163],{"class":162},[156,628,167],{"class":166},[156,630,171],{"class":170},[156,632,633],{"class":174},"getRoleNames",[156,635,417],{"class":166},[156,637,638],{"class":193},"\u002F\u002F string[]\n",[142,640,642],{"id":641},"role-permissions","Role permissions",[146,644,646],{"className":148,"code":645,"language":150,"meta":151,"style":151},"await role.hasPermissionTo('edit articles')\nawait role.hasAnyPermission('edit articles', 'delete articles')\nawait role.getPermissionNames()\n",[153,647,648,669,697],{"__ignoreMap":151},[156,649,650,652,655,657,659,661,663,665,667],{"class":158,"line":159},[156,651,163],{"class":162},[156,653,654],{"class":166}," role",[156,656,171],{"class":170},[156,658,230],{"class":174},[156,660,178],{"class":166},[156,662,181],{"class":170},[156,664,185],{"class":184},[156,666,181],{"class":170},[156,668,308],{"class":166},[156,670,671,673,675,677,679,681,683,685,687,689,691,693,695],{"class":158,"line":197},[156,672,163],{"class":162},[156,674,654],{"class":166},[156,676,171],{"class":170},[156,678,286],{"class":174},[156,680,178],{"class":166},[156,682,181],{"class":170},[156,684,185],{"class":184},[156,686,181],{"class":170},[156,688,297],{"class":170},[156,690,300],{"class":170},[156,692,303],{"class":184},[156,694,181],{"class":170},[156,696,308],{"class":166},[156,698,699,701,703,705,707],{"class":158,"line":221},[156,700,163],{"class":162},[156,702,654],{"class":166},[156,704,171],{"class":170},[156,706,462],{"class":174},[156,708,709],{"class":166},"()\n",[142,711,713],{"id":712},"edge","Edge",[133,715,716,717,720],{},"Edge tags are registered automatically when Edge is available. They use ",[153,718,719],{},"auth.user"," from the template state:",[146,722,725],{"className":723,"code":724,"language":712,"meta":151,"style":151},"language-edge shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@can('edit articles')\n  \u003Ca href=\"\u002Farticles\u002F1\u002Fedit\">Edit\u003C\u002Fa>\n@end\n\n@cannot('edit articles')\n  \u003Cp>Read only\u003C\u002Fp>\n@end\n\n@role('admin')\n  \u003Ca href=\"\u002Fadmin\">Admin panel\u003C\u002Fa>\n@end\n\n@hasrole('admin')\n  ...\n@end\n",[153,726,727,732,737,742,746,751,756,760,765,771,777,782,787,793,799],{"__ignoreMap":151},[156,728,729],{"class":158,"line":159},[156,730,731],{},"@can('edit articles')\n",[156,733,734],{"class":158,"line":197},[156,735,736],{},"  \u003Ca href=\"\u002Farticles\u002F1\u002Fedit\">Edit\u003C\u002Fa>\n",[156,738,739],{"class":158,"line":221},[156,740,741],{},"@end\n",[156,743,744],{"class":158,"line":245},[156,745,274],{"emptyLinePlaceholder":273},[156,747,748],{"class":158,"line":270},[156,749,750],{},"@cannot('edit articles')\n",[156,752,753],{"class":158,"line":277},[156,754,755],{},"  \u003Cp>Read only\u003C\u002Fp>\n",[156,757,758],{"class":158,"line":311},[156,759,741],{},[156,761,763],{"class":158,"line":762},8,[156,764,274],{"emptyLinePlaceholder":273},[156,766,768],{"class":158,"line":767},9,[156,769,770],{},"@role('admin')\n",[156,772,774],{"class":158,"line":773},10,[156,775,776],{},"  \u003Ca href=\"\u002Fadmin\">Admin panel\u003C\u002Fa>\n",[156,778,780],{"class":158,"line":779},11,[156,781,741],{},[156,783,785],{"class":158,"line":784},12,[156,786,274],{"emptyLinePlaceholder":273},[156,788,790],{"class":158,"line":789},13,[156,791,792],{},"@hasrole('admin')\n",[156,794,796],{"class":158,"line":795},14,[156,797,798],{},"  ...\n",[156,800,802],{"class":158,"line":801},15,[156,803,741],{},[142,805,807],{"id":806},"error","Error",[133,809,810,811,814,815,818,819,822,823,826],{},"Middlewares and ",[153,812,813],{},"checkPermissionTo()"," throw ",[153,816,817],{},"E_PERMISSION_UNAUTHORIZED_ACCESS"," with status ",[153,820,821],{},"403",". When requested as JSON it renders ",[153,824,825],{},"{ errors: [{ code, status, message }] }","; otherwise it sends the message as plain text. You can handle it in your exception handler like any other error:",[146,828,830],{"className":148,"code":829,"language":150,"meta":151,"style":151},"import { E_PERMISSION_UNAUTHORIZED_ACCESS } from '@eienjs\u002Fadonisjs-permission'\n\nif (error instanceof E_PERMISSION_UNAUTHORIZED_ACCESS) {\n  \u002F\u002F custom handling\n}\n",[153,831,832,857,861,880,885],{"__ignoreMap":151},[156,833,834,837,840,843,846,849,851,854],{"class":158,"line":159},[156,835,836],{"class":162},"import",[156,838,839],{"class":170}," {",[156,841,842],{"class":166}," E_PERMISSION_UNAUTHORIZED_ACCESS",[156,844,845],{"class":170}," }",[156,847,848],{"class":162}," from",[156,850,300],{"class":170},[156,852,853],{"class":184},"@eienjs\u002Fadonisjs-permission",[156,855,856],{"class":170},"'\n",[156,858,859],{"class":158,"line":197},[156,860,274],{"emptyLinePlaceholder":273},[156,862,863,866,869,872,875,877],{"class":158,"line":221},[156,864,865],{"class":162},"if",[156,867,868],{"class":166}," (error ",[156,870,871],{"class":170},"instanceof",[156,873,842],{"class":874},"sBMFI",[156,876,190],{"class":166},[156,878,879],{"class":170},"{\n",[156,881,882],{"class":158,"line":245},[156,883,884],{"class":193},"  \u002F\u002F custom handling\n",[156,886,887],{"class":158,"line":270},[156,888,889],{"class":170},"}\n",[891,892,893],"style",{},"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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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}",{"title":151,"searchDepth":159,"depth":197,"links":895},[896,897,898,899,900],{"id":139,"depth":197,"text":144},{"id":470,"depth":197,"text":471},{"id":641,"depth":197,"text":642},{"id":712,"depth":197,"text":713},{"id":806,"depth":197,"text":807},"Check roles and permissions on your models.","md",{},{"icon":71},{"title":68,"description":901},"QcEY-YBh_LqDsQO17jM4RT3Ns0LC-0dP5tDTe2KbPZs",[908,910],{"title":63,"path":64,"stem":65,"description":909,"icon":66,"children":-1},"Create roles and permissions and assign them to models.",{"title":73,"path":74,"stem":75,"description":911,"icon":76,"children":-1},"Protect routes with role and permission middlewares.",1793679731155]