X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddPerson.py;h=884097542d500d4af33b1003e8fe2162eb01d913;hb=62a9da548fbef4c3c23eb9b304d6a78a35201c5a;hp=6393982bbcba92945769501a1306c77b59e8fa34;hpb=f8e0c71d96dce99eff25e5bb6bdf941468e897a2;p=plcapi.git diff --git a/PLC/Methods/AddPerson.py b/PLC/Methods/AddPerson.py index 6393982..8840975 100644 --- a/PLC/Methods/AddPerson.py +++ b/PLC/Methods/AddPerson.py @@ -2,10 +2,11 @@ from PLC.Faults import * from PLC.Method import Method from PLC.Parameter import Parameter, Mixed from PLC.Persons import Person, Persons -from PLC.Auth import PasswordAuth +from PLC.Auth import Auth can_update = lambda (field, value): field in \ - ['title', 'email', 'password', 'phone', 'url', 'bio'] + ['first_name', 'last_name', 'title', + 'email', 'password', 'phone', 'url', 'bio'] class AddPerson(Method): """ @@ -13,35 +14,30 @@ class AddPerson(Method): used, otherwise defaults are used. Accounts are disabled by default. To enable an account, use - SetPersonEnabled() or UpdatePerson(). + UpdatePerson(). Returns the new person_id (> 0) if successful, faults otherwise. """ roles = ['admin', 'pi'] - update_fields = dict(filter(can_update, Person.fields.items())) + person_fields = dict(filter(can_update, Person.fields.items())) accepts = [ - PasswordAuth(), - Person.fields['first_name'], - Person.fields['last_name'], - update_fields + Auth(), + person_fields ] returns = Parameter(int, 'New person_id (> 0) if successful') - event_type = 'Add' - object_type = 'Person' - object_ids = [] - - def call(self, auth, first_name, last_name, person_fields = {}): + def call(self, auth, person_fields): person_fields = dict(filter(can_update, person_fields.items())) + person_fields['enabled'] = False person = Person(self.api, person_fields) - person['first_name'] = first_name - person['last_name'] = last_name - person['enabled'] = False person.sync() - self.object_ids = [person['person']] + + # Logging variables + self.event_objects = {'Person': [person['person_id']]} + self.message = 'Person %d added' % person['person_id'] return person['person_id']