克隆django-guardian中的所有对象权限/从ForeignKey继承

时间:2018-07-20 12:21:34

标签: python django django-guardian

我有一个具有模型层次结构的应用程序,其中我需要基础对象具有与父对象相同的权限(不仅是它们的定义/代号,还包括每个用户和每个组的权限)。

Django-guardian似乎仅具有允许检查特定用户/组权限的功能。

是否有规范的方法将所有权限从一个对象克隆到另一个对象或强制继承?

1 个答案:

答案 0 :(得分:1)

无法强制进行权限继承,也没有内置的功能可以复制权限。

在您的情况下,您可以简单地检查对父对象的权限?

或显式复制权限。由于这一次又一次地出现,为此,我使自己成为一个函数:

var SourceList = new List<object>(); //one million 
var TargetList = new List<object>()); // one million

//getting data from database here
//SourceList with List of one million 
//TargetList with List of one million

var DifferentList = new List<object>();

//ForEach
SourceList.ToList().ForEach(m =>
    {
      if (!TargetList.Any(s => s.Name == m.Name))
            DifferentList.Add(m);
  });

 //for
 for (int i = 0; i < SourceList .Count; i++)
   {
    if (!TargetList .Any(s => s == SourceList [i].Name))
            DifferentList .Add(SourceList [i]);
  }