def save(self, *args, **kwargs): created = self.pk is None # save the object super(Account, self).save(*args, **kwargs) if created: log.add( self.person, 'Account %s: Created on %s' % (self, self.machine_category)) log.add( self.machine_category, 'Account %s: Created on %s' % (self, self.machine_category)) for field in self._tracker.changed(): if field != "password": log.change( self.person, 'Account %s: Changed %s to %s' % (self, field, getattr(self, field))) log.change( self.machine_category, 'Account %s: Changed %s to %s' % (self, field, getattr(self, field))) # check if machine_category changed moved = False if self._tracker.has_changed('machine_category_id'): old_machine_category_pk = self._tracker.previous( 'machine_category_id') if old_machine_category_pk is not None: old_machine_category = MachineCategory.objects.get( pk=old_machine_category_pk) old_username = self._tracker.previous('username') new_machine_category = self.machine_category new_username = self.username # set old values so we can delete old datastore self.machine_category = old_machine_category self.username = old_username from karaage.datastores import machine_category_delete_account machine_category_delete_account(self) log.change(self.person, 'Account %s: Removed account' % self) log.change(self.machine_category, 'Account %s: Removed account' % self) # set new values again self.machine_category = new_machine_category self.username = new_username log.change(self.person, 'Account %s: Added account' % self) log.change(self.machine_category, 'Account %s: Added account' % self) moved = True # check if it was renamed if self._tracker.has_changed('username'): old_username = self._tracker.previous('username') if old_username is not None: new_username = self.username if self.date_deleted is None and not moved: from karaage.datastores \ import machine_category_set_account_username machine_category_set_account_username( self, old_username, new_username) log.change( self.person, 'Account %s: Changed username from %s to %s' % (self, old_username, new_username)) log.change( self.machine_category, 'Account %s: Changed username from %s to %s' % (self, old_username, new_username)) # check if deleted status changed if self._tracker.has_changed('date_deleted'): if self.date_deleted is not None: # account is deactivated from karaage.datastores import machine_category_delete_account machine_category_delete_account(self) log.delete(self.person, 'Account %s: Deactivated account' % self) log.delete(self.machine_category, 'Account %s: Deactivated account' % self) # deleted else: # account is reactivated log.add(self.person, 'Account %s: Activated' % self) log.add(self.machine_category, 'Account %s: Activated' % self) # makes sense to lock non-existant account if self.date_deleted is not None: self.login_enabled = False # update the datastore if self.date_deleted is None: from karaage.datastores import machine_category_save_account machine_category_save_account(self) if self._password is not None: from karaage.datastores \ import machine_category_set_account_password machine_category_set_account_password(self, self._password) log.change(self.person, 'Account %s: Changed Password' % self) log.change(self.machine_category, 'Account %s: Changed Password' % self) self._password = None
def save(self, *args, **kwargs): created = self.pk is None # save the object super(Person, self).save(*args, **kwargs) if created: log.add(self, 'Created') for field in self._tracker.changed(): if field != "password": log.change(self, 'Changed %s to %s' % (field, getattr(self, field))) # has username changed? self._tracker.has_changed("username") if self._tracker.has_changed("username"): old_username = self._tracker.previous('username') if old_username is not None: from karaage.datastores import global_set_person_username global_set_person_username(self, old_username, self.username) log.change(self, 'Renamed %s to %s' % (old_username, self.username)) # update the datastore from karaage.datastores import global_save_person global_save_person(self) # update account datastores from karaage.datastores import machine_category_save_account for ua in self.account_set.filter(date_deleted__isnull=True): machine_category_save_account(ua) # has locked status changed? if self._tracker.has_changed("login_enabled"): if self.login_enabled: for ua in self.account_set.filter(date_deleted__isnull=True): ua.unlock() else: for ua in self.account_set.filter(date_deleted__isnull=True): ua.lock() # has the institute changed? if self._tracker.has_changed("institute_id"): from karaage.institutes.models import Institute old_institute_pk = self._tracker.previous("institute_id") new_institute = self.institute if old_institute_pk is not None: old_institute = Institute.objects.get(pk=old_institute_pk) from karaage.datastores import remove_accounts_from_institute query = self.account_set remove_accounts_from_institute(query, old_institute) if new_institute is not None: from karaage.datastores import add_accounts_to_institute query = self.account_set add_accounts_to_institute(query, new_institute) if self._password is not None: from karaage.datastores import global_set_person_password global_set_person_password(self, self._password) for ua in self.account_set.filter(date_deleted__isnull=True): ua.set_password(self._password) ua.save() log.change(self, 'Changed Password') self._password = None
def save(self, *args, **kwargs): created = self.pk is None # save the object super(Person, self).save(*args, **kwargs) if created: log.add(self, 'Created') for field in self._tracker.changed(): if field != "password": log.change( self, 'Changed %s to %s' % (field, getattr(self, field))) # has username changed? self._tracker.has_changed("username") if self._tracker.has_changed("username"): old_username = self._tracker.previous('username') if old_username is not None: from karaage.datastores import global_set_person_username global_set_person_username(self, old_username, self.username) log.change( self, 'Renamed %s to %s' % (old_username, self.username)) # update the datastore from karaage.datastores import global_save_person global_save_person(self) # update account datastores from karaage.datastores import machine_category_save_account for ua in self.account_set.filter(date_deleted__isnull=True): machine_category_save_account(ua) # has locked status changed? if self._tracker.has_changed("login_enabled"): if self.login_enabled: for ua in self.account_set.filter(date_deleted__isnull=True): ua.unlock() else: for ua in self.account_set.filter(date_deleted__isnull=True): ua.lock() # has the institute changed? if self._tracker.has_changed("institute_id"): from karaage.institutes.models import Institute old_institute_pk = self._tracker.previous("institute_id") new_institute = self.institute if old_institute_pk is not None: old_institute = Institute.objects.get(pk=old_institute_pk) from karaage.datastores import remove_accounts_from_institute query = self.account_set remove_accounts_from_institute(query, old_institute) if new_institute is not None: from karaage.datastores import add_accounts_to_institute query = self.account_set add_accounts_to_institute(query, new_institute) if self._password is not None: from karaage.datastores import global_set_person_password global_set_person_password(self, self._password) for ua in self.account_set.filter(date_deleted__isnull=True): ua.set_password(self._password) ua.save() log.change(self, 'Changed Password') self._password = None
def save(self, *args, **kwargs): created = self.pk is None # save the object super(Account, self).save(*args, **kwargs) if created: log.add( self.person, 'Account %s: Created on %s' % (self, self.machine_category)) log.add( self.machine_category, 'Account %s: Created on %s' % (self, self.machine_category)) for field in self._tracker.changed(): if field != "password": log.change( self.person, 'Account %s: Changed %s to %s' % (self, field, getattr(self, field))) log.change( self.machine_category, 'Account %s: Changed %s to %s' % (self, field, getattr(self, field))) # check if machine_category changed moved = False if self._tracker.has_changed('machine_category_id'): old_machine_category_pk = self._tracker.previous( 'machine_category_id') if old_machine_category_pk is not None: old_machine_category = MachineCategory.objects.get( pk=old_machine_category_pk) old_username = self._tracker.previous('username') new_machine_category = self.machine_category new_username = self.username # set old values so we can delete old datastore self.machine_category = old_machine_category self.username = old_username from karaage.datastores import machine_category_delete_account machine_category_delete_account(self) log.change( self.person, 'Account %s: Removed account' % self) log.change( self.machine_category, 'Account %s: Removed account' % self) # set new values again self.machine_category = new_machine_category self.username = new_username log.change( self.person, 'Account %s: Added account' % self) log.change( self.machine_category, 'Account %s: Added account' % self) moved = True # check if it was renamed if self._tracker.has_changed('username'): old_username = self._tracker.previous('username') if old_username is not None: new_username = self.username if self.date_deleted is None and not moved: from karaage.datastores \ import machine_category_set_account_username machine_category_set_account_username( self, old_username, new_username) log.change( self.person, 'Account %s: Changed username from %s to %s' % (self, old_username, new_username)) log.change( self.machine_category, 'Account %s: Changed username from %s to %s' % (self, old_username, new_username)) # check if deleted status changed if self._tracker.has_changed('date_deleted'): if self.date_deleted is not None: # account is deactivated from karaage.datastores import machine_category_delete_account machine_category_delete_account(self) log.delete( self.person, 'Account %s: Deactivated account' % self) log.delete( self.machine_category, 'Account %s: Deactivated account' % self) # deleted else: # account is reactivated log.add( self.person, 'Account %s: Activated' % self) log.add( self.machine_category, 'Account %s: Activated' % self) # makes sense to lock non-existant account if self.date_deleted is not None: self.login_enabled = False # update the datastore if self.date_deleted is None: from karaage.datastores import machine_category_save_account machine_category_save_account(self) if self._password is not None: from karaage.datastores \ import machine_category_set_account_password machine_category_set_account_password(self, self._password) log.change( self.person, 'Account %s: Changed Password' % self) log.change( self.machine_category, 'Account %s: Changed Password' % self) self._password = None