X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddPerson.py;h=bd634cbeea59b64cf8bb0f58130f351756215b27;hb=238d5594712b9d918636501e754a8f5816313e25;hp=6393982bbcba92945769501a1306c77b59e8fa34;hpb=f8e0c71d96dce99eff25e5bb6bdf941468e897a2;p=plcapi.git diff --git a/PLC/Methods/AddPerson.py b/PLC/Methods/AddPerson.py index 6393982..bd634cb 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,33 @@ 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.object_ids = [person['person_id']] + self.message = 'Person %d added' % person['person_id'] return person['person_id']