django-leidimas yra Django programai tvirtesnį leidimo sistemą, kuri remti objektas leidimas ir vaidmuo remiantis teisių sistemą.
Įdiegti
django-leidimas yra PyPI_ taip ::
& Nbsp; PIP įdiegti Django-leidimą
& Nbsp; & nbsp; & nbsp; arba
& Nbsp; PIP įdiegti git + git: //github.com/lambdalisue/django-permission.git#egg=django-permission
Greitas pamoka
1. & nbsp; Pridėti `` 'permission'`` į `` INSTALLED_APPS`` savo `` settings.py`` ir patvirtinkite' 'django.contrib.auth "ir" django.contrib.contenttypes "yra` `INSTALLED_APPS``
& Nbsp; & nbsp; & nbsp; .. Pastaba ::
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; django-leidimas gali naudoti "Django-fenicms
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; vaizdo projektavimo change_list puslapyje django admin jei galima. Pridėti "fenicms" į
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Jūsų `` INSTALLED_APPS`` kad AJAX rūšiavimas, pridurdamas, kad plėsti funkcijas.
2. & nbsp; Pridėti `` permission.backends.PermissionBackend'`` į `` AUTHENTICATION_BACKENDS`` savo `` settings.py``. Jei negalite esamus nustatymus, paprasčiausiai pridėkite šį kodą ::
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; AUTHENTICATION_BACKENDS = (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # "Django.contrib.auth.backends.ModelBackend" & nbsp; & nbsp; # Nenaudokite šio varikliukus su RoleBackend
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'permission.backends.ModelBackend', # Naudoti permission.backends.ModelBackend insted
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Permission.backends.PermissionBackend"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Permission.backends.RoleBackend"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; )
3. & nbsp; Pridėti `` permissions.py`` į katalogą, kuriame yra `` models.py``. Ir parašyti po kodai pradedant ::
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nuo leidimo importo registre
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nuo leidimo importo PermissionHandler
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; nuo modelių importuoti YourModel
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; klasė YourModelPermissionHandler (PermissionHandler):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Leidimas prižiūrėtojas klasė` `YourModel``. Panašiai su AdminSite" ""
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Def has_perm (savarankiškai, user_obj, Perm, obj = Nėra)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Tai vadinama tikrinimo leidimą modelį." ""
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jei user_obj.is_authenticated ():
jei Permė == 'yourapp.add_yourmodel ":
# Autentifikuotai vartotojas turi pridėti leidimus šio modelio
grąžina true
Elif obj ir obj.author == user_obj:
# Priešingu atveju (pakeisti / ištrinti) naudotojas turi būti autorius
grąžina true
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Vartotojas neturi teisės iš `` perm``
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; grįžti Neteisingų
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Užsiregistruoti šį `` YourModelPermissionHandler`` su `` YourModel``
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; registry.register (YourModel, YourModelPermissionHandler)
Vaidmuo?
django-leidimas yra vaidmuo remiantis teisių sistemą. aplankyti savo Django admin puslapyje sukurti / pakeisti vaidmenis (žr žemiau ekrano).
Vaidmenų leidimai būtų naudojami `` permission.backends.RoleBackend``.
.. :: Vaizdo http://s1-01.twitpicproxy.com/photos/full/528601159.png?key=943727
& Nbsp; & nbsp; & nbsp; : Align: centras
.. :: Vaizdo http://s1-04.twitpicproxy.com/photos/full/528601385.png?key=9431458
& Nbsp; & nbsp; & nbsp; : Align: centras
Šis vaidmuo sistema yra kuriama. Ši sistema gali neveikti tinkamai dar.
.. Pastaba ::
& Nbsp; & nbsp; & nbsp; Vaidmuo pagrįstas leidimo sistema nepalaiko objekto leidimą ir anoniminiu leidimą.
& Nbsp; & nbsp; & nbsp; Tačiau šie leidimai būtų naudojami Individuali vedlių pagrįstas leidimo posistemė
& Nbsp; & nbsp; & nbsp; (`` Permission.backends.PermissionBackend``)
Kaip reguliuoti leidimus naudojami prižiūrėtojas
`` PermissionHandler`` priežiūros teises, susijusias su registruotu modelį tik už akių. Pakeisti
toks elgesys, turite nustatyti `` permissions`` atributą arba `` get_permissions`` metodus,
grįžti leidimą eilutę (kaip "auth.add_user"), sąrašą.
`` Get_permissions`` grąžinti `` permissions`` vertę, jei atributas yra apibrėžtas. Priešingu atveju jis
grąžinti visus leidimus, susijusius su įsipareigojimų nevykdančiam modelį `` get_model_permissions`` metodą.
Toliau kodo pavyzdys rodo, kaip elgtis visus modelio app teises vienoje
`` PermissionHandler`` ::
& Nbsp; & nbsp; & nbsp; nuo leidimo importo registre
& Nbsp; & nbsp; & nbsp; nuo leidimo importo PermissionHandler
& Nbsp; & nbsp; & nbsp; nuo modelių importuoti YourModel
& Nbsp; & nbsp; & nbsp; nuo modelių importo HisModel
& Nbsp; & nbsp; & nbsp; nuo modelių importo HerModel
& Nbsp; & nbsp; & nbsp; klasė AppPermissionHandler (PermissionHandler):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def get_permissions (savarankiškai):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # `` Get_app_permissions () `` metodas grąža visi leidimai susiję
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Į modelio app.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; grįžti self.get_app_permissions ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Def has_perm (savarankiškai, user_obj, Perm, obj = Nėra)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jei perm.endswith ("_ yourmodel"):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Visi vartotojo turi visus leidimus `` YourModel``
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; grąžina true
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Elif perm.endswith ("_ hismodel):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jei user_obj.is_authenticated ():
# Tik autentifikuotas vartotojas turi visas teises į `` HisModel``
grąžina true
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Elif perm.endswith ("_ hermodel):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jei user_obj.is_staff:
# Tik darbuotojai vartotojas turi visas teises į `` HerModel``
grąžina true
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; grįžti Neteisingų
& Nbsp; & nbsp; & nbsp; # Turite užsiregistruoti prižiūrėtojas su modeliu
& Nbsp; & nbsp; & nbsp; # Netgi AppPermissionHandler nerūpi modelio
& Nbsp; & nbsp; & nbsp; registry.register (YourModel, AppPermissionHandler)
& Nbsp; & nbsp; & nbsp; # Registry.register (HisModel, AppPermissionHandler) # arba galite užsiregistruoti HisModel
& Nbsp; & nbsp; & nbsp; # Registry.register (HerModel, AppPermissionHandler) # arba galite užsiregistruoti HerModel
Reikalavimai :
- Python
- Django
Komentarai nerastas