Ejemplo n.º 1
0
    def match(cls, result, user):
        # Apply global filters
        if not Filters.is_valid_user(user):
            # User didn't pass filters, update `account` attribute and return
            result['account'] = None

            return True, result

        # Find matching `UserRule`
        rule = (UserRule.select().where((UserRule.name == user['title'])
                                        | (UserRule.name == '*')
                                        | (UserRule.name == None)).order_by(
                                            UserRule.priority.asc()).first())

        log.debug('Activity matched against rule: %r', rule)

        if rule:
            # Process rule
            if rule.account_function is not None:
                result['account'] = cls.account_function(user, rule)
            elif rule.account_id is not None:
                result['account'] = rule.account_id
            else:
                return True, result
        else:
            result['account'] = None

        return False, result
Ejemplo n.º 2
0
 def create_rules(cls, account):
     ClientRule.create(account=account, priority=1)
     UserRule.create(account=account, priority=1)
Ejemplo n.º 3
0
 def create_rules(cls, account):
     ClientRule.create(account=account, priority=1)
     UserRule.create(account=account, priority=1)