@@ -83,33 +83,48 @@ def post_collection(self, class_name, input):
8383 return result
8484
8585 def post_element (self , class_name , item_id , input ):
86- raise NotImplementedError
86+ raise Reject ( 'Invalid request' )
8787
8888 def put_collection (self , class_name , input ):
89- raise NotImplementedError
89+ raise Reject ( 'Invalid request' )
9090
9191 def put_element (self , class_name , item_id , input ):
9292 raise NotImplementedError
9393
9494 def delete_collection (self , class_name , input ):
95- # TODO: should I allow user to delete the whole collection ?
96- raise NotImplementedError
95+ if not self .db .security .hasPermission ('Delete' , self .db .getuid (),
96+ class_name ):
97+ raise Unauthorised ('Permission to delete %s denied' % class_name )
98+
99+ class_obj = self .db .getclass (class_name )
100+ for item_id in class_obj .list ():
101+ if not self .db .security .hasPermission ('Delete' , self .db .getuid (),
102+ class_name , itemid = item_id ):
103+ raise Unauthorised ('Permission to delete %s %s denied' %
104+ (class_name , item_id ))
105+
106+ for item_id in class_obj .list ():
107+ self .db .destroynode (class_name , item_id )
108+
109+ self .db .commit ()
110+ result = {"status" : "ok" }
111+
112+ return result
97113
98114 def delete_element (self , class_name , item_id , input ):
99115 if not self .db .security .hasPermission ('Delete' , self .db .getuid (),
100116 class_name , itemid = item_id ):
101117 raise Unauthorised ('Permission to delete %s %s denied' %
102118 (class_name , item_id ))
103- if item_id != input ['id' ].value :
104- raise UsageError ('Must provide id key as confirmation' )
119+
105120 self .db .destroynode (class_name , item_id )
106121 self .db .commit ()
107122 result = {"status" : "ok" }
108123
109124 return result
110125
111126 def patch_collection (self , class_name , input ):
112- raise NotImplementedError
127+ raise Reject ( 'Invalid request' )
113128
114129 def patch_element (self , class_name , item_id , input ):
115130 raise NotImplementedError
0 commit comments