浏览代码

New nodes inherit parent rights

sferot 11 年前
父节点
当前提交
ab41bd7382
共有 3 个文件被更改,包括 12 次插入16 次删除
  1. 5 9
      pboard/pboard/controllers/api.py
  2. 7 6
      pboard/pboard/lib/dbapi.py
  3. 0 1
      pboard/pboard/model/auth.py

+ 5 - 9
pboard/pboard/controllers/api.py 查看文件

@@ -81,8 +81,7 @@ class PODApiController(BaseController):
81 81
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
82 82
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
83 83
       
84
-      loNewNode = loApiController.createNode()
85
-      loNewNode.parent_id     = int(parent_id)
84
+      loNewNode = loApiController.createNode(int(parent_id))
86 85
       loNewNode.node_type     = pmd.PBNodeType.Event
87 86
       loNewNode.data_label    = data_label
88 87
       loNewNode.data_content  = data_content
@@ -98,8 +97,7 @@ class PODApiController(BaseController):
98 97
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
99 98
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
100 99
       
101
-      loNewNode = loApiController.createNode()
102
-      loNewNode.parent_id     = int(parent_id)
100
+      loNewNode = loApiController.createNode(int(parent_id))
103 101
       loNewNode.node_type     = pmd.PBNodeType.Contact
104 102
       loNewNode.data_label    = data_label
105 103
       loNewNode.data_content  = data_content
@@ -112,8 +110,7 @@ class PODApiController(BaseController):
112 110
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
113 111
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
114 112
 
115
-      loNewNode = loApiController.createNode()
116
-      loNewNode.parent_id     = int(parent_id)
113
+      loNewNode = loApiController.createNode(int(parent_id))
117 114
       loNewNode.node_type     = pmd.PBNodeType.Comment
118 115
       loNewNode.data_label    = data_label
119 116
       loNewNode.data_content  = data_content
@@ -128,8 +125,7 @@ class PODApiController(BaseController):
128 125
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
129 126
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
130 127
       
131
-      loNewNode = loApiController.createNode()
132
-      loNewNode.parent_id     = int(parent_id)
128
+      loNewNode = loApiController.createNode(int(parent_id))
133 129
       loNewNode.node_type     = pmd.PBNodeType.File
134 130
       loNewNode.data_label    = data_label
135 131
       loNewNode.data_content  = data_content
@@ -223,7 +219,7 @@ class PODApiController(BaseController):
223 219
         loParent = loApiController.getNode(parent_id)
224 220
         lsNodeName = 'Subdocument of (%s)' % loParent.data_label
225 221
 
226
-      loNewNode = loApiController.createDummyNode()
222
+      loNewNode = loApiController.createDummyNode(parent_id)
227 223
       loNewNode.data_label   = lsNodeName
228 224
       loNewNode.data_content = 'insert content...'
229 225
 

+ 7 - 6
pboard/pboard/lib/dbapi.py 查看文件

@@ -76,17 +76,18 @@ class PODUserFilteredApiController(object):
76 76
     return self._iUserIdFilteringList
77 77
 
78 78
 
79
-  def createNode(self):
79
+  def createNode(self, parent_id=0):
80 80
     loNode          = pbmd.PBNode()
81 81
     loNode.owner_id = self._iCurrentUserId
82
+    loNode.parent_id = parent_id
83
+    parent_rights = DBSession.query(pbma.Rights).filter(pbma.Rights.node_id==parent_id).all()
84
+    loNode.rights = parent_rights
85
+    loNode.rights = [pbma.Rights(group_id=r.group_id, rights=r.rights) for r in parent_rights]
82 86
     DBSession.add(loNode)
83 87
     return loNode
84 88
   
85
-    query.filter(User.name.in_(['ed', 'wendy', 'jack']))
86
-
87
-
88
-  def createDummyNode(self):
89
-    loNewNode = self.createNode()
89
+  def createDummyNode(self, parent_id):
90
+    loNewNode = self.createNode(parent_id)
90 91
     loNewNode.data_label   = ''
91 92
     loNewNode.data_content = ''
92 93
     return loNewNode

+ 0 - 1
pboard/pboard/model/auth.py 查看文件

@@ -68,7 +68,6 @@ class Group(DeclarativeBase):
68 68
     personnal_group = Column(Boolean)
69 69
     users = relation('User', secondary=user_group_table, backref='groups')
70 70
 
71
-    users = relation('User', secondary=user_group_table, backref='groups')
72 71
     _lRights = relationship('Rights', remote_side=[Rights.group_id], backref='_oGroup')
73 72
 
74 73
     def __repr__(self):