Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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