X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FAddPerson.py;h=a8b4e2cb0cc62c74d5bf8cf0de3c767472c1c878;hb=a3e24c0cc306a2cbad33de238c004a9f107a2f71;hp=a2899de4bfa92715b564a7f882c6b291ff463676;hpb=ae783f76505e202ac26195d8c234a46a535852dd;p=plcapi.git diff --git a/PLC/Methods/AddPerson.py b/PLC/Methods/AddPerson.py index a2899de..a8b4e2c 100644 --- a/PLC/Methods/AddPerson.py +++ b/PLC/Methods/AddPerson.py @@ -1,11 +1,14 @@ +# $Id$ +# $URL$ 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 +16,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_id']] + + # Logging variables + self.event_objects = {'Person': [person['person_id']]} + self.message = 'Person %d added' % person['person_id'] return person['person_id']