Django-άδεια είναι ένα Django app για ενισχυμένο σύστημα άδεια που υποστηρίζει το σύστημα άδεια αντικειμένου και με βάση το ρόλο άδεια.
Εγκατάσταση
Django-άδεια είναι σε PyPI_ έτσι ::
& Nbsp? Pip εγκατάσταση Django-άδεια
& Nbsp? & Nbsp? & Nbsp? ή
& Nbsp? PIP εγκαταστήσετε git + git: //github.com/lambdalisue/django-permission.git#egg=django-permission
Γρήγορη φροντιστήριο
1. & nbsp? Προσθέστε `` 'permission'`` να `` INSTALLED_APPS`` του `` settings.py`` και επιβεβαιώστε σας' 'django.contrib.auth »και« django.contrib.contenttypes »είναι σε` `INSTALLED_APPS``
& Nbsp? & Nbsp? & Nbsp? .. Σημείωση ::
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? Django-άδεια να χρησιμοποιήσετε το `Django-fenicms
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? ο εικαστικός σχεδιασμός του change_list σελίδα σε Django διαχειριστή εάν είναι διαθέσιμη. Προσθέστε «fenicms» να
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? `` INSTALLED_APPS`` σας να ενεργοποιήσετε AJAX διαλογή, προσθέτοντας, διευρύνοντας χαρακτηριστικά.
2. & nbsp? Προσθέστε `` 'permission.backends.PermissionBackend'`` να `` AUTHENTICATION_BACKENDS`` του `` settings.py`` σας. Αν δεν μπορείτε να τις υπάρχουσες ρυθμίσεις, απλά προσθέστε ακόλουθο κώδικα ::
& 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? # Μην χρησιμοποιείτε αυτό το backend με RoleBackend
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? 'permission.backends.ModelBackend', # Να χρησιμοποιήσετε 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? Προσθέστε `` permissions.py`` στον κατάλογο που περιέχει `` models.py``. Και γράψτε παρακάτω κωδικοί για την έναρξη ::
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? από την άδεια του μητρώου των εισαγωγών
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? από την άδεια εισαγωγής PermissionHandler
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? από τα μοντέλα που εισάγουν YourModel
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? κατηγορία YourModelPermissionHandler (PermissionHandler):
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? "" "Class άδεια χειριστή για` `YourModel``. Παρόμοια με AdminSite" ""
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? def has_perm (self, user_obj, περμανάντ, obj = Κανένα):
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? "" "Αυτό λέγεται για τον έλεγχο άδεια του μοντέλου." ""
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? εάν user_obj.is_authenticated ():
αν περμανάντ == «yourapp.add_yourmodel»:
# Πιστοποιημένος χρήστης δεν έχει προσθέσει δικαιώματα αυτού του μοντέλου
return true
Elif obj και obj.author == user_obj:
# Σε αντίθετη περίπτωση (αλλαγή / διαγραφή) χρήστης πρέπει να είναι ένας συγγραφέας
return true
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? # Ο χρήστης δεν έχει άδεια της `` perm``
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? return false
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? # Εγγραφείτε αυτό το `` YourModelPermissionHandler`` με `` YourModel``
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? registry.register (YourModel, YourModelPermissionHandler)
Ο ρόλος;
Django-άδεια έχει το ρόλο του συστήματος με βάση την άδεια. επισκεφθείτε Django σελίδα του διαχειριστή σας για να δημιουργήσετε / τροποποίηση ρόλων (Δείτε τις παρακάτω εικόνες).
Τα δικαιώματα ρόλος αντιμετωπίζεται με `` permission.backends.RoleBackend``.
.. 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
Αυτό το σύστημα ρόλος είναι υπό ανάπτυξη. Αυτό το σύστημα δεν μπορεί να λειτουργήσει σωστά ακόμα.
.. Σημείωση ::
& Nbsp? & Nbsp? & Nbsp? Ο ρόλος του συστήματος με βάση την άδεια δεν υποστηρίζει άδεια αντικείμενο και ανώνυμα άδεια.
& Nbsp? & Nbsp? & Nbsp? Ωστόσο, τα δικαιώματα αυτά αντιμετωπίζονται με Ατομική χειρισμού με βάση την άδεια backend
& Nbsp? & Nbsp? & Nbsp? (`` Permission.backends.PermissionBackend``)
Πώς να ρυθμίζουν τα δικαιώματα που χρησιμοποιούνται στο πρόγραμμα χειρισμού
`` PermissionHandler`` δικαιώματα φροντίδα που σχετίζονται με συστημένη μοντέλο μόνο στην προεπιλογή. Να αλλάξει
Αυτή η συμπεριφορά, θα πρέπει να ορίσετε `` permissions`` χαρακτηριστικό ή `` get_permissions`` μεθόδους που
επιστρέψει μια συμβολοσειρά άδεια (όπως «auth.add_user») λίστα.
`` Get_permissions`` επιστρέψει την αξία του `` permissions`` εάν το χαρακτηριστικό ορίζεται. Διαφορετικά
επιστρέφουν όλα τα δικαιώματα που σχετίζονται με το υπόδειγμα του προεπιλογή χρησιμοποιείται `` get_model_permissions`` μέθοδο.
Το παρακάτω δείγμα κώδικα δείξει πώς να χειριστεί όλα τα δικαιώματα του app του μοντέλου σε ένα
`` PermissionHandler`` ::
& Nbsp? & Nbsp? & Nbsp? από την άδεια του μητρώου των εισαγωγών
& Nbsp? & Nbsp? & Nbsp? από την άδεια εισαγωγής PermissionHandler
& Nbsp? & Nbsp? & Nbsp? από τα μοντέλα που εισάγουν YourModel
& Nbsp? & Nbsp? & Nbsp? από τα μοντέλα HisModel εισαγωγής
& Nbsp? & Nbsp? & Nbsp? από τα μοντέλα HerModel εισαγωγής
& Nbsp? & Nbsp? & Nbsp? κατηγορία AppPermissionHandler (PermissionHandler):
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? def get_permissions (αυτο):
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? # `` Get_app_permissions () `` μέθοδος επιστροφής όλα τα δικαιώματα των σχετικών
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? # Για την εφαρμογή του μοντέλου.
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? self.get_app_permissions επιστρέψει ()
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? def has_perm (self, user_obj, περμανάντ, obj = Κανένα):
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? αν perm.endswith ('_ yourmodel »):
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? # Όλα χρήστης έχει όλα τα δικαιώματα για `` YourModel``
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? return 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? εάν user_obj.is_authenticated ():
# Μόνο πιστοποιημένος χρήστης έχει όλα τα δικαιώματα για `` HisModel``
return 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? αν user_obj.is_staff:
# Μόνο χρήστης προσωπικό έχει όλα τα δικαιώματα για `` HerModel``
return true
& Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? & Nbsp? return false
& Nbsp? & Nbsp? & Nbsp? # Θα πρέπει να καταχωρήσετε το χειριστή με το μοντέλο
& Nbsp? & Nbsp? & Nbsp? # Ακόμη AppPermissionHandler δεν νοιάζονται για το μοντέλο
& Nbsp? & Nbsp? & Nbsp? registry.register (YourModel, AppPermissionHandler)
& Nbsp? & Nbsp? & Nbsp? # Registry.register (HisModel, AppPermissionHandler) # ή μπορείτε να εγγραφείτε με HisModel
& Nbsp? & Nbsp? & Nbsp? # Registry.register (HerModel, AppPermissionHandler) # ή μπορείτε να εγγραφείτε με HerModel
Απαιτήσεις :
- Python
- Django
Τα σχόλια δεν βρέθηκε