{"title":"Córas fíordheimhnithe Django a úsáid","version":"6.0","locale":"ga","docname":"topics/auth/default","url":"/ga/6.0/topics/auth/default/","canonical":"https://djangodocs.dev/ga/6.0/topics/auth/default/","summary":"Míníonn an doiciméad seo úsáid chóras fíordheimhnithe Django ina chumraíocht réamhshocraithe. Tá an chumraíocht seo tagtha chun cinn chun freastal ar na riachtanais…","html":"<h1>Córas fíordheimhnithe Django a úsáid<a class=\"heading-anchor\" href=\"#using-the-django-authentication-system\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Míníonn an doiciméad seo úsáid chóras fíordheimhnithe Django ina chumraíocht réamhshocraithe. Tá an chumraíocht seo tagtha chun cinn chun freastal ar na riachtanais tionscadail is coitianta, ag láimhseáil raon réasúnta leathan tascanna, agus tá pasfhocail agus ceadanna curtha i bhfeidhm Maidir le tionscadail ina bhfuil riachtanais fíordheimhnithe difriúil ó na réamhshocraithe, tacaíonn Django le fairsing:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>síneadh agus saincheapach' fíordheimhnithe &lt;/topics/auth/customizing&gt;.</p>\n<p>Soláthraíonn fíordheimhniú Django fíordheimhniú agus údarú le chéile agus go ginearálta tugtar an córas fíordheimhnithe air, toisc go bhfuil na gnéithe seo cúpláilte</p>\n<section id=\"user-objects\">\n<span id=\"id1\"></span><h2><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Úsáideoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>rudaí<a class=\"heading-anchor\" href=\"#user-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> objects are the core of the\nauthentication system. They typically represent the people interacting with\nyour site and are used to enable things like restricting access, registering\nuser profiles, associating content with creators etc. Only one class of user\nexists in Django's authentication framework, i.e., <a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.is_superuser\" title=\"django.contrib.auth.models.User.is_superuser\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">'superusers'</span></code></a> or admin <a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">'staff'</span></code></a> users are just user objects with\nspecial attributes set, not different classes of user objects.</p>\n<p>Is iad príomhthréithe an úsáideora réamhshocraithe:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.username\" title=\"django.contrib.auth.models.User.username\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">username</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.password\" title=\"django.contrib.auth.models.User.password\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">password</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.email\" title=\"django.contrib.auth.models.User.email\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">email</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.first_name\" title=\"django.contrib.auth.models.User.first_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">first_name</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.last_name\" title=\"django.contrib.auth.models.User.last_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">last_name</span></code></a></p></li>\n</ul>\n<p>Féach an:class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>doiciméadú iomlán API &lt;django.contrib.auth.models.User&gt;`le haghaidh tagartha iomlán, tá an doiciméadú a leanas níos dírithe ar thasc.</p>\n<section id=\"creating-users\">\n<span id=\"topics-auth-creating-users\"></span><h3>úsáideoirí a chruthú<a class=\"heading-anchor\" href=\"#creating-users\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is é an bealach is díreach chun úsáideoirí a chruthú ná an fheidhm chúntóra san áireamh: meth: ~django.contrib.auth.models.userManager.create_user a úsáid:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">User</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">User</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create_user</span><span class=\"p\">(</span><span class=\"s2\">&quot;john&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;lennon@thebeatles.com&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;johnpassword&quot;</span><span class=\"p\">)</span>\n\n<span class=\"go\"># At this point, user is a User object that has already been saved</span>\n<span class=\"go\"># to the database. You can continue to change its attributes</span>\n<span class=\"go\"># if you want to change other fields.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Lennon&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>&lt;auth-admin&gt;Má tá riarachán Django suiteáilte agat, is féidir leat freis:ref: úsáideoirí a chruthú go idirghníomhach.</p>\n</section>\n<section id=\"creating-superusers\">\n<span id=\"topics-auth-creating-superusers\"></span><h3>Superusers a chruthú<a class=\"heading-anchor\" href=\"#creating-superusers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cruthaigh sárúsáideoirí ag baint úsáide as an ordú:djadmin: createsuperuser:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>createsuperuser<span class=\"w\"> </span>--username<span class=\"o\">=</span>joe<span class=\"w\"> </span>--email<span class=\"o\">=</span>joe@example.com\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py manage.py createsuperuser --username=joe --email=joe@example.com\n</code></pre></div></div></div>\n<p>Cuirfear pasfhocal ort. Tar éis duit ceann a iontráil, cruthófar an t-úsáideoir láithreach. Má fhágann tú na roghanna: rogha: --ainm úsáideora &lt;createsuperuser --username&gt;`nó: rogha: `--ríomhphost, spreagfaidh sé tú do na &lt;createsuperuser --email&gt;luachanna sin.</p>\n</section>\n<section id=\"changing-passwords\">\n<h3>Athrú pasfhocail<a class=\"heading-anchor\" href=\"#changing-passwords\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ní stóráilíonn Django pasfhocail amh (téacs soiléir) ar an tsamhail úsáideora, ach ach hash amháin (féach: doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>doiciméadú ar an gcaoi a mbainistítear pasfhocail <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>le haghaidh sonraí iomlána). &lt;/topics/auth/passwords&gt; Mar gheall air seo, ná déan iarracht tréith pasfhocal an úsáideora a ionramháil go díreach. Sin é an fáth go n-úsáidtear feidhm chúntóra agus úsáideoir á chruthú.</p>\n<p>Chun pasfhocal úsáideora a athrú, tá roinnt roghanna agat:</p>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/django-admin/#django-admin-changepassword\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">changepassword</span> <span class=\"pre\">*username*</span></code></a> offers a method\nof changing a user's password from the command line. It prompts you to\nchange the password of a given user which you must enter twice. If\nthey both match, the new password will be changed immediately. If you\ndo not supply a user, the command will attempt to change the password\nwhose username matches the current system user.</p>\n<p>You can also change a password programmatically, using\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.set_password\" title=\"django.contrib.auth.models.User.set_password\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">set_password()</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">User</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">u</span> <span class=\"o\">=</span> <span class=\"n\">User</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">username</span><span class=\"o\">=</span><span class=\"s2\">&quot;john&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">u</span><span class=\"o\">.</span><span class=\"n\">set_password</span><span class=\"p\">(</span><span class=\"s2\">&quot;new password&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">u</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>&lt;auth-admin&gt;Má tá riarachán Django suiteáilte agat, is féidir leat pasfhocail an úsáideora a athrú ar leathanaigh riaracháin an chórais fíordheimhniúcháin: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>.</p>\n<p>Soláthraíonn Django freis:ref: views &lt;built-in-auth-views&gt;`agus:ref: `foirmeacha is féidir a úsáid chun ligean d'úsáideoirí a &lt;built-in-auth-forms&gt;gcuid pasfhocail féin a athrú.</p>\n<p>Athrú pasfhocal úsáideora logálfar amach a seisiúin go léir. Féach: Ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>seision-invalidation-on-pasfho-athraithe' le haghaidh sonraí.</p>\n</section>\n<section id=\"authenticating-users\">\n<h3>Úsáideoirí fíordheimhnithe<a class=\"heading-anchor\" href=\"#authenticating-users\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.authenticate\">\n<span class=\"sig-name descname\"><span class=\"pre\">authenticate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">credentials</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.authenticate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.aauthenticate\">\n<span class=\"sig-name descname\"><span class=\"pre\">aauthenticate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">credentials</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.aauthenticate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Asynchronous version</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">aauthenticate()</span></code></p>\n<p>Use <a class=\"reference internal\" href=\"#django.contrib.auth.authenticate\" title=\"django.contrib.auth.authenticate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">authenticate()</span></code></a> to verify a set of\ncredentials. It takes credentials as keyword arguments, <code class=\"docutils literal notranslate\"><span class=\"pre\">username</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">password</span></code> for the default case, checks them against each\n<a class=\"reference internal\" href=\"/ga/6.0/topics/auth/customizing/#authentication-backends\"><span class=\"std std-ref\">authentication backend</span></a>, and returns a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> object if the credentials are\nvalid for a backend. If the credentials aren't valid for any backend or if\na backend raises <a class=\"reference internal\" href=\"/ga/6.0/ref/exceptions/#django.core.exceptions.PermissionDenied\" title=\"django.core.exceptions.PermissionDenied\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PermissionDenied</span></code></a>, it\nreturns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>. For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">authenticate</span>\n\n<span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">authenticate</span><span class=\"p\">(</span><span class=\"n\">username</span><span class=\"o\">=</span><span class=\"s2\">&quot;john&quot;</span><span class=\"p\">,</span> <span class=\"n\">password</span><span class=\"o\">=</span><span class=\"s2\">&quot;secret&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">if</span> <span class=\"n\">user</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n    <span class=\"c1\"># A backend authenticated the credentials</span>\n    <span class=\"o\">...</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"c1\"># No backend authenticated the credentials</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Is é <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> roghnaí:class: ~django.http.httpRequest a chuirtear ar an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>fíordheimhniú () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>de na cúltaca fíordheimhnithe.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Is bealach ar leibhéal íseal é seo chun tacar dintiúir a fhíordheimhniú; mar shampla, úsáideann an: class: ~django.contrib.auth.middleware.remoteUserMiddleware é. Mura bhfuil do chóras fíordheimhnithe féin á scríobh agat, is dócha nach n-úsáidfidh tú é seo. Ina ionad sin má tá tú ag lorg bealach chun úsáideoir a logáil isteach, bain úsáid as an:class: ~django.contrib.auth.views.loginView.</p>\n</aside>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"permissions-and-authorization\">\n<span id=\"topic-authorization\"></span><h2>Ceadanna agus Údarú<a class=\"heading-anchor\" href=\"#permissions-and-authorization\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tagann Django le córas ceadanna ionsuite. Soláthraíonn sé bealach chun ceadanna a shannadh d'úsáideoirí agus do ghrúpaí úsáideoirí ar leith.</p>\n<p>Úsáideann suíomh riaracháin Django é, ach tá fáilte romhat é a úsáid i do chód féin.</p>\n<p>Úsáideann suíomh riaracháin Django ceadanna mar seo a leanas:</p>\n<ul class=\"simple\">\n<li><p>Tá rochtain ar rudaí féachana teoranta d'úsáideoirí a bhfuil an cead “amharc” nó “athraigh” acu don chineál réada sin.</p></li>\n<li><p>Tá rochtain chun an fhoirm “cuir leis” a fheiceáil agus réad a chur leis teoranta d'úsáideoirí a bhfuil cead “cuir leis” don chineál réada sin.</p></li>\n<li><p>Tá rochtain chun an liosta athraithe a fheiceáil, féachaint ar an bhfoirm “athraigh” agus réad a athrú teoranta d'úsáideoirí a bhfuil cead “athraithe” acu don chineál réada sin.</p></li>\n<li><p>Tá rochtain chun réad a scriosadh teoranta d'úsáideoirí a bhfuil cead “scrios” acu don chineál réada sin.</p></li>\n</ul>\n<p>Is féidir ceadanna a shocrú ní amháin in aghaidh an chineál réada, ach freisin de réir shampla réad ar leith. Trí úsáid a:meth: ~django.contrib.admin.modeladmin.has_view_permission, :meth: ~django.contrib.admin.modeladmin.has_add_permission, :meth: ~django.contrib.admin.modeladmin.has_change_permission agus:meth: ~django.contrib.Modhanna admin.modeladmin.has_delete_permission a sholáthraíonn an rang:class: ~django.contrib.admin.modelAdmin, is féidir ceadanna a shaincheapadh do chásanna réad éagsúla den chineál céanna.</p>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> objects have two many-to-many\nfields: <code class=\"docutils literal notranslate\"><span class=\"pre\">groups</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">user_permissions</span></code>.\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> objects can access their related\nobjects in the same way as any other <a class=\"reference internal\" href=\"/ga/6.0/topics/db/models/\"><span class=\"doc\">Django model</span></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">groups</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">([</span><span class=\"n\">group_list</span><span class=\"p\">])</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">groups</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">group</span><span class=\"p\">,</span> <span class=\"n\">group</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">groups</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">group</span><span class=\"p\">,</span> <span class=\"n\">group</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">groups</span><span class=\"o\">.</span><span class=\"n\">clear</span><span class=\"p\">()</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">user_permissions</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">([</span><span class=\"n\">permission_list</span><span class=\"p\">])</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">user_permissions</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">permission</span><span class=\"p\">,</span> <span class=\"n\">permission</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">user_permissions</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">permission</span><span class=\"p\">,</span> <span class=\"n\">permission</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"n\">myuser</span><span class=\"o\">.</span><span class=\"n\">user_permissions</span><span class=\"o\">.</span><span class=\"n\">clear</span><span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"default-permissions\">\n<h3>Ceadanna réamhshocrai<a class=\"heading-anchor\" href=\"#default-permissions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Nuair a liostaítear <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code> i do shuíomh: INSTALLED_APPS, cinnteoidh sé go gcruthaítear ceithre chead réamhshocraithe -- cuir, athrú, scrios agus amharc - do gach samhail Django atá sainmhínithe i gceann de d'fheidhmchláir suiteáilte.</p>\n<p>Cruthófar na ceadanna seo nuair a rith t:djadmin: manage.py migration &lt;migrate&gt;; an chéad uair a reáchtáil tú <code class=\"docutils literal notranslate\"><span class=\"pre\">`migrate</span></code> tar éis <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code> a chur chuig:setting: INSTALLED_APPS, cruthófar na ceadanna réamhshocraithe do gach samhail atá suiteáilte roimhe seo, chomh maith le haghaidh aon mhúnlaí nua atá suiteáilte ag an am sin. Ina dhiaidh sin, cruthóidh sé ceadanna réamhshocraithe do mhúnlaí nua gach uair a rith tú: djadmin: manage.py migration &lt;migrate&gt;`(tá an fheidhm a chruthaíonn ceadanna ceangailte leis an gcomhartha: data: `~django.db.models.signals.post_migrate).</p>\n<p>Ag glacadh leis go bhfuil feidhmchlár agat le an:attr: ~django.db.models.options.app_label <code class=\"docutils literal notranslate\"><span class=\"pre\">foo</span></code> agus samhail darb ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">Bar</span></code>, chun tástáil a dhéanamh ar cheadanna bunúsacha ba chóir duit a úsáid:</p>\n<ul class=\"simple\">\n<li><p>cuir leis: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>user.has_perm ('foo.add_bar') ``</p></li>\n<li><p>athrú: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>user.has_perm ('foo.change_bar') ``</p></li>\n<li><p>scrios: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>user.has_perm ('foo.delete_bar') ``</p></li>\n<li><p>amharc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>user.has_perm ('foo.view_bar') ``</p></li>\n</ul>\n<p>Is annamh a bhíonn rochtain dhíreach ar an msamhail:class: ~django.contrib.auth.models.permission.</p>\n</section>\n<section id=\"groups\">\n<h3>Grúpaí<a class=\"heading-anchor\" href=\"#groups\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.Group\" title=\"django.contrib.auth.models.Group\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.models.Group</span></code></a> models are a generic way of\ncategorizing users so you can apply permissions, or some other label, to those\nusers. A user can belong to any number of groups.</p>\n<p>Tá na ceadanna deonaithe don ghrúpa sin go huathoibríoch ag úsáideoir i ngrúpa. Mar shampla, má tá an cead can_edit_home_page` ag an ngrúpa <code class=\"docutils literal notranslate\"><span class=\"pre\">eagarthóirí</span> <span class=\"pre\">láithreáin</span></code>, beidh an cead sin ag aon úsáideoir sa ghrúpa sin.</p>\n<p>Seachas ceadanna, is bealach áisiúil iad grúpaí chun úsáideoirí a chatagóiriú chun roinnt lipéad, nó feidhmiúlacht leathnaithe a thabhairt Mar shampla, d'fhéadfá grúpa <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>Úsáideoirí speisialta' a chruthú, agus d'fhéadfá cód a scríobh a d'fhéadfadh, abair, rochtain a thabhairt dóibh ar chuid de do shuíomh do bhaill amháin, nó teachtaireachtaí ríomhphoist do bhaill amháin a sheoladh chucu.</p>\n</section>\n<section id=\"programmatically-creating-permissions\">\n<h3>Ceadanna a chruthú go cláraitheach<a class=\"heading-anchor\" href=\"#programmatically-creating-permissions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cé gur féidir ceadanna saincheaptha a shainiú laisti &lt;custom-permissions&gt;gh de rang <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta`</span> <span class=\"pre\">samhail,</span> <span class=\"pre\">is</span> <span class=\"pre\">féidir</span> <span class=\"pre\">leat</span> <span class=\"pre\">ceadanna</span> <span class=\"pre\">a</span> <span class=\"pre\">chruthú</span> <span class=\"pre\">go</span> <span class=\"pre\">díreach</span> <span class=\"pre\">freisin.</span> <span class=\"pre\">Mar</span> <span class=\"pre\">shampla,</span> <span class=\"pre\">is</span> <span class=\"pre\">féidir</span> <span class=\"pre\">leat</span> <span class=\"pre\">an</span> <span class=\"pre\">cead</span> <span class=\"pre\">``can_publish</span> <span class=\"pre\">``a</span> <span class=\"pre\">chruthú</span> <span class=\"pre\">do</span> <span class=\"pre\">mhúnla</span> <span class=\"pre\">``blogpost</span></code> i myapp`:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">BlogPost</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Permission</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ContentType</span>\n\n<span class=\"n\">content_type</span> <span class=\"o\">=</span> <span class=\"n\">ContentType</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get_for_model</span><span class=\"p\">(</span><span class=\"n\">BlogPost</span><span class=\"p\">)</span>\n<span class=\"n\">permission</span> <span class=\"o\">=</span> <span class=\"n\">Permission</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n    <span class=\"n\">codename</span><span class=\"o\">=</span><span class=\"s2\">&quot;can_publish&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Can Publish Posts&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">content_type</span><span class=\"o\">=</span><span class=\"n\">content_type</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir an cead a shannadh ansin do a:class: ~django.contrib.auth.models.user tríd a thréith <code class=\"docutils literal notranslate\"><span class=\"pre\">user_permissions</span></code> nó chuig a:class: ~django.contrib.auth.models.group trína tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">permissions</span></code>.</p>\n<aside class=\"admonition-proxy-models-need-their-own-content-type admonition\">\n<p class=\"admonition-title\">Teastaíonn a gcineál ábhair féin ó mhúnlaí</p>\n<p>Más mian leat: ref: ceadanna do mhúnla seachfhreastala a chruthú&lt;proxy-models-permissions-topic&gt;, pas <code class=\"docutils literal notranslate\"><span class=\"pre\">for_concrete_model=false</span></code> chuig:meth: .contentTypeManager.get_for_model chun an ContentType` cuí a fháil:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">content_type</span> <span class=\"o\">=</span> <span class=\"n\">ContentType</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get_for_model</span><span class=\"p\">(</span>\n    <span class=\"n\">BlogPostProxy</span><span class=\"p\">,</span> <span class=\"n\">for_concrete_model</span><span class=\"o\">=</span><span class=\"kc\">False</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n</section>\n<section id=\"permission-caching\">\n<h3>Cacháil ceadanna<a class=\"heading-anchor\" href=\"#permission-caching\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cuireann an: Class: ~django.contrib.auth.backends.modelBackend ceadanna ar an réad úsáideora tar éis an chéad uair is gá iad a fháil le haghaidh seiceáil ceadanna. De ghnáth bíonn sé seo go breá don timthriall iarrata-freagartha ós rud é nach ndéantar ceadanna a sheiceáil de ghnáth díreach tar éis iad a chur leis (sa riarachán, mar shampla). Má tá ceadanna á chur leis agus iad a sheiceáil díreach ina dhiaidh sin, i dtástáil nó i radharc mar shampla, is é an réiteach is éasca an t-úsáideoir a fháil ón mbunachar sonraí a ath-fháil. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Permission</span><span class=\"p\">,</span> <span class=\"n\">User</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ContentType</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">get_object_or_404</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">BlogPost</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">user_gains_perms</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">user_id</span><span class=\"p\">):</span>\n    <span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">User</span><span class=\"p\">,</span> <span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"n\">user_id</span><span class=\"p\">)</span>\n    <span class=\"c1\"># any permission check will cache the current set of permissions</span>\n    <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">has_perm</span><span class=\"p\">(</span><span class=\"s2\">&quot;myapp.change_blogpost&quot;</span><span class=\"p\">)</span>\n\n    <span class=\"n\">content_type</span> <span class=\"o\">=</span> <span class=\"n\">ContentType</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get_for_model</span><span class=\"p\">(</span><span class=\"n\">BlogPost</span><span class=\"p\">)</span>\n    <span class=\"n\">permission</span> <span class=\"o\">=</span> <span class=\"n\">Permission</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n        <span class=\"n\">codename</span><span class=\"o\">=</span><span class=\"s2\">&quot;change_blogpost&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">content_type</span><span class=\"o\">=</span><span class=\"n\">content_type</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n    <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">user_permissions</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">permission</span><span class=\"p\">)</span>\n\n    <span class=\"c1\"># Checking the cached permission set</span>\n    <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">has_perm</span><span class=\"p\">(</span><span class=\"s2\">&quot;myapp.change_blogpost&quot;</span><span class=\"p\">)</span>  <span class=\"c1\"># False</span>\n\n    <span class=\"c1\"># Request new instance of User</span>\n    <span class=\"c1\"># Be aware that user.refresh_from_db() won&#39;t clear the cache.</span>\n    <span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">User</span><span class=\"p\">,</span> <span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"n\">user_id</span><span class=\"p\">)</span>\n\n    <span class=\"c1\"># Permission cache is repopulated from the database</span>\n    <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">has_perm</span><span class=\"p\">(</span><span class=\"s2\">&quot;myapp.change_blogpost&quot;</span><span class=\"p\">)</span>  <span class=\"c1\"># True</span>\n\n    <span class=\"o\">...</span>\n</code></pre></div>\n</section>\n<section id=\"proxy-models\">\n<span id=\"proxy-models-permissions-topic\"></span><h3>Múnlaí proxy<a class=\"heading-anchor\" href=\"#proxy-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Oibríonn samhlacha seachfhreastalaí go díreach ar an mbealach céanna Cruthaítear ceadanna ag baint úsáide as cineál ábhair féin an tsamhail seachfhreastalaí Ní fhaigheann samhlacha seachfhreastalaí ceadanna an tsamhail choincréite a fho-aicmigh siad:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">permissions</span> <span class=\"o\">=</span> <span class=\"p\">[(</span><span class=\"s2\">&quot;can_eat_pizzas&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Can eat pizzas&quot;</span><span class=\"p\">)]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Student</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">proxy</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n        <span class=\"n\">permissions</span> <span class=\"o\">=</span> <span class=\"p\">[(</span><span class=\"s2\">&quot;can_deliver_pizzas&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Can deliver pizzas&quot;</span><span class=\"p\">)]</span>\n</code></pre></div>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Fetch the content type for the proxy model.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">content_type</span> <span class=\"o\">=</span> <span class=\"n\">ContentType</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get_for_model</span><span class=\"p\">(</span><span class=\"n\">Student</span><span class=\"p\">,</span> <span class=\"n\">for_concrete_model</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">student_permissions</span> <span class=\"o\">=</span> <span class=\"n\">Permission</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">content_type</span><span class=\"o\">=</span><span class=\"n\">content_type</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"p\">[</span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">codename</span> <span class=\"k\">for</span> <span class=\"n\">p</span> <span class=\"ow\">in</span> <span class=\"n\">student_permissions</span><span class=\"p\">]</span>\n<span class=\"go\">[&#39;add_student&#39;, &#39;change_student&#39;, &#39;delete_student&#39;, &#39;view_student&#39;,</span>\n<span class=\"go\">&#39;can_deliver_pizzas&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">permission</span> <span class=\"ow\">in</span> <span class=\"n\">student_permissions</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">user_permissions</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">permission</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">has_perm</span><span class=\"p\">(</span><span class=\"s2\">&quot;app.add_person&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">has_perm</span><span class=\"p\">(</span><span class=\"s2\">&quot;app.can_eat_pizzas&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">has_perms</span><span class=\"p\">((</span><span class=\"s2\">&quot;app.add_student&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;app.can_deliver_pizzas&quot;</span><span class=\"p\">))</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"authentication-in-web-requests\">\n<span id=\"auth-web-requests\"></span><h2>Fíordheimhniú in iarratais gréasáin<a class=\"heading-anchor\" href=\"#authentication-in-web-requests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>&lt;/topics/http/sessions&gt; &lt;django.http.HttpRequest&gt;Úsáideann Django: doc: seisiúin agus middleware chun an córas fíordheimhnithe a cheangal la:class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>iarr rudaí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>&lt;django.http.HttpRequest.auser&gt;Soláthraíonn siad seo a: attr: request.user &lt;django.http.HttpRequest.user&gt;`tréith agus a:meth: `request.auser modh async ar gach iarratas a léiríonn an t-úsáideoir reatha. Mura bhfuil an t-úsáideoir reatha logáil isteach, socraítear an tréith seo go sampla de:class: ~django.contrib.auth.models.anonymousUser, ar shlí eile beidh sé ina shampla de:class: ~django.contrib.auth.models.user.</p>\n<p>Is féidir leat iad a insint óna chéile la:attr: ~django.contrib.auth.models.user.is_Authenticated, mar sin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_authenticated</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Do something for authenticated users.</span>\n    <span class=\"o\">...</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Do something for anonymous users.</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Nó i radharc asincrónach:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"k\">await</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">auser</span><span class=\"p\">()</span>\n<span class=\"k\">if</span> <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_authenticated</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Do something for authenticated users.</span>\n    <span class=\"o\">...</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Do something for anonymous users.</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<section id=\"how-to-log-a-user-in\">\n<span id=\"id2\"></span><h3>Conas úsáideoir a logáil isteach<a class=\"heading-anchor\" href=\"#how-to-log-a-user-in\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Má tá úsáideoir fíordheimhnithe agat gur mhaith leat a cheangal leis an seisiún reatha - déantar é seo le feidhm a:func: ~django.contrib.auth.login.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.login\">\n<span class=\"sig-name descname\"><span class=\"pre\">login</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">user</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">backend</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.login\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.alogin\">\n<span class=\"sig-name descname\"><span class=\"pre\">alogin</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">user</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">backend</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.alogin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Asynchronous version</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">alogin()</span></code></p>\n<p>To log a user in, from a view, use <a class=\"reference internal\" href=\"#django.contrib.auth.login\" title=\"django.contrib.auth.login\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login()</span></code></a>. It\ntakes an <a class=\"reference internal\" href=\"/ga/6.0/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> object and a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> object.\n<a class=\"reference internal\" href=\"#django.contrib.auth.login\" title=\"django.contrib.auth.login\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login()</span></code></a> saves the user's ID in the session,\nusing Django's session framework.</p>\n<p>Tabhair faoi deara go gcoinnítear aon tacar sonraí le linn an tseisiúin gan ainm sa seisiún tar éis úsáideoir logáil isteach.</p>\n<p>This example shows how you might use both\n<a class=\"reference internal\" href=\"#django.contrib.auth.authenticate\" title=\"django.contrib.auth.authenticate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">authenticate()</span></code></a> and\n<a class=\"reference internal\" href=\"#django.contrib.auth.login\" title=\"django.contrib.auth.login\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login()</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">authenticate</span><span class=\"p\">,</span> <span class=\"n\">login</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">username</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">[</span><span class=\"s2\">&quot;username&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">password</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">[</span><span class=\"s2\">&quot;password&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">authenticate</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">username</span><span class=\"o\">=</span><span class=\"n\">username</span><span class=\"p\">,</span> <span class=\"n\">password</span><span class=\"o\">=</span><span class=\"n\">password</span><span class=\"p\">)</span>\n    <span class=\"k\">if</span> <span class=\"n\">user</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n        <span class=\"n\">login</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">user</span><span class=\"p\">)</span>\n        <span class=\"c1\"># Redirect to a success page.</span>\n        <span class=\"o\">...</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Return an &#39;invalid login&#39; error message.</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n</dd></dl>\n\n<section id=\"selecting-the-authentication-backend\">\n<h4>An cúltaca fíordheimhnithe a roghnú<a class=\"heading-anchor\" href=\"#selecting-the-authentication-backend\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Nuair a logálann úsáideoir isteach, sábhálfar aitheantas an úsáideora agus an cúltaca a úsáideadh le haghaidh fíordheimhnithe i seisiún an úsáideora. Ligeann sé seo an chéanna: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>backend fíordheimhniúcháin &lt;authentication-backends&gt;`sonraí an úsáideora a fháil ar iarratas amach anseo. Roghnaítear an cúltaca fíordheimhnithe le sábháil sa seisiún mar seo a leanas:</p>\n<ol class=\"arabic simple\">\n<li><p>Úsáid luach an argóint roghnach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>backend`, má chuirtear ar fáil.</p></li>\n<li><p>Use the value of the <code class=\"docutils literal notranslate\"><span class=\"pre\">user.backend</span></code> attribute, if present. This allows\npairing <a class=\"reference internal\" href=\"#django.contrib.auth.authenticate\" title=\"django.contrib.auth.authenticate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">authenticate()</span></code></a> and\n<a class=\"reference internal\" href=\"#django.contrib.auth.login\" title=\"django.contrib.auth.login\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login()</span></code></a>:\n<a class=\"reference internal\" href=\"#django.contrib.auth.authenticate\" title=\"django.contrib.auth.authenticate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">authenticate()</span></code></a>\nsets the <code class=\"docutils literal notranslate\"><span class=\"pre\">user.backend</span></code> attribute on the user object it returns.</p></li>\n<li><p>Úsáid an <code class=\"docutils literal notranslate\"><span class=\"pre\">backend</span></code> in:setting: AUTHENTICATION_BACKENDS, mura bhfuil ach ceann amháin ann.</p></li>\n<li><p>Seachas sin, ardaigh eisceacht.</p></li>\n</ol>\n<p>I gcásanna 1 agus 2, ba chóir go mbeadh luach an argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">backend</span></code> nó an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">user.backend</span></code> ina shreang cosán allmhairiúcháin poncaí (cosúil leis sin a fhaightear in:setting: AUTHENTICATION_BACKENDS), ní an aicme cúltaca iarbhír.</p>\n</section>\n</section>\n<section id=\"how-to-log-a-user-out\">\n<h3>Conas úsáideoir a logáil amach<a class=\"heading-anchor\" href=\"#how-to-log-a-user-out\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.logout\">\n<span class=\"sig-name descname\"><span class=\"pre\">logout</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.logout\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.alogout\">\n<span class=\"sig-name descname\"><span class=\"pre\">alogout</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.alogout\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Asynchronous version</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">alogout()</span></code></p>\n<p>To log out a user who has been logged in via\n<a class=\"reference internal\" href=\"#django.contrib.auth.login\" title=\"django.contrib.auth.login\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.login()</span></code></a>, use\n<a class=\"reference internal\" href=\"#django.contrib.auth.logout\" title=\"django.contrib.auth.logout\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.logout()</span></code></a> within your view. It takes an\n<a class=\"reference internal\" href=\"/ga/6.0/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> object and has no return value.\nExample:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">logout</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">logout_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">logout</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">)</span>\n    <span class=\"c1\"># Redirect to a success page.</span>\n</code></pre></div>\n<p>Note that <a class=\"reference internal\" href=\"#django.contrib.auth.logout\" title=\"django.contrib.auth.logout\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">logout()</span></code></a> doesn't throw any errors if\nthe user wasn't logged in.</p>\n<p>When you call <a class=\"reference internal\" href=\"#django.contrib.auth.logout\" title=\"django.contrib.auth.logout\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">logout()</span></code></a>, the session data for\nthe current request is completely cleaned out. All existing data is\nremoved. This is to prevent another person from using the same web browser\nto log in and have access to the previous user's session data. If you want\nto put anything into the session that will be available to the user\nimmediately after logging out, do that <em>after</em> calling\n<a class=\"reference internal\" href=\"#django.contrib.auth.logout\" title=\"django.contrib.auth.logout\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.logout()</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"limiting-access-to-logged-in-users\">\n<h3>Rochtain a theorannú ar úsáideoirí logáilte isteach<a class=\"heading-anchor\" href=\"#limiting-access-to-logged-in-users\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"the-raw-way\">\n<h4>An bealach amh<a class=\"heading-anchor\" href=\"#the-raw-way\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>&lt;django.contrib.auth.models.User.is_authenticated&gt;Is é an bealach amh chun rochtain ar leathanaigh a theorannú ná seiceál:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>request.user.is_authorated <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>agus ceachtar acu a atreorú chuig leathanach logála isteach:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.conf</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">settings</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">redirect</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_authenticated</span><span class=\"p\">:</span>\n        <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"sa\">f</span><span class=\"s2\">&quot;</span><span class=\"si\">{</span><span class=\"n\">settings</span><span class=\"o\">.</span><span class=\"n\">LOGIN_URL</span><span class=\"si\">}</span><span class=\"s2\">?next=</span><span class=\"si\">{</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">path</span><span class=\"si\">}</span><span class=\"s2\">&quot;</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n<p>... nó teachtaireacht earráide a thaispeáint:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">render</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_authenticated</span><span class=\"p\">:</span>\n        <span class=\"k\">return</span> <span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"s2\">&quot;myapp/login_error.html&quot;</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n</section>\n<section id=\"the-login-required-decorator\">\n<h4>An maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">login_required</span></code><a class=\"heading-anchor\" href=\"#the-login-required-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.decorators.login_required\">\n<span class=\"sig-name descname\"><span class=\"pre\">login_required</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">redirect_field_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'next'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.decorators.login_required\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mar aicearra, is féidir leat an maisitheoir áisiúil: func: ~django.contrib.auth.decorators.login_required a úsáid:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">login_required</span>\n\n\n<span class=\"nd\">@login_required</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"#django.contrib.auth.decorators.login_required\" title=\"django.contrib.auth.decorators.login_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_required()</span></code></a> does the following:</p>\n<ul class=\"simple\">\n<li><p>Mura bhfuil an t-úsáideoir logáilte isteach, atreoraigh chuig:setting: settings.login_url &lt;LOGIN_URL&gt;, ag dul ar an gcosán iomlán reatha sa sreangán fiosrúcháin. Sampla: <code class=\"docutils literal notranslate\"><span class=\"pre\">/cuntais/logáil</span> <span class=\"pre\">isteach/?</span> <span class=\"pre\">next</span> <span class=\"pre\">=/polls/3/</span></code>.</p></li>\n<li><p>Má tá an t-úsáideoir logáilte isteach, déan an radharc a dhéanamh de ghnáth. Tá an cód amharc saor in aisce glacadh leis go bhfuil an t-úsáideoir logáilte isteach.</p></li>\n</ul>\n<p>De réir réamhshocraithe, stóráiltear an cosán ar chóir an t-úsáideoir a atreorú chuig nuair a fhíordheimhniú rathúil i bparaiméadar teaghrán ceisteanna ar a dtugtar <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;next”</span> <span class=\"pre\">`.</span> <span class=\"pre\">Más</span> <span class=\"pre\">fearr</span> <span class=\"pre\">leat</span> <span class=\"pre\">ainm</span> <span class=\"pre\">difriúil</span> <span class=\"pre\">a</span> <span class=\"pre\">úsáid</span> <span class=\"pre\">don</span> <span class=\"pre\">pharaiméadar</span> <span class=\"pre\">seo,</span> <span class=\"pre\">glacann:</span> <span class=\"pre\">:func:</span> <span class=\"pre\">`~django.contrib.auth.decorators.login_required`</span> <span class=\"pre\">paraiméadar</span> <span class=\"pre\">roghnach</span> <span class=\"pre\">``redirect_field_name</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">login_required</span>\n\n\n<span class=\"nd\">@login_required</span><span class=\"p\">(</span><span class=\"n\">redirect_field_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;my_redirect_field&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>Tabhair faoi deara má sholáthraíonn tú luach do redirect_field_name`, is dócha go mbeidh ort do theimpléad logála isteach a shaincheapadh freisin, ós rud é go n-úsáidfidh an athróg comhthéacs teimpléid a stóráilíonn an cosán atreoraithe luach <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code> mar eochair seachas <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>&quot;next” <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>(an réamhshocraithe).</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.auth.decorators.login_required\" title=\"django.contrib.auth.decorators.login_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_required()</span></code></a> also takes an\noptional <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code> parameter. Example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">login_required</span>\n\n\n<span class=\"nd\">@login_required</span><span class=\"p\">(</span><span class=\"n\">login_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;/accounts/login/&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>&lt;LOGIN_URL&gt;Tabhair faoi deara mura sonraíonn tú an paraiméadar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>login_url <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, beidh ort a chinntiú go bhfuil baint i gceart la:setting: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>settings.login_URL <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>agus d'amharc logála isteach. Mar shampla, ag baint úsáide as na réamhshocruithe, cuir na línte seo a leanas le do URLConf:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span> <span class=\"k\">as</span> <span class=\"n\">auth_views</span>\n\n<span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;accounts/login/&quot;</span><span class=\"p\">,</span> <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">LoginView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">()),</span>\n</code></pre></div>\n<p>&lt;naming-url-patterns&gt;Glacann an: setting: settings.login_URL &lt;LOGIN_URL&gt;`le hainmneacha feidhm amharc agus:ref: `patrúin URL ainmnithe. Ligeann sé seo duit do radharc logála isteach a athmhapáil go saor laistigh de do URLConf gan an socrú a nuashonrú.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>NÍ sheiceálann an maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">login_required</span></code> an bhratach <code class=\"docutils literal notranslate\"><span class=\"pre\">is_active</span></code> ar úsáideoir, ach diúltaíonn an réamhshocraithe:setting: AUTHENTICATION_BACKENDS úsáideoirí neamhghníomhacha.</p>\n</aside>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>Má tá tuairimí saincheaptha á scríobh agat do riarachán Django (nó má theastaíonn an seiceáil údaraithe céanna uait a úsáideann na tuairimí ionsuite), b'fhéidir go bhfaighidh tú an:func: django.contrib.admin.views.decorators.staff_member_required rogha úsáideach seachas <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>login_required () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</aside>\n</section>\n<section id=\"the-loginrequiredmixin-mixin\">\n<h4>An meascán <code class=\"docutils literal notranslate\"><span class=\"pre\">LoginRequiredMixin</span></code><a class=\"heading-anchor\" href=\"#the-loginrequiredmixin-mixin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Nuair a úsáideann tú: doc: tuairimí rang-bhunaithe ', is féidir leat an t-iompar céanna a bhaint amach agus le ``login_required` &lt;/topics/class-based-views/index&gt; tríd an LoginRequiredMixin` a úsáid. Ba chóir go mbeadh an meascán seo ag an suíomh is clé sa liosta oidhreachta.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.LoginRequiredMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LoginRequiredMixin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.LoginRequiredMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Má tá an mixin seo á úsáid ag amharc, atreorófar gach iarratas ó úsáideoirí neamh-fhíordheimhnithe chuig an leathanach logála isteach nó taispeánfar earráid toirmiscthe HTTP 403, ag brath ar an bparaiméadar: attr: ~django.contrib.auth.mixins.accessmixin.raise_exception.</p>\n<p>Is féidir leat aon cheann de na paraiméadair de:class: ~django.contrib.auth.mixins.accessMixin a shocrú chun láimhseáil úsáideoirí neamhúdaraithe a shaincheapadh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.mixins</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">LoginRequiredMixin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyView</span><span class=\"p\">(</span><span class=\"n\">LoginRequiredMixin</span><span class=\"p\">,</span> <span class=\"n\">View</span><span class=\"p\">):</span>\n    <span class=\"n\">login_url</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/login/&quot;</span>\n    <span class=\"n\">redirect_field_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;redirect_to&quot;</span>\n</code></pre></div>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Díreach mar an maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">login_required</span></code>, NÍ sheiceálann an meascán seo an bhratach <code class=\"docutils literal notranslate\"><span class=\"pre\">is_active</span></code> ar úsáideoir, ach diúltaíonn an réamhshocraithe:setting: AUTHENTICATION_BACKENDS úsáideoirí neamhghníomhacha.</p>\n</aside>\n</section>\n<section id=\"the-login-not-required-decorator\">\n<span id=\"disable-login-required-middleware-for-views\"></span><h4>An maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">login_not_required</span></code><a class=\"heading-anchor\" href=\"#the-login-not-required-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Nuair a bhíonn: Class: ~django.contrib.auth.middleware.loginrequiredMiddleware suiteáilte, teastaíonn fíordheimhniú de réir réamhshocraithe ó gach radharc. B'fhéidir go mbeidh ar roinnt tuairimí, mar shampla an radharc logála isteach, an t-iompar seo a dhíchumas</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.decorators.login_not_required\">\n<span class=\"sig-name descname\"><span class=\"pre\">login_not_required</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.decorators.login_not_required\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ceadaíonn sé iarratais neamhfhíordheimhnithe chuig an radharc seo nuai:class: ~django.contrib.auth.middleware.loginrequiredMiddleware suiteáilte.</p>\n</dd></dl>\n\n</section>\n<section id=\"limiting-access-to-logged-in-users-that-pass-a-test\">\n<h4>Rochtain a theorannú ar úsáideoirí logáilte isteach a rachaidh tástáil<a class=\"heading-anchor\" href=\"#limiting-access-to-logged-in-users-that-pass-a-test\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chun rochtain a theorannú bunaithe ar cheadanna áirithe nó ar thástáil éigin eile, déanfá an rud céanna go bunúsach mar a thuairiscítear sa chuid roimhe seo.</p>\n<p>&lt;django.http.HttpRequest.user&gt;Is féidir leat do thástáil a reáchtáil ar:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>request.user <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>sa radharc go díreach. Mar shampla, seiceálann an radharc seo chun a chinntiú go bhfuil ríomhphost ag an úsáideoir sa réimse atá ag teastáil agus mura bhfuil, atreoraíonn sé chuig an leathanach logála isteach:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">redirect</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">email</span><span class=\"o\">.</span><span class=\"n\">endswith</span><span class=\"p\">(</span><span class=\"s2\">&quot;@example.com&quot;</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">redirect</span><span class=\"p\">(</span><span class=\"s2\">&quot;/login/?next=</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">path</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.decorators.user_passes_test\">\n<span class=\"sig-name descname\"><span class=\"pre\">user_passes_test</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">test_func</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">redirect_field_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'next'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.decorators.user_passes_test\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mar aicearra, is féidir leat an maisitheoir áisiúil <code class=\"docutils literal notranslate\"><span class=\"pre\">user_passes_test</span></code> a úsáid a dhéanann atreorú nuair a fhilleann an t-inghlaoch <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">user_passes_test</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">email_check</span><span class=\"p\">(</span><span class=\"n\">user</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">email</span><span class=\"o\">.</span><span class=\"n\">endswith</span><span class=\"p\">(</span><span class=\"s2\">&quot;@example.com&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"nd\">@user_passes_test</span><span class=\"p\">(</span><span class=\"n\">email_check</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"#django.contrib.auth.decorators.user_passes_test\" title=\"django.contrib.auth.decorators.user_passes_test\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">user_passes_test()</span></code></a> takes a required\nargument: a callable that takes a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> object and returns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if\nthe user is allowed to view the page. Note that\n<a class=\"reference internal\" href=\"#django.contrib.auth.decorators.user_passes_test\" title=\"django.contrib.auth.decorators.user_passes_test\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">user_passes_test()</span></code></a> does not\nautomatically check that the <a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> is\nnot anonymous.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.auth.decorators.user_passes_test\" title=\"django.contrib.auth.decorators.user_passes_test\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">user_passes_test()</span></code></a> takes two\noptional arguments:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">log_url</span></code></dt><dd><p>Ligeann duit an URL a shonrú a atreorófar úsáideoirí nach rachaidh an tástáil chuig. &lt;LOGIN_URL&gt;D'fhéadfadh go mbeadh sé ina leathanach logála isteach agus réamhshocraithe to:setting: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>settings.login_url <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>mura sonraíonn tú ceann amháin.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">ainm_redirect_field</span></code></dt><dd><p>Mar an gcéanna le haghaidh: func: ~django.contrib.auth.decorators.login_required. Ag socrú é go <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>None <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>baintear é as an URL, rud a d'fhéadfá a dhéanamh má tá tú ag atreorú úsáideoirí nach dtéann an tástáil chuig leathanach neamh-logála isteach nach bhfuil “an chéad leathanach eile” ann.</p>\n</dd>\n</dl>\n<p>Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@user_passes_test</span><span class=\"p\">(</span><span class=\"n\">email_check</span><span class=\"p\">,</span> <span class=\"n\">login_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;/login/&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.UserPassesTestMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">UserPassesTestMixin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.UserPassesTestMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Nuair a úsáideann tú: doc: tuairimí rang-bhunaithe ', is féidir leat an ``UserPassestestMixin` a úsáid chun &lt;/topics/class-based-views/index&gt; é seo a dhéanamh.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.UserPassesTestMixin.test_func\">\n<span class=\"sig-name descname\"><span class=\"pre\">test_func</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.UserPassesTestMixin.test_func\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Caithfidh tú an modh test_func () ``den rang a shárú chun an tástáil a dhéantar a sholáthar. Ina theannta sin, is féidir leat aon cheann de na paraiméadair de:class: `~django.contrib.auth.mixins.accessMixin a shocrú chun láimhseáil úsáideoirí neamhúdaraithe a shaincheapadh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.mixins</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">UserPassesTestMixin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyView</span><span class=\"p\">(</span><span class=\"n\">UserPassesTestMixin</span><span class=\"p\">,</span> <span class=\"n\">View</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_func</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">email</span><span class=\"o\">.</span><span class=\"n\">endswith</span><span class=\"p\">(</span><span class=\"s2\">&quot;@example.com&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.UserPassesTestMixin.get_test_func\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_test_func</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.UserPassesTestMixin.get_test_func\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Is féidir leat an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_test_func () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a shárú freisin chun feidhm ainmnithe difriúil a úsáideann an mixin dá sheiceálacha (in ionad:meth: test_func).</p>\n</dd></dl>\n\n<aside class=\"admonition-stacking-userpassestestmixin admonition\">\n<p class=\"admonition-title\">Cruachadh <code class=\"docutils literal notranslate\"><span class=\"pre\">UserPassestestMixin</span></code></p>\n<p>Mar gheall ar an mbealach a chuirtear <code class=\"docutils literal notranslate\"><span class=\"pre\">UserPassestestMixin</span></code> i bhfeidhm, ní féidir leat iad a chruachadh i do liosta oidhreachta. NÍ oibríonn an méid seo a leanas:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TestMixin1</span><span class=\"p\">(</span><span class=\"n\">UserPassesTestMixin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_func</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">email</span><span class=\"o\">.</span><span class=\"n\">endswith</span><span class=\"p\">(</span><span class=\"s2\">&quot;@example.com&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TestMixin2</span><span class=\"p\">(</span><span class=\"n\">UserPassesTestMixin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_func</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">username</span><span class=\"o\">.</span><span class=\"n\">startswith</span><span class=\"p\">(</span><span class=\"s2\">&quot;django&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyView</span><span class=\"p\">(</span><span class=\"n\">TestMixin1</span><span class=\"p\">,</span> <span class=\"n\">TestMixin2</span><span class=\"p\">,</span> <span class=\"n\">View</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>Dá ndéanfadh <code class=\"docutils literal notranslate\"><span class=\"pre\">TestMixin1</span></code> glaoch ar <code class=\"docutils literal notranslate\"><span class=\"pre\">super</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">go</span> <span class=\"pre\">gcuirfeadh</span> <span class=\"pre\">an</span> <span class=\"pre\">toradh</span> <span class=\"pre\">sin</span> <span class=\"pre\">san</span> <span class=\"pre\">áireamh,</span> <span class=\"pre\">ní</span> <span class=\"pre\">oibreodh</span> <span class=\"pre\">``TestMixin1</span></code> neamhspleách níos mó.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"the-permission-required-decorator\">\n<h4>An maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">ceadú_riachtana</span></code><a class=\"heading-anchor\" href=\"#the-permission-required-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.decorators.permission_required\">\n<span class=\"sig-name descname\"><span class=\"pre\">permission_required</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">perm</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">raise_exception</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.decorators.permission_required\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>It's a relatively common task to check whether a user has a particular\npermission. For that reason, Django provides a shortcut for that case: the\n<a class=\"reference internal\" href=\"#django.contrib.auth.decorators.permission_required\" title=\"django.contrib.auth.decorators.permission_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">permission_required()</span></code></a> decorator:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">permission_required</span>\n\n\n<span class=\"nd\">@permission_required</span><span class=\"p\">(</span><span class=\"s2\">&quot;polls.add_choice&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>&lt;app label&gt;Díreach cosúil leis an modh:meth: ~django.contrib.auth.models.user.has_perm, glacann ainmneacha ceada an fhoirm <code class=\"docutils literal notranslate\"><span class=\"pre\">”.</span> <span class=\"pre\">&lt;permission</span> <span class=\"pre\">codename&gt;“``(ie</span> <span class=\"pre\">``polls.add_choice</span></code> le haghaidh cead ar mhúnla san iarratas <code class=\"docutils literal notranslate\"><span class=\"pre\">polls</span></code>).</p>\n<p>Féadfaidh an maisitheoir ceadanna in-athraithe a ghlacadh freisin, agus sa chás sin caithfidh na ceadanna go léir a bheith ag an úsáideoir chun rochtain a fháil ar an radharc.</p>\n<p>Note that <a class=\"reference internal\" href=\"#django.contrib.auth.decorators.permission_required\" title=\"django.contrib.auth.decorators.permission_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">permission_required()</span></code></a>\nalso takes an optional <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code> parameter:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">permission_required</span>\n\n\n<span class=\"nd\">@permission_required</span><span class=\"p\">(</span><span class=\"s2\">&quot;polls.add_choice&quot;</span><span class=\"p\">,</span> <span class=\"n\">login_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;/loginpage/&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>&lt;LOGIN_URL&gt;Mar atá sa maisitheoir: func: ~django.contrib.auth.decorators.login_required, réamhshocraithe <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>login_url <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>: socrú: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>Settings.login_url <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>.</p>\n<p>&lt;http_forbidden_view&gt;Má thugtar an paraiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">raise_exception</span></code>, ardóidh an maisitheoir:exc: ~django.core.exceptions.permissiondenied, ag iarraidh:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>an amharc 403 (HTTP Forbidden) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>in ionad atreorú chuig an leathanach logála isteach.</p>\n<p>Más mian leat <code class=\"docutils literal notranslate\"><span class=\"pre\">raise_exception</span></code> a úsáid ach deis a thabhairt d'úsáideoirí logáil isteach ar dtús, is féidir leat an maisitheoir: func: ~django.contrib.auth.decorators.login_required a chur leis:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">login_required</span><span class=\"p\">,</span> <span class=\"n\">permission_required</span>\n\n\n<span class=\"nd\">@login_required</span>\n<span class=\"nd\">@permission_required</span><span class=\"p\">(</span><span class=\"s2\">&quot;polls.add_choice&quot;</span><span class=\"p\">,</span> <span class=\"n\">raise_exception</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>Seachnaíonn sé seo lúb atreoraithe freisin nuai:class: .loginView <code class=\"docutils literal notranslate\"><span class=\"pre\">Redirect_Authenticated_user=True</span></code> agus níl na ceadanna riachtanacha go léir ag an úsáideoir logáilte isteach.</p>\n</dd></dl>\n\n</section>\n<section id=\"the-permissionrequiredmixin-mixin\">\n<h4>An meascán <code class=\"docutils literal notranslate\"><span class=\"pre\">Ceadúnas</span> <span class=\"pre\">RequiredMixin</span></code><a class=\"heading-anchor\" href=\"#the-permissionrequiredmixin-mixin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chun seiceálacha ceada a chur i bhfeidhm chuig:doc: tuairimí rang-bhunaithe ', is féidir leat an ``PermissionRequiredMixin` &lt;/ref/class-based-views/index&gt; a úsáid:</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.PermissionRequiredMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PermissionRequiredMixin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.PermissionRequiredMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Seiceálann an meascán seo, díreach cosúil leis an maisitheoir <code class=\"docutils literal notranslate\"><span class=\"pre\">permission_required</span></code>, an bhfuil gach cead tugtha ag an úsáideoir a rochtain ar radharc. Ba chóir duit an cead a shonrú (nó ceadanna inathraithe) ag baint úsáide as an paraiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">permission_required</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.mixins</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">PermissionRequiredMixin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyView</span><span class=\"p\">(</span><span class=\"n\">PermissionRequiredMixin</span><span class=\"p\">,</span> <span class=\"n\">View</span><span class=\"p\">):</span>\n    <span class=\"n\">permission_required</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;polls.add_choice&quot;</span>\n    <span class=\"c1\"># Or multiple of permissions:</span>\n    <span class=\"n\">permission_required</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;polls.view_choice&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;polls.change_choice&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Is féidir leat aon cheann de na paraiméadair de:class: ~django.contrib.auth.mixins.accessMixin a shocrú chun láimhseáil úsáideoirí neamhúdaraithe a shaincheapadh.</p>\n<p>Féadfaidh tú na modhanna seo a shárú freisin:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.PermissionRequiredMixin.get_permission_required\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_permission_required</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.PermissionRequiredMixin.get_permission_required\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tugann sé ainmneacha ceada a úsáideann an mixin ar ais. Réamhshocraithe go dtí an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">permission_required</span></code>, a thiontú go tuple más gá.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.PermissionRequiredMixin.has_permission\">\n<span class=\"sig-name descname\"><span class=\"pre\">has_permission</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.PermissionRequiredMixin.has_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a boolean denoting whether the current user has permission to\nexecute the decorated view. By default, this returns the result of\ncalling <a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.has_perms\" title=\"django.contrib.auth.models.User.has_perms\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_perms()</span></code></a> with the\nlist of permissions returned by <a class=\"reference internal\" href=\"#django.contrib.auth.mixins.PermissionRequiredMixin.get_permission_required\" title=\"django.contrib.auth.mixins.PermissionRequiredMixin.get_permission_required\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_permission_required()</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n<section id=\"redirecting-unauthorized-requests-in-class-based-views\">\n<h3>Iarrataí neamhúdaraithe a atreorú i dtuairimí bunaithe<a class=\"heading-anchor\" href=\"#redirecting-unauthorized-requests-in-class-based-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Chun láimhseáil srianta rochtana in:doc: tuairimí rang-bhunaithe 'a mhaolú, is féidir an ``AccessMixin` a úsáid chun iompar radharc a chumrú nuair a dhiúlta&lt;/ref/class-based-views/index&gt; ítear rochtain. Diúltaítear rochtain d'úsáideoirí fíordheimhnithe le freagra toirmiscthe HTTP 403. Atreoraítear úsáideoirí gan ainm chuig an leathanach logála isteach nó taispeántar freagra toirmiscthe HTTP 403, ag brath ar thréith: attr: ~django.contrib.auth.mixins.accessmixin.raise_exception.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AccessMixin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.login_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">login_url</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.login_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Default return value for <a class=\"reference internal\" href=\"#django.contrib.auth.mixins.AccessMixin.get_login_url\" title=\"django.contrib.auth.mixins.AccessMixin.get_login_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_login_url()</span></code></a>. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>\nin which case <a class=\"reference internal\" href=\"#django.contrib.auth.mixins.AccessMixin.get_login_url\" title=\"django.contrib.auth.mixins.AccessMixin.get_login_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_login_url()</span></code></a> falls back to\n<a class=\"reference internal\" href=\"/ga/6.0/ref/settings/#std-setting-LOGIN_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">settings.LOGIN_URL</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.permission_denied_message\">\n<span class=\"sig-name descname\"><span class=\"pre\">permission_denied_message</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.permission_denied_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Luach tuairisceáin réamhshocraithe le haghaidh: meth: get_permission_denied_message. Réamhshocraithe chuig teaghrán folamh.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.redirect_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect_field_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.redirect_field_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Luach tuairisceáin réamhshocraithe le haghaidh: meth: get_redirect_field_name. Réamhshocraithe go <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>&quot;eile” <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.raise_exception\">\n<span class=\"sig-name descname\"><span class=\"pre\">raise_exception</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.raise_exception\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If this attribute is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/exceptions/#django.core.exceptions.PermissionDenied\" title=\"django.core.exceptions.PermissionDenied\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PermissionDenied</span></code></a> exception is raised\nwhen the conditions are not met. When <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (the default),\nanonymous users are redirected to the login page.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.get_login_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_login_url</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.get_login_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tugann sé an URL ar ais a atreorófar úsáideoirí nach rachaidh an tástáil chuig. &lt;LOGIN_URL&gt;Tuairisceáin: attr: login_url má tá sé socraithe, nó: setting: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>settings.login_url <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>ar shlí eile.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.get_permission_denied_message\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_permission_denied_message</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.get_permission_denied_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Nuair: attr: raise_exception <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, is féidir an modh seo a úsáid chun an teachtaireacht earráide a chuirtear chuig an láimhseálaí earráide a rialú lena thaispeáint don úsáideoir. Tugann an tréith: attr: permission_denied_message ar ais de réir réamhshocraithe.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.get_redirect_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_redirect_field_name</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.get_redirect_field_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tugann sé ainm an pharaiméadair fiosrúcháin ina mbeidh an URL ba chóir an t-úsáideoir a atreorú chuig tar éis logáil isteach rathúil. Má shocraíonn tú é seo go <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>None <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, ní chuirfear paraiméadar ceisteanna leis. Tugann an tréith: attr: redirect_field_name ar ais de réir réamhshocraithe.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.mixins.AccessMixin.handle_no_permission\">\n<span class=\"sig-name descname\"><span class=\"pre\">handle_no_permission</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.mixins.AccessMixin.handle_no_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ag brath ar luach <code class=\"docutils literal notranslate\"><span class=\"pre\">raise_exception</span></code>, ardaíonn an modh eisceacht a:exc: ~django.core.exceptions.permissionDenied nó atreoraíonn an t-úsáideoir chuig an login_url `, roghnach lena n-áirítear an <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code> má tá sé socraithe.</p>\n</dd></dl>\n\n</dd></dl>\n\n<section id=\"session-invalidation-on-password-change\">\n<span id=\"id3\"></span><h4>Neamhbhailí seisiúin ar athrú pasfhocal<a class=\"heading-anchor\" href=\"#session-invalidation-on-password-change\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>If your <a class=\"reference internal\" href=\"/ga/6.0/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code></a> inherits from\n<a class=\"reference internal\" href=\"/ga/6.0/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser\" title=\"django.contrib.auth.models.AbstractBaseUser\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AbstractBaseUser</span></code></a> or implements its own\n<a class=\"reference internal\" href=\"/ga/6.0/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash\" title=\"django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_session_auth_hash()</span></code></a>\nmethod, authenticated sessions will include the hash returned by this function.\nIn the <a class=\"reference internal\" href=\"/ga/6.0/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser\" title=\"django.contrib.auth.models.AbstractBaseUser\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AbstractBaseUser</span></code></a> case, this is an\nHMAC of the password field. Django verifies that the hash in the session for\neach request matches the one that's computed during the request. This allows a\nuser to log out all of their sessions by changing their password.</p>\n<p>Na tuairimí athraithe pasfhocal réamhshocraithe san áireamh le Django, :class: ~django.contrib.auth.views.passwordChangeView agus an radharc <code class=\"docutils literal notranslate\"><span class=\"pre\">user_change_password</span></code> in:mod: django.contrib.auth admin, nuashonraigh an seisiún leis an hash pasfhocal nua ionas nach logálfaidh úsáideoir a phasfhocal féin. Má tá amharc saincheaptha athraithe pasfhocal agat agus má theastaíonn uait iompar den chineál céanna a bheith agat, bain úsáid as an bhfeidhm:func: update_session_auth_hash.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.update_session_auth_hash\">\n<span class=\"sig-name descname\"><span class=\"pre\">update_session_auth_hash</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">user</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.update_session_auth_hash\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.aupdate_session_auth_hash\">\n<span class=\"sig-name descname\"><span class=\"pre\">aupdate_session_auth_hash</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">user</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.aupdate_session_auth_hash\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Leagan asincrón</em>: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>aupdate_session_auth_hash () ``</p>\n<p>Tógann an fheidhm seo an t-iarratas reatha agus an réad úsáideora nuashonraithe as a ndíorthófar an hash seisiúin nua agus nuashonraíonn sé an hash seisiúin go cuí. Rothlaíonn sé an eochair seisiúin freisin ionas go ndéanfar fianán seisiúin goidte a chur ar bhailí.</p>\n<p>Úsáid sampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">update_session_auth_hash</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">password_change</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">method</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;POST&quot;</span><span class=\"p\">:</span>\n        <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">PasswordChangeForm</span><span class=\"p\">(</span><span class=\"n\">user</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">():</span>\n            <span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n            <span class=\"n\">update_session_auth_hash</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Since\n<a class=\"reference internal\" href=\"/ga/6.0/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash\" title=\"django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_session_auth_hash()</span></code></a>\nis based on <a class=\"reference internal\" href=\"/ga/6.0/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a>, secret key values must be\nrotated to avoid invalidating existing sessions when updating your site to\nuse a new secret. See <a class=\"reference internal\" href=\"/ga/6.0/ref/settings/#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code></a> for details.</p>\n</aside>\n</section>\n</section>\n<section id=\"module-django.contrib.auth.views\">\n<span id=\"authentication-views\"></span><span id=\"built-in-auth-views\"></span><h3>Radhairc Fíordheimhni<a class=\"heading-anchor\" href=\"#module-django.contrib.auth.views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Soláthraíonn Django roinnt tuairimí is féidir leat a úsáid chun logáil isteach, logáil amach agus bainistíocht pasfhocal a láimhseáil. Úsáideann siad seo na foirmeacha: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>stoc auth &lt;built-in-auth-forms&gt;`ach is féidir leat dul i do fhoirmeacha féin freisin.</p>\n<p>Ní sholáthraíonn Django aon teimpléad réamhshocraithe do na tuairimí fí Ba chóir duit do theimpléid féin a chruthú do na tuairimí is mian leat a úsáid. Tá comhthéacs an teimpléid doiciméadaithe i ngach amharc, féach:ref: all-autentiúcháin-views.</p>\n<section id=\"using-the-views\">\n<span id=\"id4\"></span><h4>Úsáid na tuairimí<a class=\"heading-anchor\" href=\"#using-the-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tá modhanna difriúla ann chun na tuairimí seo a chur i bhfeidhm i do thionscadal Is é an bealach is éasca ná an URLConf a chuirtear ar fáil a áireamh in <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.urls</span></code> i do URLConf féin, mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;accounts/&quot;</span><span class=\"p\">,</span> <span class=\"n\">include</span><span class=\"p\">(</span><span class=\"s2\">&quot;django.contrib.auth.urls&quot;</span><span class=\"p\">)),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Áireofar seo na patrúin URL seo a leanas:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>accounts/login/ [name=&#39;login&#39;]\naccounts/logout/ [name=&#39;logout&#39;]\naccounts/password_change/ [name=&#39;password_change&#39;]\naccounts/password_change/done/ [name=&#39;password_change_done&#39;]\naccounts/password_reset/ [name=&#39;password_reset&#39;]\naccounts/password_reset/done/ [name=&#39;password_reset_done&#39;]\naccounts/reset/&lt;uidb64&gt;/&lt;token&gt;/ [name=&#39;password_reset_confirm&#39;]\naccounts/reset/done/ [name=&#39;password_reset_complete&#39;]\n</code></pre></div>\n<p>Soláthraíonn na tuairimí ainm URL le haghaidh tagartha níos éasca. Féach: doc: an doiciméadú URL le haghaidh sonraí maidir le patrúin URL &lt;/topics/http/urls&gt; ainmnithe a úsáid.</p>\n<p>Más mian leat níos mó smachta ar do URLanna, is féidir leat tagairt a dhéanamh do radharc ar leith i do URLConf:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span> <span class=\"k\">as</span> <span class=\"n\">auth_views</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;change-password/&quot;</span><span class=\"p\">,</span> <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordChangeView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">()),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Tá argóintí roghnacha ag na tuairimí is féidir leat a úsáid chun iompar an radharc a athrú. Mar shampla, más mian leat an t-ainm teimpléid a úsáideann amharc a athrú, is féidir leat an argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> a sholáthar. Bealach chun é seo a dhéanamh ná argóintí eochairfhocal a sholáthar sa URLConf, cuirfear iad seo ar aghaidh chuig an dearcadh. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;change-password/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordChangeView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">template_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;change-password.html&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Is iad na tuairimí go léir:doc: class-based &lt;/topics/class-based-views/index&gt;, rud a ligeann duit iad a shaincheapadh go héasca trí fho-aicmiú.</p>\n</section>\n<section id=\"all-authentication-views\">\n<span id=\"id5\"></span><h4>Gach tuairim fíordheimhni<a class=\"heading-anchor\" href=\"#all-authentication-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Seo liosta leis na tuairimí go léir a sholáthraíonn <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code>. Le haghaidh sonraí cur chun feidhme féach:ref: using-the-views.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LoginView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>logáil isteach ``</p>\n<p>Féach: doc: an doiciméadú URL le haghaidh sonraí maidir le patrúin URL &lt;/topics/http/urls&gt; ainmnithe a úsáid.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Modhanna agus Gnéithe **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm teimpléad le taispeáint don amharc a úsáidtear chun an t-úsáideoir a logáil isteach. Réamhshocraithe chuig: file: clárúcháin/logain.html.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.next_page\">\n<span class=\"sig-name descname\"><span class=\"pre\">next_page</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.next_page\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An URL le atreorú chuig tar éis logáil isteach. Réamhshocraithe chuig: socrú: LOGIN_REDIRECT_URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.redirect_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect_field_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.redirect_field_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> ina bhfuil an URL le atreorú chuig tar éis logáil isteach. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">`next</span> <span class=\"pre\">``.</span> <span class=\"pre\">Sáraíonn</span> <span class=\"pre\">an</span> <span class=\"pre\">URL:meth:</span> <span class=\"pre\">`get_default_redirect_url`</span> <span class=\"pre\">má</span> <span class=\"pre\">chuirtear</span> <span class=\"pre\">an</span> <span class=\"pre\">paraiméadar</span> <span class=\"pre\">``GET</span></code> a thugtar.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.authentication_form\">\n<span class=\"sig-name descname\"><span class=\"pre\">authentication_form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.authentication_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Is féidir glaoch (rang foirme de ghnáth) le húsáid le haghaidh fíordheimhnithe. Réamhshocraithe chuig: aicme: ~django.contrib.auth.forms.AuthenticationForm.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.redirect_authenticated_user\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect_authenticated_user</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.redirect_authenticated_user\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Déanfar boolean a rialaíonn cibé acu úsáideoirí fíordheimhnithe a rochtann rochtain ar an leathanach logála isteach a atreorú amhail is dá ndearna siad logáil isteach go rathúil. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Má chumasaíonn tú <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_autenticated_user</span></code>, beidh láithreáin ghréasáin eile in ann a chinneadh an bhfuil a gcuairteoirí fíordheimhnithe ar do shuíomh trí URLanna atreoraithe a iarraidh chuig comhaid íomhá ar do shuíomh Gréasáin. Chun an sceitheadh faisnéise seo “<a href=\"#id8\"><span class=\"problematic\" id=\"id9\">`méarloirg na meán sóisiala`_</span></a> &lt; <a class=\"reference external\" href=\"https://robinlinus.github.io/socialmedia-leak/\">https://robinlinus.github.io/socialmedia-leak/</a>&gt;” a sheachaint, óstach na híomhánna go léir agus do favicon ar fearann ar leithligh.</p>\n<p>Is féidir lúb atreoraithe a bheith mar thoradh ar <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_autenticated_user</span></code> a chumasú nuair a úsáidtear an maisitheoir: func: .permission_required mura n-úsáidtear an paraiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">raise_exception</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.success_url_allowed_hosts\">\n<span class=\"sig-name descname\"><span class=\"pre\">success_url_allowed_hosts</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.success_url_allowed_hosts\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>&lt;django.http.HttpRequest.get_host&gt;A: aicme: tac óstach, i dteann:meth: request.get_host () `, atá sábháilte le hathreorú tar éis logáil isteach. Réamhshocraithe go folamh: class: `set.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LoginView.get_default_redirect_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_default_redirect_url</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LoginView.get_default_redirect_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Filleann sé an URL le atreorú chuig tar éis logáil isteach. Réiteann agus filleann an cur i bhfeidhm réamhshocraithe: attr: next_page má tá sé socraithe, nó:setting: LOGIN_REDIRECT_URL ar shlí eile.</p>\n</dd></dl>\n\n<p>Seo cad a dhéanann <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>LoginView <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>:</p>\n<ul class=\"simple\">\n<li><p>Má thugtar air trí GET`, taispeánann sé foirm logála isteach a Postálann chuig an URL céanna. Níos mó faoi seo i mbeagán.</p></li>\n<li><p>Má ghlaonn sé trí POST ``le dintiúir a chuirtear isteach ag an úsáideoir, déanann sé iarracht an t-úsáideoir a logáil isteach. Má éiríonn logáil isteach, atreoraíonn an radharc chuig an URL a shonraítear in ``next `. &lt;LOGIN_REDIRECT_URL&gt;Mura gcuirtear <code class=\"docutils literal notranslate\"><span class=\"pre\">next</span> <span class=\"pre\">``ar</span> <span class=\"pre\">fáil,</span> <span class=\"pre\">atreoraíonn</span> <span class=\"pre\">sé</span> <span class=\"pre\">chuig:setting:</span> <span class=\"pre\">`settings.login_redirect_url</span> <span class=\"pre\">`(a</span> <span class=\"pre\">dhéanann</span> <span class=\"pre\">réamhshocraithe</span> <span class=\"pre\">go</span> <span class=\"pre\">``/cuntas/próifíl/</span></code>). Mura n-éiríonn le logáil isteach, athaispeánann sé an fhoirm logála isteach.</p></li>\n</ul>\n<p>Tá sé de fhreagracht ort an html a sholáthar don teimpléad logála isteach, ar a dtugtar <code class=\"docutils literal notranslate\"><span class=\"pre\">registration/login.html</span></code> de réir réamhshocraithe. Rinne an teimpléad seo ceithre athróg comhthéacs teimplé</p>\n<ul class=\"simple\">\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>foirm <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>: A:Class: ~Django.Forms.Form réad a léiríonn an: aicme: ~django.contrib.auth.forms.AuthenticationForm.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next</span></code>: An URL le atreorú chuig tar éis logáil isteach rathúil. D'fhéadfadh go mbeadh teaghrán ceisteanna ann freisin.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site</span></code>: An reatha: aicme: ~django.contrib.sites.models.site, de réir an socrú: socrú: SITE_ID. Mura bhfuil creat an láithreáin suiteáilte agat, socraítear é seo go sampla de:class: ~django.contrib.sites.requests.requestsite, a fhaigheann ainm an láithreáin agus an fearainn ón reatha:class: ~django.http.httpRequest.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_name</span></code>: Ailias le haghaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">site.name</span></code>. &lt;django.http.HttpRequest.META&gt;Mura bhfuil creat an láithreáin suiteáilte agat, socraítear é seo go luach de:attr: request.meta ['SERVER_NAME'] `. Le haghaidh tuilleadh eolais ar shuíomhanna, féach:doc: `/ref/contrib/sites.</p></li>\n</ul>\n<p>Más fearr leat gan glaoch ar an teimpléad:file: registration/login.html, is féidir leat an paraiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> a chur ar aghaidh trí na hargóintí breise chuig an modh as_view` i do URLConf. Mar shampla, úsáidfeadh an líne URLConf seo:file: myapp/login.html ina ionad:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;accounts/login/&quot;</span><span class=\"p\">,</span> <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">LoginView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">template_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;myapp/login.html&quot;</span><span class=\"p\">)),</span>\n</code></pre></div>\n<p>Is féidir leat ainm an réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> a shonrú ina bhfuil an URL le atreorú chuig tar éis logáil isteach ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code>. De réir réamhshocraithe, tugtar “next” ar an réimse.</p>\n<p>Seo teimpléad sampla:file: registration/login.html is féidir leat a úsáid mar phointe tosaigh. Glacann sé leis go bhfuil teimpléad a:file: base.html agat a shainmhíníonn bloc <code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code>:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;base.html&quot;</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">content</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">form.errors</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Your username and password didn&#39;t match. Please try again.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">next</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">user.is_authenticated</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Your account doesn&#39;t have access to this page. To proceed,\n    please login with an account that has access.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Please login to see this page.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;login&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">csrf_token</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">table</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">form.username.label_tag</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">form.username</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">form.password.label_tag</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">form.password</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">table</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;submit&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;login&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;hidden&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;next&quot;</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">next</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n\n<span class=\"c\">{# Assumes you set up the password_reset view in your URLconf #}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;password_reset&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Lost password?<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Má tá fíordheimhniú saincheaptha agat (féach: doc: Fíordheimhniú Saincheapach') is féidir leat foirm fíordheimhnithe saincheaptha a úsáid tríd an tréith ``foirm autentication_form` &lt;/topics/auth/customizing&gt; a shocrú. Ní mór don fhoirm seo glacadh le hargóint eochairfhocal <code class=\"docutils literal notranslate\"><span class=\"pre\">iarraidh`</span> <span class=\"pre\">ina</span> <span class=\"pre\">modh</span> <span class=\"pre\">``__init__</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">modh</span> <span class=\"pre\">``get_user</span> <span class=\"pre\">()</span></code> a sholáthar a thugann an réad úsáideora fíordheimhnithe ar ais (ní ghlaofar an modh seo ach amháin tar éis bailíochtú foirme rathúil).</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LogoutView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LogoutView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LogoutView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Logáil úsáideoir amach ar iarratais <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>POST <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>logáil isteach ``</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LogoutView.next_page\">\n<span class=\"sig-name descname\"><span class=\"pre\">next_page</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LogoutView.next_page\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An URL le atreorú chuig tar éis logáil amach. Réamhshocraithe chuig: socrú: LOGOUT_REDIRECT_URL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LogoutView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LogoutView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléid le taispeáint tar éis an t-úsáideoir a logáil amach. Réamhshocraithe chuig: file: clárúcháin/logged_out.html.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LogoutView.redirect_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect_field_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LogoutView.redirect_field_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> ina bhfuil an URL le atreorú chuig tar éis logáil amach. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">'next</span> <span class=\"pre\">t'</span></code>. Sáraíonn an URL:attr: next_page má chuirtear an paraiméadar <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> a thugtar.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LogoutView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LogoutView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.LogoutView.success_url_allowed_hosts\">\n<span class=\"sig-name descname\"><span class=\"pre\">success_url_allowed_hosts</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.LogoutView.success_url_allowed_hosts\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>&lt;django.http.HttpRequest.get_host&gt;A: aicme: tac óstach, i dteann:meth: request.get_host () `, atá sábháilte le hathreorú tar éis logáil amach. Réamhshocraithe go folamh: class: `set.</p>\n</dd></dl>\n\n<p>** Comhthéacs teimpléad: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code>: An teaghrán “Logáilte amach”, logánaithe.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site</span></code>: An reatha: aicme: ~django.contrib.sites.models.site, de réir an socrú: socrú: SITE_ID. Mura bhfuil creat an láithreáin suiteáilte agat, socraítear é seo go sampla de:class: ~django.contrib.sites.requests.requestsite, a fhaigheann ainm an láithreáin agus an fearainn ón reatha:class: ~django.http.httpRequest.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_name</span></code>: Ailias le haghaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">site.name</span></code>. &lt;django.http.HttpRequest.META&gt;Mura bhfuil creat an láithreáin suiteáilte agat, socraítear é seo go luach de:attr: request.meta ['SERVER_NAME'] `. Le haghaidh tuilleadh eolais ar shuíomhanna, féach:doc: `/ref/contrib/sites.</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.logout_then_login\">\n<span class=\"sig-name descname\"><span class=\"pre\">logout_then_login</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.logout_then_login\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Logáil úsáideoir amach ar iarratais <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>POST <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, ansin atreoraíonn sé chuig an leathanach logála isteach.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** Níl URL réamhshocraithe ar fáil</p>\n<p>** Argóintí roghnacha: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code>: URL an leathanaigh logála isteach le atreorú chuig. &lt;LOGIN_URL&gt;Réamhshocraithe to:setting: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>settings.login_url <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>mura gcuirtear ar fáil.</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordChangeView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <code class=\"docutils literal notranslate\"><span class=\"pre\">password_change</span></code></p>\n<p>Ligeann sé d'úsáideoir a phasfhocal a athrú.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléid le húsáid chun an fhoirm athraithe pasfhocal a thaispeáint. Réamhshocraithe to:file: clárúcháin/password_change_form.html mura gcuirtear ar fáil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeView.success_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">success_url</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeView.success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An URL le atreorú chuig tar éis athrú pasfhocal rathúil. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">`'password_change_done'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeView.form_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">form_class</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeView.form_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm saincheaptha “athraigh pasfhocal” a chaithfidh glacadh le hargóint eochairfhocal <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>úsáideoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Tá an fhoirm freagrach as pasfhocal an úsáideora a athrú i ndáiríre. Réamhshocraithe chuig: aicme: ~django.contrib.auth.forms.PasswordChangeForm.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n<p>** Comhthéacs teimpléad: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">foirm</span></code>: An fhoirm athraithe pasfhocal (féach <code class=\"docutils literal notranslate\"><span class=\"pre\">form_class</span></code> thuas).</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeDoneView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordChangeDoneView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeDoneView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <code class=\"docutils literal notranslate\"><span class=\"pre\">`password_change_done</span></code></p>\n<p>An leathanach a thaispeántar tar éis d'úsáideoir a phasfhocal a athrú.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeDoneView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeDoneView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléad le húsáid. Réamhshocraithe to:file: clárúcháin/password_change_done.html mura gcuirtear ar fáil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordChangeDoneView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordChangeDoneView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordResetView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <code class=\"docutils literal notranslate\"><span class=\"pre\">`password_reset</span></code></p>\n<p>Ligeann sé d'úsáideoir a bhfocal faire a athshocrú trí nasc úsáide aonuaire a ghiniúint is féidir a úsáid chun an pasfhocal a athshocrú, agus an nasc sin a sheoladh chuig seoladh ríomhphoist cláraithe an úsáideora.</p>\n<p>Seolfaidh an dearcadh seo ríomhphost má chomhlíontar na coinníollacha seo a leanas:</p>\n<ul class=\"simple\">\n<li><p>Tá an seoladh ríomhphoist a chuirtear ar fáil sa chóras.</p></li>\n<li><p>Tá an t-úsáideoir iarrtha gníomhach (<code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_Active</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>).</p></li>\n<li><p>Tá pasfhocal inúsáidte ag an úsáideoir iarrtha. Ní cheadaítear d'úsáideoirí a bhfuil pasfhocal neamhúsáidte orthu (féach: ~django.contrib.auth.models.user.set_unusable_password) athshocrú pasfhocal a iarraidh chun mí-úsáid a chosc agus foinse fíordheimhnithe seachtrach cosúil le LDAP á úsáid acu.</p></li>\n</ul>\n<p>Mura gcomhlíontar aon cheann de na coinníollacha seo <em>níl</em>, ní sheolfar aon ríomhphost, ach ní gheobhaidh an t-úsáideoir aon teachtaireacht earráide ach an oiread. Coscann sé seo faisnéis a sceitheadh chuig ionsaitheoirí ionchasacha Más mian leat teachtaireacht earráide a sholáthar sa chás seo, is féidir leat subclass:class: ~django.contrib.auth.forms.passwordResetForm agus an tréith <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>form_class <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Bí ar an eolas go gcosnaíonn ríomhphost a sheoladh ama breise, dá bhrí sin b'fhéidir go mbeadh tú leochaileach d'ionsaí uainiúcháin áireamh seoltaí ríomhphoist mar gheall ar difríocht idir fad iarratais athshocraithe ar sheoladh ríomhphoist atá ann cheana agus fad iarratais athshocraithe ar sheoladh ríomhphoist nach bhfuil ann. Chun an lasbhreas a laghdú, is féidir leat pacáiste 3ú páirtí a úsáid a cheadaíonn ríomhphoist a sheoladh go hincrónach, m.sh.: pypi: django-mailer.</p>\n</aside>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléid le húsáid chun an fhoirm athshocraithe pasfhocal a thaispeáint. Réamhshocraithe to:file: clárúcháin/password_reset_form.html mura gcuirtear ar fáil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.form_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">form_class</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.form_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm a úsáidfear chun ríomhphost an úsáideora a fháil chun an pasfhocal a athshocrú dó. Réamhshocraithe chuig: aicme: ~django.contrib.auth.forms.PasswordResetForm.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.email_template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">email_template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.email_template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléid le húsáid chun an ríomhphost a ghiniúint leis an nasc pasfhocal athshocraithe. Réamhshocraithe to:file: registration/password_reset_email.html mura gcuirtear ar fáil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.subject_template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">subject_template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.subject_template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléid le húsáid le haghaidh ábhar an ríomhphoist leis an nasc pasfhocal athshocraithe. Réamhshocraithe to:file: clárúcháin/password_reset_subject.txt mura gcuirtear ar fáil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.token_generator\">\n<span class=\"sig-name descname\"><span class=\"pre\">token_generator</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.token_generator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sampla den rang chun an nasc aonuaire a sheiceáil. Beidh sé seo réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">default_token_generator</span></code>, is sampla é de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.tokens.passwordResetTokenGenerator</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.success_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">success_url</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An URL le atreorú chuig tar éis iarratas rathúil athshocraithe pasfhocal. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">`'password_reset_done'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.from_email\">\n<span class=\"sig-name descname\"><span class=\"pre\">from_email</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.from_email\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Seoladh ríomhphoist bailí. De réir réamhshocraithe úsáideann Django an:setting: DEFAULT_FROM_EMAIL.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.html_email_template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">html_email_template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.html_email_template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléid le húsáid chun ríomhphost ilpháirteach a: mimetype: text/html a ghiniúint leis an nasc athshocraithe pasfhocal. De réir réamhshocraithe, ní sheoltar ríomhphost HTML.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetView.extra_email_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_email_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetView.extra_email_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a bheidh ar fáil sa teimpléad ríomhphoist. Is féidir é a úsáid chun luachanna comhthéacs teimpléad réamhshocraithe atá liostaithe thíos a shárú m.sh. <code class=\"docutils literal notranslate\"><span class=\"pre\">réimse</span></code>.</p>\n</dd></dl>\n\n<p>** Comhthéacs teimpléad: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">foirm</span> <span class=\"pre\">``:</span> <span class=\"pre\">An</span> <span class=\"pre\">fhoirm</span> <span class=\"pre\">(féach</span> <span class=\"pre\">``form_class</span></code> thuas) chun pasfhocal an úsáideora a athshocrú.</p></li>\n</ul>\n<p>** comhthéacs teimpléad ríomhphoist: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">email</span></code>: Ainm le haghaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">user.email</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code>: An reatha: aicme: ~django.contrib.auth.models.user, de réir réimse foirme <code class=\"docutils literal notranslate\"><span class=\"pre\">ríomhphost</span></code>. Níl ach úsáideoirí gníomhacha in ann a gcuid pasfhocail a athshocrú (<code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_Active</span> <span class=\"pre\">is</span> <span class=\"pre\">True</span></code>).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_name</span></code>: Ailias le haghaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">site.name</span></code>. &lt;django.http.HttpRequest.META&gt;Mura bhfuil creat an láithreáin suiteáilte agat, socraítear é seo go luach de:attr: request.meta ['SERVER_NAME'] `. Le haghaidh tuilleadh eolais ar shuíomhanna, féach:doc: `/ref/contrib/sites.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">domain</span></code>: Ainm le haghaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">site.domain</span></code>. Mura bhfuil creat an láithreáin suiteáilte agat, socraítear é seo go luach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>request.get_host () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p></li>\n<li><p>“prótacal”: http nó https</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">uid</span></code>: Príomh-eochair an úsáideora ionchódaithe i mbonn 64.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">token</span></code>: Comhartha chun a sheiceáil go bhfuil an nasc athshocraithe bailí.</p></li>\n</ul>\n<p>Sampla <code class=\"docutils literal notranslate\"><span class=\"pre\">clárúcháin/password_reset_email.html</span></code> (teimpléad comhlacht ríomhphoist):</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code>Someone asked for password reset for email <span class=\"cp\">{{</span> <span class=\"nv\">email</span> <span class=\"cp\">}}</span>. Follow the link below:\n<span class=\"cp\">{{</span> <span class=\"nv\">protocol</span><span class=\"cp\">}}</span>://<span class=\"cp\">{{</span> <span class=\"nv\">domain</span> <span class=\"cp\">}}{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;password_reset_confirm&#39;</span> <span class=\"nv\">uidb64</span><span class=\"o\">=</span><span class=\"nv\">uid</span> <span class=\"nv\">token</span><span class=\"o\">=</span><span class=\"nv\">token</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Úsáidtear an comhthéacs teimpléid céanna do theimpléad ábhair. Caithfidh an t-ábhar a bheith ina sreang téacs simplí líne aonair.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetDoneView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordResetDoneView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetDoneView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <code class=\"docutils literal notranslate\"><span class=\"pre\">`password_reset_done</span></code></p>\n<p>An leathanach a thaispeántar tar éis nasc a sheoladh chuig úsáideoir chun a bhfocal faire a athshocrú. Tugtar an radharc seo de réir réamhshocraithe mura bhfuil socrú URL sainráite <code class=\"docutils literal notranslate\"><span class=\"pre\">success_url</span></code> ag an:class: PasswordResetView.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Mura bhfuil an seoladh ríomhphoist a chuirtear ar fáil sa chóras ann, tá an t-úsáideoir neamhghníomhach, nó má tá pasfhocal neamhúsáidte aige, atreorófar an t-úsáideoir chuig an radharc seo fós ach ní sheolfar aon ríomhphost.</p>\n</aside>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetDoneView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetDoneView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléad le húsáid. Réamhshocraithe to:file: clárúcháin/password_reset_done.html mura gcuirtear ar fáil.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetDoneView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetDoneView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordResetConfirmView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <code class=\"docutils literal notranslate\"><span class=\"pre\">`password_reset_confirm</span></code></p>\n<p>Cuireann sé foirm i láthair chun pasfhocal nua a iontráil.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Argóintí eochairfhocal ón URL: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">uidb64</span></code>: Aitheantas an úsáideora ionchódaithe i mbonn 64.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">token</span></code>: Comhartha chun a sheiceáil go bhfuil an pasfhocal bailí.</p></li>\n</ul>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléad chun an dearcadh pasfhocal deimhnithe a thaispeáint. Is é an luach réamhshocraithe:file: clárúcháin/password_reset_confirm.html.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.token_generator\">\n<span class=\"sig-name descname\"><span class=\"pre\">token_generator</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.token_generator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sampla den rang chun an pasfhocal a sheiceáil. Beidh sé seo réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">default_token_generator</span></code>, is sampla é de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.tokens.passwordResetTokenGenerator</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.post_reset_login\">\n<span class=\"sig-name descname\"><span class=\"pre\">post_reset_login</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.post_reset_login\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Boolean a léiríonn an chóir an t-úsáideoir a fhíordheimhniú go huathoibríoch tar éis athshocrú pasfhocal rathúil. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.post_reset_login_backend\">\n<span class=\"sig-name descname\"><span class=\"pre\">post_reset_login_backend</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.post_reset_login_backend\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Conair poncaí chuig an gcúltaca fíordheimhnithe le húsáid agus úsáideoir á fhíordheimhniú má tá <code class=\"docutils literal notranslate\"><span class=\"pre\">post_reset_login</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Ní gá ach amháin má tá iolr:setting: AUTHENTICATION_BACKENDS cumraithe agat. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.form_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">form_class</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.form_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm a úsáidfear chun an pasfhocal a shocrú. Réamhshocraithe chuig: aicme: ~django.contrib.auth.forms.setPasswordForm.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.success_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">success_url</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.success_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>URL chun a atreorú tar éis an athshocrú pasfhocal a dhéanamh. Réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">'password_reset_complete'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetConfirmView.reset_url_token\">\n<span class=\"sig-name descname\"><span class=\"pre\">reset_url_token</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetConfirmView.reset_url_token\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Paraiméadar comhartha a thaispeántar mar chomhpháirt d'URLanna athshocraithe pas Réamhshocraithe go <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>'pasfhocal a shocraí'.</p>\n</dd></dl>\n\n<p>** Comhthéacs teimpléad: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">foirm</span> <span class=\"pre\">``:</span> <span class=\"pre\">An</span> <span class=\"pre\">fhoirm</span> <span class=\"pre\">(féach</span> <span class=\"pre\">``form_class</span></code> thuas) chun pasfhocal an úsáideora nua a shocrú.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">validlink</span></code>: Boolean, Fíor má tá an nasc (teaglaim de <code class=\"docutils literal notranslate\"><span class=\"pre\">uidb64</span></code> agus token`) bailí nó neamhúsáidte fós.</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetCompleteView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordResetCompleteView</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetCompleteView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Ainm URL: ** <code class=\"docutils literal notranslate\"><span class=\"pre\">`password_reset_complete</span></code></p>\n<p>Cuireann sé dearcadh i láthair a chuireann in iúl don úsáideoir go bhfuil an pasfhocal athraithe go rathúil.</p>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Tréithe: **</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetCompleteView.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetCompleteView.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm iomlán teimpléad chun an radharc a thaispeáint. Réamhshocraithe chuig: file: clárúcháin/password_reset_complete.html.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.PasswordResetCompleteView.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.PasswordResetCompleteView.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foclóir sonraí comhthéacs a chuirfear leis na sonraí comhthéacs réamhshocraithe a chuirtear chuig an teimpléad.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n<section id=\"helper-functions\">\n<h3>Feidhmeanna cúnta<a class=\"heading-anchor\" href=\"#helper-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.views.redirect_to_login\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect_to_login</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">next</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">redirect_field_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'next'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.views.redirect_to_login\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Atreoraíonn sé chuig an leathanach logála isteach, agus ansin ar ais chuig URL eile tar éis logáil isteach rathúil.</p>\n<p>** Argóintí riachtanacha: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next</span></code>: An URL le atreorú chuig tar éis logáil isteach rathúil.</p></li>\n</ul>\n<p>** Argóintí roghnacha: **</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code>: URL an leathanaigh logála isteach le atreorú chuig. &lt;LOGIN_URL&gt;Réamhshocraithe to:setting: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>settings.login_url <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>mura gcuirtear ar fáil.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code>: Ainm réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> ina bhfuil an URL le atreorú chuig tar éis logáil isteach. Sáraigh <code class=\"docutils literal notranslate\"><span class=\"pre\">`next</span> <span class=\"pre\">``má</span> <span class=\"pre\">chuirtear</span> <span class=\"pre\">an</span> <span class=\"pre\">paraiméadar</span> <span class=\"pre\">``GET</span></code> a thugtar ar rith.</p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"module-django.contrib.auth.forms\">\n<span id=\"built-in-forms\"></span><span id=\"built-in-auth-forms\"></span><h3>Foirmeacha tógtha<a class=\"heading-anchor\" href=\"#module-django.contrib.auth.forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mura dteastaíonn uait na tuairimí ionsuite a úsáid, ach mura dteastaíonn uait an áisiúlacht gan foirmeacha a scríobh don fheidhmiúlacht seo, soláthraíonn an córas fíordheimhnithe roinnt foirmeacha ionsuite in:mod: django.contrib.auth.forms:</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Déanann na foirmeacha fíordheimhnithe ionsuite toimhde áirithe faoin tsamhail úsáideora a bhfuil siad ag obair leis. Má tá a: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>samhail úsáideora saincheaptha &lt;auth-custom-user&gt;`á úsáid agat, b'fhéidir go mbeadh sé riachtanach d'fhoirmeacha féin a shainiú don chóras fíordheimhnithe. &lt;custom-users-and-the-built-in-auth-forms&gt;Le haghaidh tuilleadh faisnéise, féach ar an doiciméadú fao:ref: <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>úsáid na bhfoirmeacha fíordheimhnithe ionsuite le samhlacha úsáideora saincheaptha <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>.</p>\n</aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.AdminPasswordChangeForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AdminPasswordChangeForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.AdminPasswordChangeForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm a úsáidtear sa chomhéadan riaracháin chun pasfhocal úsáideora a athrú, &lt;django.contrib.auth.models.User.set_unusable_password&gt;lena n-áirítear an cumas an:meth: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>pasfhocal neamhúsáidte <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a shocrú, a chuireann bac ar an úsáideoir logáil isteach le fíordheimhniú bunaithe ar phasfhocal.</p>\n<p>Glacann sé an <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>úsáideoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>mar an chéad argóint seasaimh.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.AdminUserCreationForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AdminUserCreationForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.AdminUserCreationForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm a úsáidtear sa chomhéadan riaracháin chun úsáideoir nua a chruthú. Oidhreacht ó:class: UserCreationForm.</p>\n<p>It includes an additional <code class=\"docutils literal notranslate\"><span class=\"pre\">usable_password</span></code> field, enabled by default. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">usable_password</span></code> is enabled, it verifies that <code class=\"docutils literal notranslate\"><span class=\"pre\">password1</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">password2</span></code> are non empty and match, validates the password using\n<a class=\"reference internal\" href=\"/ga/6.0/topics/auth/passwords/#django.contrib.auth.password_validation.validate_password\" title=\"django.contrib.auth.password_validation.validate_password\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">validate_password()</span></code></a>, and\nsets the user's password using\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.set_password\" title=\"django.contrib.auth.models.User.set_password\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">set_password()</span></code></a>.\nIf <code class=\"docutils literal notranslate\"><span class=\"pre\">usable_password</span></code> is disabled, no password validation is done, and\npassword-based authentication is disabled for the user by calling\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.set_unusable_password\" title=\"django.contrib.auth.models.User.set_unusable_password\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">set_unusable_password()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.AuthenticationForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AuthenticationForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.AuthenticationForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm chun úsáideoir a logáil isteach.</p>\n<p>Glacann sé “iarratas” mar a chéad argóint seasaimh, a stóráiltear ar an sampla foirme le húsáid ag fo-aicmí.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.AuthenticationForm.confirm_login_allowed\">\n<span class=\"sig-name descname\"><span class=\"pre\">confirm_login_allowed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">user</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.AuthenticationForm.confirm_login_allowed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>De réir réamhshocraithe, diúltaíonn <code class=\"docutils literal notranslate\"><span class=\"pre\">AuthenticationForm</span> <span class=\"pre\">``úsáideoirí</span> <span class=\"pre\">a</span> <span class=\"pre\">bhfuil</span> <span class=\"pre\">a</span> <span class=\"pre\">bhratach</span> <span class=\"pre\">``is_active</span></code> socraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Féadfaidh tú an t-iompar seo a shárú le beartas saincheaptha chun a chinneadh cé na húsáideoirí is féidir leo logáil isteach. Déan é seo le foirm saincheaptha a dhéanann fo-aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">AuthenticationForm</span> <span class=\"pre\">``agus</span> <span class=\"pre\">a</span> <span class=\"pre\">sháraíonn</span> <span class=\"pre\">an</span> <span class=\"pre\">modh</span> <span class=\"pre\">``confirm_login_allow</span> <span class=\"pre\">()</span></code>. Ba chóir go n-ardódh an modh seo a:exc: ~django.core.exceptions.validationError mura bhféadfadh an t-úsáideoir tugtha logáil isteach.</p>\n<p>Mar shampla, chun ligean do gach úsáideoir logáil isteach beag beann ar stádas “gníomhach”:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">AuthenticationForm</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthenticationFormWithInactiveUsersOkay</span><span class=\"p\">(</span><span class=\"n\">AuthenticationForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">confirm_login_allowed</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">user</span><span class=\"p\">):</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n<p>(Sa chás seo, beidh ort cúltaca fíordheimhnithe a úsáid freisin a cheadaíonn úsáideoirí neamhghníomhacha, mar shampla:class: ~django.contrib.auth.backends.allowAllUsersModelBackend.)</p>\n<p>Nó chun ligean ach roinnt úsáideoirí gníomhacha logáil isteach:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PickyAuthenticationForm</span><span class=\"p\">(</span><span class=\"n\">AuthenticationForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">confirm_login_allowed</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">user</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_active</span><span class=\"p\">:</span>\n            <span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n                <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;This account is inactive.&quot;</span><span class=\"p\">),</span>\n                <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;inactive&quot;</span><span class=\"p\">,</span>\n            <span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">username</span><span class=\"o\">.</span><span class=\"n\">startswith</span><span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">):</span>\n            <span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n                <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Sorry, accounts starting with &#39;b&#39; aren&#39;t welcome here.&quot;</span><span class=\"p\">),</span>\n                <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;no_b_users&quot;</span><span class=\"p\">,</span>\n            <span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.BaseUserCreationForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseUserCreationForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.BaseUserCreationForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A: Class: ~Django.Forms.ModelForm chun úsáideoir nua a chruthú. Is é seo an bunaicme molta más gá duit an fhoirm chruthaithe úsáideora a shaincheapadh.</p>\n<p>It has three fields: <code class=\"docutils literal notranslate\"><span class=\"pre\">username</span></code> (from the user model), <code class=\"docutils literal notranslate\"><span class=\"pre\">password1</span></code>,\nand <code class=\"docutils literal notranslate\"><span class=\"pre\">password2</span></code>. It verifies that <code class=\"docutils literal notranslate\"><span class=\"pre\">password1</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">password2</span></code> match,\nvalidates the password using\n<a class=\"reference internal\" href=\"/ga/6.0/topics/auth/passwords/#django.contrib.auth.password_validation.validate_password\" title=\"django.contrib.auth.password_validation.validate_password\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">validate_password()</span></code></a>, and\nsets the user's password using\n<a class=\"reference internal\" href=\"/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User.set_password\" title=\"django.contrib.auth.models.User.set_password\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">set_password()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.PasswordChangeForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordChangeForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.PasswordChangeForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm chun ligean d'úsáideoir a phasfhocal a athrú.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.PasswordResetForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PasswordResetForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.PasswordResetForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm chun nasc úsáide aon-uaire a ghiniúint agus a sheoladh ríomhphoist chun pasfhocal úsáideora a athshocrú.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.PasswordResetForm.send_mail\">\n<span class=\"sig-name descname\"><span class=\"pre\">send_mail</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">subject_template_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">email_template_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">from_email</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">to_email</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">html_email_template_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.PasswordResetForm.send_mail\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Úsáideann sé na hargóintí chun <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailMultiAlternatives</span></code> a sheoladh. Is féidir é a athsheoladh chun an chaoi a sheoltar an ríomhphost chuig an úsáideoir a shaincheapadh. Má roghnaíonn tú an modh seo a shárú, bí ar an gcuimhne ar eisceachtaí féideartha a ardaíodh mar gheall ar theipeanna seolta ríomhphoist</p>\n<dl class=\"field-list simple\">\n<dt class=\"field-odd\">Paraiméadair<span class=\"colon\">:</span></dt>\n<dd class=\"field-odd\"><ul class=\"simple\">\n<li><p><strong>subject_template_name</strong> -- an teimpléad don ábhar.</p></li>\n<li><p><strong>email_template_name</strong> -- an teimpléad don chomhlacht ríomhphoist.</p></li>\n<li><p><strong>context</strong> -- comhthéacs a chuirtear chuig an <code class=\"docutils literal notranslate\"><span class=\"pre\">subject_template</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">email_teimple</span></code>, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">html_email_teimple</span></code> (mura bhfuil sé <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>).</p></li>\n<li><p><strong>from_email</strong> -- ríomhphost an tseoltóra.</p></li>\n<li><p><strong>to_email</strong> -- ríomhphost an iarratóra.</p></li>\n<li><p><strong>html_email_template_name</strong> -- an teimpléad don chomhlacht HTML; réamhshocraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, sa chás sin seoltar ríomhphost gnáth-théacs.</p></li>\n</ul>\n</dd>\n</dl>\n<p>De réir réamhshocraithe, líonann <code class=\"docutils literal notranslate\"><span class=\"pre\">save</span> <span class=\"pre\">()</span> <span class=\"pre\">``an</span> <span class=\"pre\">`context</span></code> leis na hathróga céanna a théann: class: ~django.contrib.auth.views.passwordResetView chuig a chomhthéacs ríomhphoist.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.SetPasswordForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SetPasswordForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.SetPasswordForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm a ligeann d'úsáideoir a phasfhocal a athrú gan an sean-phasfhocal a iontráil.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.UserChangeForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">UserChangeForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.UserChangeForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Foirm a úsáidtear sa chomhéadan riaracháin chun faisnéis agus ceadanna úsáideora a athrú.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.forms.UserCreationForm\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">UserCreationForm</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.forms.UserCreationForm\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Oidhreacht ó:class: BaseUserCreationForm. Chun cabhrú le mearbhall le hainmneacha úsáideora comhchosúla a chosc, ní cheadaíonn an fhoirm ainmneacha úsáideora atá difriúil</p>\n</dd></dl>\n\n</section>\n<section id=\"authentication-data-in-templates\">\n<h3>Sonraí fíordheimhnithe i dteimpl<a class=\"heading-anchor\" href=\"#authentication-data-in-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cuirtear an t-úsáideoir logáilte isteach faoi láthair agus a gceadanna ar fáil in:doc: template context nuair a úsáideann tú :class: ~django.template.requestContext &lt;/ref/templates/api&gt;.</p>\n<aside class=\"admonition-technicality admonition\">\n<p class=\"admonition-title\">Teicniúlacht</p>\n<p>Go teicniúil, ní chuirtear na hathróga seo ar fáil ach amháin i gcomhthéacs an teimpléid má úsáideann tú: class: ~django.template.requestContext agus cumasaítear an próiseálaí comhthéacs <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>'django.contrib.auth.context_processors.auth'<a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Tá sé sa chomhad socruithe réamhshocraithe a ghintear. &lt;subclassing-context-requestcontext&gt;Le haghaidh tuilleadh, féach an:ref: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>RequestContext docs <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>.</p>\n</aside>\n<section id=\"users\">\n<h4>Úsáideoirí<a class=\"heading-anchor\" href=\"#users\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Agus teimpléad:class: ~django.template.requestContext á rindreáil, stóráiltear an t-úsáideoir logáilte isteach faoi láthair, a:class: ~django.contrib.auth.models.user nó sampla: :class: ~django.contrib.auth.models.anonymousUser, san athróg teimpléad <code class=\"docutils literal notranslate\"><span class=\"pre\">{{user}}</span></code>:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">user.is_authenticated</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Welcome, <span class=\"cp\">{{</span> <span class=\"nv\">user.username</span> <span class=\"cp\">}}</span>. Thanks for logging in.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Welcome, new user. Please log in.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Níl an athróg comhthéacs teimpléad seo ar fáil mura bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">RequestContext</span></code> á úsáid.</p>\n</section>\n<section id=\"permissions\">\n<h4>Ceada<a class=\"heading-anchor\" href=\"#permissions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Stóráiltear ceadanna an úsáideora logáilte isteach faoi láthair san athróg teimpléad <code class=\"docutils literal notranslate\"><span class=\"pre\">{{perms}}</span></code>. Seo sampla de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.permWrapper</span></code>, seachfhreastalaí ceadanna atá cairdiúil don teimpléad é.</p>\n<p>&lt;django.contrib.auth.models.User.has_module_perms&gt;Is seachfhreastalaí é cuardach aontréithe de <code class=\"docutils literal notranslate\"><span class=\"pre\">{{perms}}</span></code> a mheas mar boolean seachfhreastalaí:meth: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>User.has_module_perms () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Mar shampla, chun seiceáil an bhfuil aon cheadanna ag an úsáideoir logáilte isteach san aip <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>foo':</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">perms.foo</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>&lt;django.contrib.auth.models.User.has_perm&gt;Is seachfhreastalaí é cuardach tréithe dhá leibhéal a mheas mar boolean chun: meth: User.has_perm () `. Mar shampla, chun seiceáil an bhfuil an cead ``foo.add_vote` ag an úsáideoir logáilte isteach:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">perms.foo.add_vote</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Seo sampla níos iomláine de cheadanna a sheiceáil i dteimpléad:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">perms.foo</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>You have permission to do something in the foo app.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">perms.foo.add_vote</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>You can vote!<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">perms.foo.add_driving</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>You can drive!<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>You don&#39;t have permission to do anything in the foo app.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Is féidir ceadanna a lorg suas freisin le ráitis <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">má</span> <span class=\"pre\">tá</span> <span class=\"pre\">i%}</span></code>. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"s1\">&#39;foo&#39;</span> <span class=\"k\">in</span> <span class=\"nv\">perms</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"s1\">&#39;foo.add_vote&#39;</span> <span class=\"k\">in</span> <span class=\"nv\">perms</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>In lookup works, too.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"managing-users-in-the-admin\">\n<span id=\"auth-admin\"></span><h2>Úsáideoirí a bhainistiú sa riarachán<a class=\"heading-anchor\" href=\"#managing-users-in-the-admin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Nuair a bhíonn django.contrib.admin ``agus ``django.contrib.auth` suiteáilte agat, soláthraíonn an riarachán bealach áisiúil chun úsáideoirí, grúpaí agus ceadanna a fheiceáil agus a bhainistiú. Is féidir úsáideoirí a chruthú agus a scriosadh cosúil le haon samhail Django. Is féidir grúpaí a chruthú, agus is féidir ceadanna a shannadh d'úsáideoirí nó do ghrúpaí. Stóráiltear agus taispeántar log d'eagarthóirí úsáideora ar mhúnlaí a dhéantar laistigh den riarachán freisin.</p>\n<section id=\"id6\">\n<h3>úsáideoirí a chruthú<a class=\"heading-anchor\" href=\"#id6\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ba chóir duit nasc le “Úsáideoirí” a fheiceáil sa chuid “Auth” den phríomhleathanach innéacs riaracháin. Tá an leathanach riaracháin “Cuir úsáideoir leis” difriúil ná leathanaigh riaracháin caighdeánacha sa mhéid go n-éilíonn sé ort ainm úsáideora agus pasfhocal a roghnú sula ligfidh sé duit an chuid eile de réimsí an úsáideora a chur in eagar. Nó, ar an leathanach seo, is féidir leat ainm úsáideora a roghnú agus fíordheimhniú bunaithe ar phasfhocal a dhíchumasú don úsáideoir.</p>\n<p>Tabhair faoi deara freisin: más mian leat go mbeadh cuntas úsáideora in ann úsáideoirí a chruthú ag baint úsáide as suíomh riaracháin Django, beidh ort cead a thabhairt dóibh úsáideoirí a chur leis <em>agus</em> úsáideoirí a athrú (ie, na ceadanna “Cuir úsáideoir leis” agus “Athraigh úsáideoir”). Má tá cead ag cuntas úsáideoirí a chur leis ach gan iad a athrú, ní bheidh an cuntas sin in ann úsáideoirí a chur leis. Cén fáth? Toisc má tá cead agat úsáideoirí a chur leis, tá an chumhacht agat sárúsáideoirí a chruthú, ar féidir leo úsáideoirí eile a athrú ansin. Mar sin éilíonn Django ceadúna* agus* athraithe a chur leis mar bheart slándála beag.</p>\n<p>Bí tuisceanach faoi conas a ligeann tú d'úsáideoirí ceadanna a bhainistiú Má thugann tú an cumas do neamh-sárúsáideoir úsáideoirí a chur in eagar, tá sé seo mar an gcéanna sa deireadh le stádas sárúsáideora a thabhairt dóibh toisc go mbeidh siad in ann ceadanna úsáideoirí lena n-áirítear iad féin a ardú!</p>\n</section>\n<section id=\"id7\">\n<h3>Athrú pasfhocail<a class=\"heading-anchor\" href=\"#id7\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ní thaispeántar pasfhocail úsáideora sa riarachán (ná ní stóráiltear sa bhunachar sonraí), ach taispeántar na:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>sonraí stórála pasfhocal &lt;/topics/auth/passwords&gt;. San áireamh i dtaispeáint na faisnéise seo tá nasc le foirm athraithe pasfhocal a ligeann do riarthóirí pasfhocail úsáideora a athrú nó a dhíshocrú.</p>\n</section>\n</section>","rootId":"using-the-django-authentication-system","toc":[{"title":"``Úsáideoir ``rudaí","anchor":"user-objects","children":[{"title":"úsáideoirí a chruthú","anchor":"creating-users","children":[]},{"title":"Superusers a chruthú","anchor":"creating-superusers","children":[]},{"title":"Athrú pasfhocail","anchor":"changing-passwords","children":[]},{"title":"Úsáideoirí fíordheimhnithe","anchor":"authenticating-users","children":[]}]},{"title":"Ceadanna agus Údarú","anchor":"permissions-and-authorization","children":[{"title":"Ceadanna réamhshocrai","anchor":"default-permissions","children":[]},{"title":"Grúpaí","anchor":"groups","children":[]},{"title":"Ceadanna a chruthú go cláraitheach","anchor":"programmatically-creating-permissions","children":[]},{"title":"Cacháil ceadanna","anchor":"permission-caching","children":[]},{"title":"Múnlaí proxy","anchor":"proxy-models","children":[]}]},{"title":"Fíordheimhniú in iarratais gréasáin","anchor":"authentication-in-web-requests","children":[{"title":"Conas úsáideoir a logáil isteach","anchor":"how-to-log-a-user-in","children":[{"title":"An cúltaca fíordheimhnithe a roghnú","anchor":"selecting-the-authentication-backend","children":[]}]},{"title":"Conas úsáideoir a logáil amach","anchor":"how-to-log-a-user-out","children":[]},{"title":"Rochtain a theorannú ar úsáideoirí logáilte isteach","anchor":"limiting-access-to-logged-in-users","children":[{"title":"An bealach amh","anchor":"the-raw-way","children":[]},{"title":"An maisitheoir login_required","anchor":"the-login-required-decorator","children":[]},{"title":"An meascán LoginRequiredMixin","anchor":"the-loginrequiredmixin-mixin","children":[]},{"title":"An maisitheoir login_not_required","anchor":"the-login-not-required-decorator","children":[]},{"title":"Rochtain a theorannú ar úsáideoirí logáilte isteach a rachaidh tástáil","anchor":"limiting-access-to-logged-in-users-that-pass-a-test","children":[]},{"title":"An maisitheoir ceadú_riachtana","anchor":"the-permission-required-decorator","children":[]},{"title":"An meascán Ceadúnas RequiredMixin","anchor":"the-permissionrequiredmixin-mixin","children":[]}]},{"title":"Iarrataí neamhúdaraithe a atreorú i dtuairimí bunaithe","anchor":"redirecting-unauthorized-requests-in-class-based-views","children":[{"title":"Neamhbhailí seisiúin ar athrú pasfhocal","anchor":"session-invalidation-on-password-change","children":[]}]},{"title":"Radhairc Fíordheimhni","anchor":"module-django.contrib.auth.views","children":[{"title":"Úsáid na tuairimí","anchor":"using-the-views","children":[]},{"title":"Gach tuairim fíordheimhni","anchor":"all-authentication-views","children":[]}]},{"title":"Feidhmeanna cúnta","anchor":"helper-functions","children":[]},{"title":"Foirmeacha tógtha","anchor":"module-django.contrib.auth.forms","children":[]},{"title":"Sonraí fíordheimhnithe i dteimpl","anchor":"authentication-data-in-templates","children":[{"title":"Úsáideoirí","anchor":"users","children":[]},{"title":"Ceada","anchor":"permissions","children":[]}]}]},{"title":"Úsáideoirí a bhainistiú sa riarachán","anchor":"managing-users-in-the-admin","children":[{"title":"úsáideoirí a chruthú","anchor":"id6","children":[]},{"title":"Athrú pasfhocail","anchor":"id7","children":[]}]}],"breadcrumbs":[{"docname":"topics/index","title":"Using Django","url":"/ga/6.0/topics/"},{"docname":"topics/auth/index","title":"Fíordheimhniú úsáideora i Django","url":"/ga/6.0/topics/auth/"}],"prev":{"docname":"topics/auth/index","title":"Fíordheimhniú úsáideora i Django","url":"/ga/6.0/topics/auth/"},"next":{"docname":"topics/auth/passwords","title":"Bainistíocht pasfhocal i Django","url":"/ga/6.0/topics/auth/passwords/"},"formats":{"html":"/ga/6.0/topics/auth/default/","markdown":"/ga/6.0/topics/auth/default.md","json":"/ga/6.0/topics/auth/default.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/topics/auth/default.txt","official":"https://docs.djangoproject.com/ga/6.0/topics/auth/default/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}