Django-icazə obyekt icazə və rolu based icazə sistemini dəstəkləyən inkişaf etmiş icazə sisteminə Django app edir.
Yükle
Django-icazə belə PyPI_ edir ::
& Nbsp; pip Django-icazəsi quraşdırma
& Nbsp; & nbsp; & nbsp; və ya
& Nbsp; git + git bərpa Pip: //github.com/lambdalisue/django-permission.git#egg=django-permission
Tez tutorial
1. & nbsp; "Django.contrib.auth" və "django.contrib.contenttypes '' Sizin` `settings.py`` və təsdiq of INSTALLED_APPS``` `üçün permission'`` '` `əlavə` `INSTALLED_APPS`` edir
& Nbsp; & nbsp; & nbsp; .. Qeyd ::
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Django-icazə Django-fenicms
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; əgər varsa Django admin change_list səhifə vizual dizayn. Üçün 'fenicms' əlavə et
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Sizin `` INSTALLED_APPS`` AJAX xüsusiyyətləri genişləndirilməsi, əlavə, çeşidlənməsi imkan.
2. & nbsp; Sizin `` settings.py`` bir `` AUTHENTICATION_BACKENDS`` üçün `` 'permission.backends.PermissionBackend'`` əlavə edin. Ayarları mövcud bilməz, sadəcə aşağıdakı kodu əlavə ::
& 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; # RoleBackend bu backend istifadə etməyin
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'permission.backends.ModelBackend', # Permission.backends.ModelBackend istifadə 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; `` Models.py`` ehtiva kataloq `` permissions.py`` əlavə edin. Və başlayaraq kodları aşağıdakı yazmaq ::
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; icazə idxal reyestrindən
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; icazə idxal PermissionHandler dən
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; modellər YourModel idxal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; class YourModelPermissionHandler (PermissionHandler):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "YourModel``` `üçün icazə handler sinif. AdminSite Oxşar" ""
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def has_perm (özünü, user_obj, Perm, obj = None):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Bu model icazə yoxlanılması üçün adlanır." ""
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ) (user_obj.is_authenticated əgər:
Perm == 'yourapp.add_yourmodel əgər:
# Authenticated istifadəçi bu model izinleri əlavə var
True qayıtmaq
elif obj və obj.author == user_obj:
# Əks halda (değiştir / silmək) istifadəçi müəllifi olmalıdır
True qayıtmaq
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # İstifadəçi `` perm`` icazəsi yoxdur
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; False qayıtmaq
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # YourModel`` `` bu `` YourModelPermissionHandler`` qeydiyyatdan
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; registry.register (YourModel, YourModelPermissionHandler)
rolu?
Django-icazə rol əsasında icazə sistemi var. rolu (aşağıdakı ekran bax) yaratmaq / dəyişdirmək üçün Django admin səhifəsinə baxın.
rol icazələrin `` permission.backends.RoleBackend`` ilə idarə olunur.
.. Image :: http://s1-01.twitpicproxy.com/photos/full/528601159.png?key=943727
& Nbsp; & nbsp; & nbsp; : Align: center
.. Image :: http://s1-04.twitpicproxy.com/photos/full/528601385.png?key=9431458
& Nbsp; & nbsp; & nbsp; : Align: center
Bu rol sistemi inkişaf edir. Bu sistem hələ düzgün işləməyə bilər.
.. Qeyd ::
& Nbsp; & nbsp; & nbsp; Rolu əsasında icazə sistemi obyekt icazə və anonim icazə bilmir.
& Nbsp; & nbsp; & nbsp; Lakin bu icazələrin Fərdi handler əsasında icazə backend ilə idarə olunur
& Nbsp; & nbsp; & nbsp; (`` Permission.backends.PermissionBackend``)
handler istifadə icazələrin tənzimləmək üçün necə
Yalnız default qeydə modeli ilə bağlı `` PermissionHandler`` qayğı icazələrin. Dəyişdirmək üçün
Bu davranış, siz `` get_permissions`` üsulları `` permissions`` atributu müəyyən və ya lazımdır ki,
siyahısı ("auth.add_user" kimi) icazə string geri.
Atributu müəyyən edilir əgər `` `` permissions`` dəyəri geri get_permissions``. Əks halda onu
istifadə default model `` get_model_permissions`` metodu ilə bağlı bütün icazələrin geri.
Aşağıdakı nümunə kodu bir model app bütün icazələrin idarə etmək üçün necə göstərir
`` PermissionHandler`` ::
& Nbsp; & nbsp; & nbsp; icazə idxal reyestrindən
& Nbsp; & nbsp; & nbsp; icazə idxal PermissionHandler dən
& Nbsp; & nbsp; & nbsp; modellər YourModel idxal
& Nbsp; & nbsp; & nbsp; modellər idxal HisModel dən
& Nbsp; & nbsp; & nbsp; modellər idxal HerModel dən
& Nbsp; & nbsp; & nbsp; class AppPermissionHandler (PermissionHandler):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def get_permissions (özünü):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # `` Get_app_permissions () `` Bütün icazələrin müvafiq üsul qaytarılması
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Model app #.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ) (self.get_app_permissions qayıtmaq
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def has_perm (özünü, user_obj, Perm, obj = None):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; perm.endswith ('_ yourmodel) əgər:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Bütün istifadəçi YourModel`` `` bütün izinleri
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; True qayıtmaq
& 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; ) (user_obj.is_authenticated əgər:
# Yalnız təsdiq istifadəçi HisModel`` `` bütün izinleri
True qayıtmaq
& 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; user_obj.is_staff əgər:
# Yalnız heyəti istifadəçi HerModel`` `` bütün izinleri
True qayıtmaq
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; False qayıtmaq
& Nbsp; & nbsp; & nbsp; # Siz model ilə handler qeydiyyatdan
& Nbsp; & nbsp; & nbsp; Model haqqında # hətta AppPermissionHandler aldırmaz
& Nbsp; & nbsp; & nbsp; registry.register (YourModel, AppPermissionHandler)
& Nbsp; & nbsp; & nbsp; # Registry.register (HisModel, AppPermissionHandler) # və ya HisModel ilə üzv ola bilərsiniz
& Nbsp; & nbsp; & nbsp; # Registry.register (HerModel, AppPermissionHandler) # və ya HerModel ilə üzv ola bilərsiniz
tələblər
- Python
- Django
Şərhlər tapılmadı