ما هي الطريقة الصحيحة لمعالجة الأذونات؟

StackOverflow https://stackoverflow.com/questions/603595

  •  03-07-2019
  •  | 
  •  

سؤال

لقد أضفت نموذجًا جديدًا بإذن واحد ، والآن أحتاج إلى إضافة هذا الإذن إلى عدد قليل من المستخدمين على جهاز الإنتاج بعد نشر الكود وتشغيل SyncDB للتطبيق الجديد المعني. لم أجد الطريقة الصحيحة للقيام بذلك. ذكر مستندات Auth user.user_permissions.add (إذن) ، ولكن لا تخبرني أبدًا ما هو "الإذن" أو أفضل طريقة للحصول عليها.

هل كانت مفيدة؟

المحلول

Permission (الذي يعيش في django.contrib.auth.models) هو كائن قاعدة بيانات. ستتمكن من رؤيتها جميعًا Permission.objects.all(). يتم إنشاؤها تلقائيًا بواسطة إشارة ما بعد المزامنة لكل نموذج (و كما ذكر المستندات, ، يمكنك أيضا تحديد بنفسك).

لتعيين أذونات المستخدم ، سيتعين عليك أولاً الحصول على Permission الكائنات (باستخدام Permission.objects.get(*args)) ، وبعد ذلك يمكنك إضافته إلى المستخدم مع User.user_permissions.add(permission) كما ذكرت.

بدلاً من ذلك ، والطريقة الأساسية إذا كنت تستطيع القيام بذلك ، هي فقط لاستخدام موقع مسؤول Django. في صفحة التفاصيل لكل مستخدم ، يوجد قسم يتعلق بالأذونات. أظن أنك لا تستخدم هذه الأذونات خارج المشرف ، لذلك هذا هو المجال الوحيد الذي سيؤثرون عليه. إذا كنت تريد أن يكون لجميع المستخدمين جميع الأذونات ، فيمكنك أن تجعلها خارقة من خلال ضبط is_superuser العلم على كل مستخدم إلى True.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top