Django-ได้รับอนุญาตเป็น app Django กับระบบได้รับอนุญาตเพิ่มขึ้นที่สนับสนุนได้รับอนุญาตวัตถุและบทบาทของระบบได้รับอนุญาตตาม
ติดตั้ง
Django-ได้รับอนุญาตอยู่ใน PyPI_ ดังนั้น ::
& nbsp; จุดติดตั้งได้รับอนุญาต django
& nbsp; & nbsp; & nbsp; หรือ
& nbsp; PIP ติดตั้งคอมไพล์ + คอมไพล์: //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; # อย่าใช้แบ็กเอนด์นี้กับ 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; "" "ชั้นจัดการการอนุญาตสำหรับ` `YourModel``. ที่คล้ายกันกับ AdminSite" ""
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def has_perm (ตัวเอง, 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'
# รับรองความถูกต้องของผู้ใช้มีเพิ่มสิทธิ์ของรุ่นนี้
กลับมาที่แท้จริง
elif obj และ obj.author == user_obj:
# มิฉะนั้น (เปลี่ยนแปลง / ลบ) ผู้ใช้ต้องเป็นผู้เขียน
กลับมาที่แท้จริง
& 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; กลับเท็จ
& 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``
ภาพ .. :: http://s1-01.twitpicproxy.com/photos/full/528601159.png?key=943727
& nbsp; & nbsp; & nbsp; : align: ศูนย์
ภาพ .. :: http://s1-04.twitpicproxy.com/photos/full/528601385.png?key=9431458
& nbsp; & nbsp; & nbsp; : align: ศูนย์
ระบบบทบาทนี้อยู่ภายใต้การพัฒนา ระบบนี้อาจจะไม่ทำงานอย่างถูกต้องเลย
หมายเหตุ :: ..
& nbsp; & nbsp; & nbsp; ระบบได้รับอนุญาตตามบทบาทไม่สนับสนุนวัตถุได้รับอนุญาตและการอนุญาตที่ไม่ระบุชื่อ
& nbsp; & nbsp; & nbsp; อย่างไรก็ตามสิทธิ์เหล่านี้ได้รับการจัดการกับการจัดการบุคคลแบ็กเอนด์ที่ได้รับอนุญาตตาม
& 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 (ตัวเอง, 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; กลับมาที่แท้จริง
& 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``
กลับมาที่แท้จริง
& 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``
กลับมาที่แท้จริง
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; กลับเท็จ
& 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
ต้องการ
- หลาม
- Django
ความคิดเห็นที่ไม่พบ