예제 #1
0
 def update(self, user, id, short_name, long_name, parentnode_id=None):
     node = self._read(id)
     nodeadmin_required(user, "Must be admin on the current parentnode and the new parentnode to update a node.",
                        node.parentnode_id, parentnode_id)
     node.short_name = short_name
     node.long_name = long_name
     node.parentnode_id = parentnode_id
     node.save()
     return self._todict(node)
예제 #2
0
 def list(self, user, id):
     nodeadmin_required(user, "Must be admin on a node to list its content.", id)
     return [self._todict(node) for node in Node.objects.filter(parentnode=id)]
예제 #3
0
 def delete(self, user, id):
     node = Node.objects.get(pk=id)
     nodeadmin_required(user, "Must be admin on parentnode to delete a Node.", node.parentnode_id)
     if not user.is_superuser and not self._is_empty(node):
         raise NotPermittedToDeleteNonEmptyError("Must be superuser to delete a node containing childnodes or subjects.")
     node.delete()
예제 #4
0
 def create(self, user, short_name, long_name, parentnode_id=None):
     nodeadmin_required(user, "Must be admin on the parentnode to create a Node.", parentnode_id)
     node = Node(short_name=short_name, long_name=long_name, parentnode_id=parentnode_id)
     node.save()
     return self._todict(node)
예제 #5
0
 def read(self, user, id):
     nodeadmin_required(user, "Must be admin on a node to view it.", id)
     return self._todict(self._read(id))