def edit_rule(self, rule_id): """Edit a policy rule""" rule = get_rule(rule_id) if not rule: abort(404) c.rule_id = rule_id c.policy_id = rule.policy_id c.policy_type = rule.policy.policy_type c.POLICY_NAME = POLICY_NAME c.POLICY_URL_MAP = POLICY_URL_MAP c.form = AddRuleForm(request.POST, rule, csrf_context=session) if rule.policy.policy_type in [1, 2]: c.form.action.choices = ARCHIVE_RULE_ACTIONS if request.method == 'POST' and c.form.validate(): try: updated = update_rule(c.form, rule, c.user, request.host, request.remote_addr) if updated: flash(_('The rule has been updated')) else: flash(_('No changes were made to the rule')) except IntegrityError: Session.rollback() flash(_('The rule could not be updated')) redirect(url('policy-rulesets', policy_id=rule.policy_id)) return self.render('/settings/rules_edit.html')
def move_rule(self, rule_id, direc): """Move a policy rule""" rule = get_rule(rule_id) if not rule: redirect(url('policy-rulesets', policy_id=rule.policy_id)) if int(direc) == 1: rule.move_up() else: rule.move_down() redirect(url('policy-rulesets', policy_id=rule.policy_id))
def delete_rule(self, rule_id): """Delete a policy rule""" rule = get_rule(rule_id) if not rule: abort(404) c.rule_id = rule_id c.policy_id = rule.policy_id c.policy_type = rule.policy.policy_type c.POLICY_NAME = POLICY_NAME c.POLICY_URL_MAP = POLICY_URL_MAP c.form = AddRuleForm(request.POST, rule, csrf_context=session) if rule.policy.policy_type in [1, 2]: c.form.action.choices = ARCHIVE_RULE_ACTIONS if request.method == 'POST' and c.form.validate(): policy_id = rule.policy_id delete_rule(rule, c.user, request.host, request.remote_addr) flash(_('The rule has been deleted')) redirect(url('policy-rulesets', policy_id=policy_id)) return self.render('/settings/rules_delete.html')