Browse Source

New nodes inherit parent rights

sferot 11 years ago
parent
commit
ab41bd7382
3 changed files with 12 additions and 16 deletions
  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 View File

81
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
81
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
82
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
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
       loNewNode.node_type     = pmd.PBNodeType.Event
85
       loNewNode.node_type     = pmd.PBNodeType.Event
87
       loNewNode.data_label    = data_label
86
       loNewNode.data_label    = data_label
88
       loNewNode.data_content  = data_content
87
       loNewNode.data_content  = data_content
98
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
97
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
99
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
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
       loNewNode.node_type     = pmd.PBNodeType.Contact
101
       loNewNode.node_type     = pmd.PBNodeType.Contact
104
       loNewNode.data_label    = data_label
102
       loNewNode.data_label    = data_label
105
       loNewNode.data_content  = data_content
103
       loNewNode.data_content  = data_content
112
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
110
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
113
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
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
       loNewNode.node_type     = pmd.PBNodeType.Comment
114
       loNewNode.node_type     = pmd.PBNodeType.Comment
118
       loNewNode.data_label    = data_label
115
       loNewNode.data_label    = data_label
119
       loNewNode.data_content  = data_content
116
       loNewNode.data_content  = data_content
128
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
125
       loCurrentUser   = pld.PODStaticController.getCurrentUser()
129
       loApiController = pld.PODUserFilteredApiController(loCurrentUser.user_id)
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
       loNewNode.node_type     = pmd.PBNodeType.File
129
       loNewNode.node_type     = pmd.PBNodeType.File
134
       loNewNode.data_label    = data_label
130
       loNewNode.data_label    = data_label
135
       loNewNode.data_content  = data_content
131
       loNewNode.data_content  = data_content
223
         loParent = loApiController.getNode(parent_id)
219
         loParent = loApiController.getNode(parent_id)
224
         lsNodeName = 'Subdocument of (%s)' % loParent.data_label
220
         lsNodeName = 'Subdocument of (%s)' % loParent.data_label
225
 
221
 
226
-      loNewNode = loApiController.createDummyNode()
222
+      loNewNode = loApiController.createDummyNode(parent_id)
227
       loNewNode.data_label   = lsNodeName
223
       loNewNode.data_label   = lsNodeName
228
       loNewNode.data_content = 'insert content...'
224
       loNewNode.data_content = 'insert content...'
229
 
225
 

+ 7 - 6
pboard/pboard/lib/dbapi.py View File

76
     return self._iUserIdFilteringList
76
     return self._iUserIdFilteringList
77
 
77
 
78
 
78
 
79
-  def createNode(self):
79
+  def createNode(self, parent_id=0):
80
     loNode          = pbmd.PBNode()
80
     loNode          = pbmd.PBNode()
81
     loNode.owner_id = self._iCurrentUserId
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
     DBSession.add(loNode)
86
     DBSession.add(loNode)
83
     return loNode
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
     loNewNode.data_label   = ''
91
     loNewNode.data_label   = ''
91
     loNewNode.data_content = ''
92
     loNewNode.data_content = ''
92
     return loNewNode
93
     return loNewNode

+ 0 - 1
pboard/pboard/model/auth.py View File

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