<spanid="evennia-web-api-permissions"></span><h1>evennia.web.api.permissions<aclass="headerlink"href="#module-evennia.web.api.permissions"title="Permalink to this headline">¶</a></h1>
<p>Sets up an api-access permission check using the in-game permission hierarchy.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.permissions.</code><codeclass="sig-name descname">EvenniaPermission</code><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">MINIMUM_LIST_PERMISSION</code><emclass="property"> = 'builder'</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.MINIMUM_LIST_PERMISSION"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">MINIMUM_CREATE_PERMISSION</code><emclass="property"> = 'builder'</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.MINIMUM_CREATE_PERMISSION"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">view_locks</code><emclass="property"> = ['examine']</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.view_locks"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">destroy_locks</code><emclass="property"> = ['delete']</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.destroy_locks"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">update_locks</code><emclass="property"> = ['control', 'edit']</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.update_locks"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">has_permission</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">request</span></em>, <emclass="sig-param"><spanclass="n">view</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission.has_permission"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.has_permission"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks for permissions</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>request</strong> (<em>Request</em>) – The incoming request object.</p></li>
<li><p><strong>view</strong> (<em>View</em>) – The django view we are checking permission for.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>bool</em>– If permission is granted or not. If we return False here, a PermissionDenied
error will be raised from the view.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This method is a check that always happens first. If there’s an object involved,
such as with retrieve, update, or delete, then the has_object_permission method
is called after this, assuming this returns <strong>True</strong>.</p>
<emclass="property">static </em><codeclass="sig-name descname">check_locks</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em>, <emclass="sig-param"><spanclass="n">user</span></em>, <emclass="sig-param"><spanclass="n">locks</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission.check_locks"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.check_locks"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks access for user for object with given locks
:param obj: Object instance we’re checking
:param user: User who we’re checking permissions
:type user: Account
:param locks: list of lockstrings
:type locks: list</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>bool</em>– True if they have access, False if they don’t</p>
<codeclass="sig-name descname">has_object_permission</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">request</span></em>, <emclass="sig-param"><spanclass="n">view</span></em>, <emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission.has_object_permission"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.has_object_permission"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks object-level permissions after has_permission</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>request</strong> (<em>Request</em>) – The incoming request object.</p></li>
<li><p><strong>view</strong> (<em>View</em>) – The django view we are checking permission for.</p></li>