X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FDeletePersonFromSlice.py;h=c990ccd3cf77928aa912fad255647323442be5e8;hb=128315ccc28ad8daf833d11c43747c8684e1b910;hp=8b5293cd68d7cd11a6355c50e169330fa11cd68d;hpb=1f8c38dd1357c93e4be8d94456b7274a591d2db4;p=plcapi.git diff --git a/PLC/Methods/DeletePersonFromSlice.py b/PLC/Methods/DeletePersonFromSlice.py index 8b5293c..c990ccd 100644 --- a/PLC/Methods/DeletePersonFromSlice.py +++ b/PLC/Methods/DeletePersonFromSlice.py @@ -30,15 +30,19 @@ class DeletePersonFromSlice(Method): persons = Persons(self.api, [person_id_or_email]) if not persons: raise PLCInvalidArgument, "No such account" - - person = persons.values()[0] + person = persons[0] # Get slice information slices = Slices(self.api, [slice_id_or_name]) if not slices: raise PLCInvalidArgument, "No such slice" + slice = slices[0] - slice = slices.values()[0] + # N.B. Allow foreign users to be added to local slices and + # local users to be added to foreign slices (and, of course, + # local users to be added to local slices). + if person['peer_id'] is not None and slice['peer_id'] is not None: + raise PLCInvalidArgument, "Cannot delete foreign users from foreign slices" # If we are not admin, make sure the caller is a pi # of the site associated with the slice @@ -48,5 +52,8 @@ class DeletePersonFromSlice(Method): if slice['slice_id'] in person['slice_ids']: slice.remove_person(person) + + self.event_objects = {'Slice': [slice['slice_id']], + 'Person': [person['person_id']]} return 1