def read_target_filter(self): const2str = {} for c in dir(self.const): tmp = getattr(self.const, c) if isinstance(tmp, Email._EmailTargetFilterCode): const2str[int(tmp)] = str(tmp) mail_target_filter = Email.EmailTargetFilter(self._db) for row in mail_target_filter.list_email_target_filter(): t_id = int(row['target_id']) f_id = int(row['filter']) self.targ2filter[t_id].append(const2str[f_id])
def _UiO_default_filter_settings(self, email_target): t_id = email_target.entity_id tt_str = str(Email._EmailTargetCode(email_target.email_target_type)) # Set default filters if none found on this target etf = Email.EmailTargetFilter(self._db) if tt_str in cereconf.EMAIL_DEFAULT_FILTERS: for f in cereconf.EMAIL_DEFAULT_FILTERS[tt_str]: f_id = int(EmailConstants._EmailTargetFilterCode(f)) try: etf.clear() etf.find(t_id, f_id) except Errors.NotFoundError: etf.clear() etf.populate(f_id, parent=email_target) etf.write_db()
import cereconf from Cerebrum import Errors from Cerebrum.Utils import Factory from Cerebrum.modules import Email db = Factory.get('Database')() db.cl_init(change_program="migrate") co = Factory.get('Constants')(db) all_spam_setting = {} existing_greylist_target_ids = [] et = Email.EmailTarget(db) esf = Email.EmailSpamFilter(db) etf = Email.EmailTargetFilter(db) et.clear() esf.clear() # # we need to move all registered spam_filter where # action == greylist to the new email_target_filter table # # find all email_spam_filter entries where action == greylist for a in esf.list_email_spam_filters_ext(): if 'greylist' in a: existing_greylist_target_ids.append(a[0]) for e_id in existing_greylist_target_ids: