Changeset View
Changeset View
Standalone View
Standalone View
bin/kolab_smtp_access_policy.py
Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | except: | ||||
cache = False | cache = False | ||||
session = None | session = None | ||||
policy_result_table = Table( | policy_result_table = Table( | ||||
'policy_result', metadata, | 'policy_result', metadata, | ||||
Column('id', Integer, Sequence('seq_id_result'), primary_key=True), | Column('id', Integer, Sequence('seq_id_result'), primary_key=True), | ||||
Column('key', String(16), nullable=False), | Column('key', String(16), nullable=False), | ||||
Column('value', Boolean, nullable=False), | Column('value', Boolean, nullable=False), | ||||
Column('sender', String(64), nullable=False), | Column('sender', String(64), nullable=True), | ||||
Column('recipient', String(64), nullable=False), | Column('recipient', String(64), nullable=False), | ||||
Column('sasl_username', String(64)), | Column('sasl_username', String(64)), | ||||
Column('sasl_sender', String(64)), | Column('sasl_sender', String(64)), | ||||
Column('created', Integer, nullable=False), | Column('created', Integer, nullable=False), | ||||
) | ) | ||||
Index( | Index( | ||||
'fsrss', | 'fsrss', | ||||
▲ Show 20 Lines • Show All 272 Lines • ▼ Show 20 Lines | def parse_policy(self, _subject, _object, policy): | ||||
rules['deny'].append(rule[1:]) | rules['deny'].append(rule[1:]) | ||||
else: | else: | ||||
rules['allow'].append(rule) | rules['allow'].append(rule) | ||||
allowed = False | allowed = False | ||||
for rule in rules['allow']: | for rule in rules['allow']: | ||||
deny_override = False | deny_override = False | ||||
if _object.endswith(rule): | if _object is not None and _object.endswith(rule): | ||||
for deny_rule in rules['deny']: | for deny_rule in rules['deny']: | ||||
if deny_rule.endswith(rule): | if deny_rule.endswith(rule): | ||||
deny_override = True | deny_override = True | ||||
if not deny_override: | if not deny_override: | ||||
allowed = True | allowed = True | ||||
denied = False | denied = False | ||||
for rule in rules['deny']: | for rule in rules['deny']: | ||||
allow_override = False | allow_override = False | ||||
if _object.endswith(rule): | if _object is not None and _object.endswith(rule): | ||||
if not allowed: | if not allowed: | ||||
denied = True | denied = True | ||||
continue | continue | ||||
else: | else: | ||||
for allow_rule in rules['allow']: | for allow_rule in rules['allow']: | ||||
if allow_rule.endswith(rule): | if allow_rule.endswith(rule): | ||||
allow_override = True | allow_override = True | ||||
▲ Show 20 Lines • Show All 1,267 Lines • Show Last 20 Lines |