[{"data":1,"prerenderedAt":759},["ShallowReactive",2],{"navigation_docs":3,"-essentials-authorization":80,"-essentials-authorization-surround":754},[4,25,65],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-home",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Upgrading","\u002Fgetting-started\u002Fupgrading","1.getting-started\u002F3.upgrading","i-lucide-arrow-up-circle",{"title":26,"path":27,"stem":28,"children":29,"page":6},"Essentials","\u002Fessentials","2.essentials",[30,35,40,45,50,55,60],{"title":31,"path":32,"stem":33,"icon":34},"Configuration","\u002Fessentials\u002Fconfiguration","2.essentials\u002F1.configuration","i-lucide-settings",{"title":36,"path":37,"stem":38,"icon":39},"Authorization","\u002Fessentials\u002Fauthorization","2.essentials\u002F2.authorization","i-lucide-shield",{"title":41,"path":42,"stem":43,"icon":44},"Mentions","\u002Fessentials\u002Fmentions","2.essentials\u002F3.mentions","i-lucide-at-sign",{"title":46,"path":47,"stem":48,"icon":49},"Reactions","\u002Fessentials\u002Freactions","2.essentials\u002F4.reactions","i-lucide-smile",{"title":51,"path":52,"stem":53,"icon":54},"Attachments","\u002Fessentials\u002Fattachments","2.essentials\u002F5.attachments","i-lucide-paperclip",{"title":56,"path":57,"stem":58,"icon":59},"Notifications","\u002Fessentials\u002Fnotifications","2.essentials\u002F6.notifications","i-lucide-bell",{"title":61,"path":62,"stem":63,"icon":64},"Database Schema","\u002Fessentials\u002Fdatabase-schema","2.essentials\u002F7.database-schema","i-lucide-database",{"title":66,"path":67,"stem":68,"children":69,"page":6},"Community","\u002Fcommunity","4.community",[70,75],{"title":71,"path":72,"stem":73,"icon":74},"Contributing","\u002Fcommunity\u002Fcontributing","4.community\u002F1.contributing","i-lucide-heart-handshake",{"title":76,"path":77,"stem":78,"icon":79},"License","\u002Fcommunity\u002Flicense","4.community\u002F2.license","i-lucide-scale",{"id":81,"title":36,"body":82,"description":746,"extension":747,"links":748,"meta":749,"navigation":750,"path":37,"seo":751,"stem":38,"__hash__":753},"docs\u002F2.essentials\u002F2.authorization.md",{"type":83,"value":84,"toc":741},"minimark",[85,90,99,193,197,200,679,682,724,728,734,737],[86,87,89],"h2",{"id":88},"default-policy","Default Policy",[91,92,93,94,98],"p",{},"The built-in ",[95,96,97],"code",{},"CommentPolicy"," provides sensible defaults:",[100,101,102,118],"table",{},[103,104,105],"thead",{},[106,107,108,112,115],"tr",{},[109,110,111],"th",{},"Method",[109,113,114],{},"Default",[109,116,117],{},"Description",[119,120,121,137,151,164,176],"tbody",{},[106,122,123,129,134],{},[124,125,126],"td",{},[95,127,128],{},"viewAny()",[124,130,131],{},[95,132,133],{},"true",[124,135,136],{},"Everyone can view comments",[106,138,139,144,148],{},[124,140,141],{},[95,142,143],{},"create()",[124,145,146],{},[95,147,133],{},[124,149,150],{},"Everyone can create comments",[106,152,153,158,161],{},[124,154,155],{},[95,156,157],{},"update()",[124,159,160],{},"Owner only",[124,162,163],{},"Only the comment author can edit",[106,165,166,171,173],{},[124,167,168],{},[95,169,170],{},"delete()",[124,172,160],{},[124,174,175],{},"Only the comment author can delete",[106,177,178,183,186],{},[124,179,180],{},[95,181,182],{},"reply()",[124,184,185],{},"Depth check",[124,187,188,189,192],{},"Can reply if ",[95,190,191],{},"max_depth"," not exceeded",[86,194,196],{"id":195},"custom-policy","Custom Policy",[91,198,199],{},"Create your own policy to customize authorization:",[201,202,207],"pre",{"className":203,"code":204,"language":205,"meta":206,"style":206},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","namespace App\\Policies;\n\nuse Relaticle\\Comments\\Models\\Comment;\nuse Relaticle\\Comments\\Contracts\\Commentator;\n\nclass CustomCommentPolicy\n{\n public function viewAny(Commentator $user): bool\n {\n return true;\n }\n\n public function create(Commentator $user): bool\n {\n return true;\n }\n\n public function update(Commentator $user, Comment $comment): bool\n {\n return $comment->commenter_id === $user->getKey()\n && $comment->commenter_type === $user->getMorphClass();\n }\n\n public function delete(Commentator $user, Comment $comment): bool\n {\n return $comment->commenter_id === $user->getKey()\n || $user->hasRole('admin');\n }\n\n public function reply(Commentator $user, Comment $comment): bool\n {\n return $comment->canReply();\n }\n}\n","php","",[95,208,209,232,239,266,289,294,304,310,340,346,356,362,367,389,394,401,406,411,444,449,479,508,513,518,548,553,578,607,612,617,647,652,668,673],{"__ignoreMap":206},[210,211,214,218,222,226,229],"span",{"class":212,"line":213},"line",1,[210,215,217],{"class":216},"sbssI","namespace",[210,219,221],{"class":220},"sBMFI"," App",[210,223,225],{"class":224},"sMK4o","\\",[210,227,228],{"class":220},"Policies",[210,230,231],{"class":224},";\n",[210,233,235],{"class":212,"line":234},2,[210,236,238],{"emptyLinePlaceholder":237},true,"\n",[210,240,242,245,249,251,254,256,259,261,264],{"class":212,"line":241},3,[210,243,244],{"class":216},"use",[210,246,248],{"class":247},"sTEyZ"," Relaticle",[210,250,225],{"class":224},[210,252,253],{"class":247},"Comments",[210,255,225],{"class":224},[210,257,258],{"class":247},"Models",[210,260,225],{"class":224},[210,262,263],{"class":247},"Comment",[210,265,231],{"class":224},[210,267,269,271,273,275,277,279,282,284,287],{"class":212,"line":268},4,[210,270,244],{"class":216},[210,272,248],{"class":247},[210,274,225],{"class":224},[210,276,253],{"class":247},[210,278,225],{"class":224},[210,280,281],{"class":247},"Contracts",[210,283,225],{"class":224},[210,285,286],{"class":247},"Commentator",[210,288,231],{"class":224},[210,290,292],{"class":212,"line":291},5,[210,293,238],{"emptyLinePlaceholder":237},[210,295,297,301],{"class":212,"line":296},6,[210,298,300],{"class":299},"spNyl","class",[210,302,303],{"class":220}," CustomCommentPolicy\n",[210,305,307],{"class":212,"line":306},7,[210,308,309],{"class":224},"{\n",[210,311,313,316,319,323,326,328,331,334,337],{"class":212,"line":312},8,[210,314,315],{"class":299}," public",[210,317,318],{"class":299}," function",[210,320,322],{"class":321},"s2Zo4"," viewAny",[210,324,325],{"class":224},"(",[210,327,286],{"class":220},[210,329,330],{"class":224}," $",[210,332,333],{"class":247},"user",[210,335,336],{"class":224},"):",[210,338,339],{"class":216}," bool\n",[210,341,343],{"class":212,"line":342},9,[210,344,345],{"class":224}," {\n",[210,347,349,353],{"class":212,"line":348},10,[210,350,352],{"class":351},"s7zQu"," return",[210,354,355],{"class":224}," true;\n",[210,357,359],{"class":212,"line":358},11,[210,360,361],{"class":224}," }\n",[210,363,365],{"class":212,"line":364},12,[210,366,238],{"emptyLinePlaceholder":237},[210,368,370,372,374,377,379,381,383,385,387],{"class":212,"line":369},13,[210,371,315],{"class":299},[210,373,318],{"class":299},[210,375,376],{"class":321}," create",[210,378,325],{"class":224},[210,380,286],{"class":220},[210,382,330],{"class":224},[210,384,333],{"class":247},[210,386,336],{"class":224},[210,388,339],{"class":216},[210,390,392],{"class":212,"line":391},14,[210,393,345],{"class":224},[210,395,397,399],{"class":212,"line":396},15,[210,398,352],{"class":351},[210,400,355],{"class":224},[210,402,404],{"class":212,"line":403},16,[210,405,361],{"class":224},[210,407,409],{"class":212,"line":408},17,[210,410,238],{"emptyLinePlaceholder":237},[210,412,414,416,418,421,423,425,427,429,432,435,437,440,442],{"class":212,"line":413},18,[210,415,315],{"class":299},[210,417,318],{"class":299},[210,419,420],{"class":321}," update",[210,422,325],{"class":224},[210,424,286],{"class":220},[210,426,330],{"class":224},[210,428,333],{"class":247},[210,430,431],{"class":224},",",[210,433,434],{"class":220}," Comment",[210,436,330],{"class":224},[210,438,439],{"class":247},"comment",[210,441,336],{"class":224},[210,443,339],{"class":216},[210,445,447],{"class":212,"line":446},19,[210,448,345],{"class":224},[210,450,452,454,456,458,461,464,467,469,471,473,476],{"class":212,"line":451},20,[210,453,352],{"class":351},[210,455,330],{"class":224},[210,457,439],{"class":247},[210,459,460],{"class":224},"->",[210,462,463],{"class":247},"commenter_id ",[210,465,466],{"class":224},"===",[210,468,330],{"class":224},[210,470,333],{"class":247},[210,472,460],{"class":224},[210,474,475],{"class":321},"getKey",[210,477,478],{"class":224},"()\n",[210,480,482,485,487,489,491,494,496,498,500,502,505],{"class":212,"line":481},21,[210,483,484],{"class":224}," &&",[210,486,330],{"class":224},[210,488,439],{"class":247},[210,490,460],{"class":224},[210,492,493],{"class":247},"commenter_type ",[210,495,466],{"class":224},[210,497,330],{"class":224},[210,499,333],{"class":247},[210,501,460],{"class":224},[210,503,504],{"class":321},"getMorphClass",[210,506,507],{"class":224},"();\n",[210,509,511],{"class":212,"line":510},22,[210,512,361],{"class":224},[210,514,516],{"class":212,"line":515},23,[210,517,238],{"emptyLinePlaceholder":237},[210,519,521,523,525,528,530,532,534,536,538,540,542,544,546],{"class":212,"line":520},24,[210,522,315],{"class":299},[210,524,318],{"class":299},[210,526,527],{"class":321}," delete",[210,529,325],{"class":224},[210,531,286],{"class":220},[210,533,330],{"class":224},[210,535,333],{"class":247},[210,537,431],{"class":224},[210,539,434],{"class":220},[210,541,330],{"class":224},[210,543,439],{"class":247},[210,545,336],{"class":224},[210,547,339],{"class":216},[210,549,551],{"class":212,"line":550},25,[210,552,345],{"class":224},[210,554,556,558,560,562,564,566,568,570,572,574,576],{"class":212,"line":555},26,[210,557,352],{"class":351},[210,559,330],{"class":224},[210,561,439],{"class":247},[210,563,460],{"class":224},[210,565,463],{"class":247},[210,567,466],{"class":224},[210,569,330],{"class":224},[210,571,333],{"class":247},[210,573,460],{"class":224},[210,575,475],{"class":321},[210,577,478],{"class":224},[210,579,581,584,586,588,590,593,595,598,602,604],{"class":212,"line":580},27,[210,582,583],{"class":224}," ||",[210,585,330],{"class":224},[210,587,333],{"class":247},[210,589,460],{"class":224},[210,591,592],{"class":321},"hasRole",[210,594,325],{"class":224},[210,596,597],{"class":224},"'",[210,599,601],{"class":600},"sfazB","admin",[210,603,597],{"class":224},[210,605,606],{"class":224},");\n",[210,608,610],{"class":212,"line":609},28,[210,611,361],{"class":224},[210,613,615],{"class":212,"line":614},29,[210,616,238],{"emptyLinePlaceholder":237},[210,618,620,622,624,627,629,631,633,635,637,639,641,643,645],{"class":212,"line":619},30,[210,621,315],{"class":299},[210,623,318],{"class":299},[210,625,626],{"class":321}," reply",[210,628,325],{"class":224},[210,630,286],{"class":220},[210,632,330],{"class":224},[210,634,333],{"class":247},[210,636,431],{"class":224},[210,638,434],{"class":220},[210,640,330],{"class":224},[210,642,439],{"class":247},[210,644,336],{"class":224},[210,646,339],{"class":216},[210,648,650],{"class":212,"line":649},31,[210,651,345],{"class":224},[210,653,655,657,659,661,663,666],{"class":212,"line":654},32,[210,656,352],{"class":351},[210,658,330],{"class":224},[210,660,439],{"class":247},[210,662,460],{"class":224},[210,664,665],{"class":321},"canReply",[210,667,507],{"class":224},[210,669,671],{"class":212,"line":670},33,[210,672,361],{"class":224},[210,674,676],{"class":212,"line":675},34,[210,677,678],{"class":224},"}\n",[91,680,681],{},"Register it in your config:",[201,683,685],{"className":203,"code":684,"language":205,"meta":206,"style":206},"\u002F\u002F config\u002Fcomments.php\n'policy' => App\\Policies\\CustomCommentPolicy::class,\n",[95,686,687,693],{"__ignoreMap":206},[210,688,689],{"class":212,"line":213},[210,690,692],{"class":691},"sHwdD","\u002F\u002F config\u002Fcomments.php\n",[210,694,695,697,700,702,705,707,709,711,713,716,719,721],{"class":212,"line":234},[210,696,597],{"class":224},[210,698,699],{"class":600},"policy",[210,701,597],{"class":224},[210,703,704],{"class":224}," =>",[210,706,221],{"class":247},[210,708,225],{"class":224},[210,710,228],{"class":247},[210,712,225],{"class":224},[210,714,715],{"class":220},"CustomCommentPolicy",[210,717,718],{"class":224},"::",[210,720,300],{"class":216},[210,722,723],{"class":224},",\n",[86,725,727],{"id":726},"how-authorization-works","How Authorization Works",[91,729,730,731,733],{},"The Livewire components check the policy before rendering action buttons. Edit and delete buttons only appear for authorized users. Reply buttons are hidden when the thread has reached the configured ",[95,732,191],{},".",[91,735,736],{},"The policy is registered automatically by the service provider using Laravel's Gate system.",[738,739,740],"style",{},"html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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}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 .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}",{"title":206,"searchDepth":234,"depth":234,"links":742},[743,744,745],{"id":88,"depth":234,"text":89},{"id":195,"depth":234,"text":196},{"id":726,"depth":234,"text":727},"Control who can create, edit, delete, and reply to comments.","md",null,{},{"icon":39},{"description":752,"title":36},"Configure comment authorization policies.","fCCRQ7aUcMkopaXRI1DKtfY-lhWgiPSgiBpsNT3NomY",[755,757],{"title":31,"path":32,"stem":33,"description":756,"icon":34,"children":-1},"Configure threading, reactions, mentions, attachments, notifications, and more.",{"title":41,"path":42,"stem":43,"description":758,"icon":44,"children":-1},"User @mentions with autocomplete and notification support.",1774609385105]