{"result":{"depiction_url":null,"edges":{"references":{"objects":[{"created":"2020-05-30T05:48:14Z","object_id":{"id":1536,"is_a":["text","documentation","developerguide"],"name":"doc_developerguide_access_control","title":{"_type":"trans","tr":{"en":"Keep permission checks at the boundary"}},"uri":"https:\/\/zotonic.com\/id\/1536"},"seq":1000000}],"predicate":{"id":332,"is_a":["meta","predicate"],"name":"references","title":{"_type":"trans","tr":{"en":"References"}},"uri":"https:\/\/zotonic.com\/id\/references"}}},"id":2169,"is_a":["text","documentation","reference"],"links":[{"rel":"self","target":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/2169"},{"rel":"hub","target":"https:\/\/zotonic.com\/.zotonic\/websub"}],"medium":null,"medium_url":null,"name":"doc_controller_acl_options","page_url":{"en":"https:\/\/zotonic.com\/docs\/2169\/acl-options","x-default":"https:\/\/zotonic.com\/docs\/2169\/acl-options"},"preview_url":null,"resource":{"body":"<div>\n            \n  <div class=\"section\">\n\n<p><a class=\"reference internal\" href=\"\/id\/doc_developerguide_access_control#guide-authorization\"><span class=\"std std-ref\">Authorization<\/span><\/a> checks to perform, in addition to the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">acl_action<\/span><\/code> dispatch option, can be given in the <code class=\"docutils literal notranslate\"><span class=\"pre\">acl<\/span><\/code> dispatch\noption, and accepts the following options:<\/p>\n<div class=\"table-wrapper\"><table border=\"1\" class=\"docutils\">\n\n<thead valign=\"bottom\">\n<tr><th class=\"head\">ACL option<\/th>\n<th class=\"head\">Description<\/th>\n<th class=\"head\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody valign=\"top\">\n<tr><td><code class=\"docutils literal notranslate\"><span class=\"pre\">is_auth<\/span><\/code><\/td>\n<td>Disable anonymous access to this resource.<\/td>\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">{acl,<\/span> <span class=\"pre\">is_auth}<\/span><\/code><\/td>\n<\/tr>\n<tr><td><code class=\"docutils literal notranslate\"><span class=\"pre\">logoff<\/span><\/code><\/td>\n<td>Log out user before processing the request.<\/td>\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">{acl,<\/span> <span class=\"pre\">logoff}<\/span><\/code><\/td>\n<\/tr>\n<tr><td><code class=\"docutils literal notranslate\"><span class=\"pre\">{Action,<\/span> <span class=\"pre\">Resource}<\/span><\/code><\/td>\n<td>Check if user is allowed to perform <code class=\"docutils literal notranslate\"><span class=\"pre\">Action<\/span><\/code>\non <code class=\"docutils literal notranslate\"><span class=\"pre\">Resource<\/span><\/code>. The example is equivalent to\nthe options <code class=\"docutils literal notranslate\"><span class=\"pre\">{acl_action,<\/span> <span class=\"pre\">edit},<\/span> <span class=\"pre\">{id,<\/span>\n<span class=\"pre\">my_named_page}<\/span><\/code>.<\/td>\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">{acl,<\/span> <span class=\"pre\">{edit,<\/span> <span class=\"pre\">my_named_page}}<\/span><\/code><\/td>\n<\/tr>\n<tr><td><code class=\"docutils literal notranslate\"><span class=\"pre\">[{Action,<\/span> <span class=\"pre\">Resource}]<\/span><\/code><\/td>\n<td>A list of checks to be performed, as above.<\/td>\n<td><div class=\"first last highlight-erlang notranslate\"><div class=\"highlight\"><pre><span><\/span><span class=\"p\">{<\/span><span class=\"n\">acl<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span>\n    <span class=\"p\">{<\/span><span class=\"n\">view<\/span><span class=\"p\">,<\/span> <span class=\"n\">secret_page<\/span><span class=\"p\">},<\/span>\n    <span class=\"p\">{<\/span><span class=\"n\">update<\/span><span class=\"p\">,<\/span> <span class=\"mi\">345<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">]}<\/span>\n<\/pre><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<tr><td><code class=\"docutils literal notranslate\"><span class=\"pre\">ignore<\/span><\/code><\/td>\n<td>Don’t perform any access control checks.\nBe careful to add your own checks in the\nrendered template and all its included\ntemplates.<\/td>\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">{acl,<\/span> <span class=\"pre\">ignore}<\/span><\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/div>\n\n\n           <\/div>","category_id":{"id":319,"is_a":["meta","category"],"name":"reference","title":"Reference","uri":"https:\/\/zotonic.com\/id\/reference"},"content_group_id":{"id":339,"is_a":["meta","content_group"],"name":"default_content_group","title":{"_type":"trans","tr":{"en":"Default Content Group"}},"uri":"https:\/\/zotonic.com\/id\/default_content_group"},"created":"2020-05-30T05:48:14Z","creator_id":{"id":336,"is_a":["person","robot"],"name":"gitbot","title":"Git","uri":"https:\/\/zotonic.com\/id\/336"},"github_url":"https:\/\/github.com\/zotonic\/zotonic\/tree\/master\/doc\/ref\/controllers\/acl_options.rst","is_authoritative":true,"is_dependent":false,"is_featured":false,"is_protected":false,"is_published":true,"is_unfindable":false,"language":["en"],"modified":"2023-06-24T08:17:50Z","modifier_id":{"id":336,"is_a":["person","robot"],"name":"gitbot","title":"Git","uri":"https:\/\/zotonic.com\/id\/336"},"name":"doc_controller_acl_options","pivot_geocode":null,"pivot_location_lat":null,"pivot_location_lng":null,"privacy":0,"publication_end":"9999-06-01T00:00:00Z","publication_start":"2023-06-24T08:17:50Z","slug":"acl-options","title":"ACL options","title_slug":"acl-options","tz":"UTC","uri":null,"version":3944,"visible_for":0},"uri":"https:\/\/zotonic.com\/id\/2169","uri_template":"https:\/\/zotonic.com\/id\/:id","websub":{"hub":"https:\/\/zotonic.com\/.zotonic\/websub","topic":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/2169"}},"status":"ok"}