Esempio n. 1
0
    def do_save_rule(self, _clerk, _user, ID, virtuser, oldVirt, domName,
                     mailto):
        #@TODO: there's a dependency here that I don't know how to expose.
        #If the rule attributes are changed before dom is loaded,
        #clerk won't save the rule. same thing with rule.dom=domain (vs <<)
        #however, I couldn't duplicate this in the test case

        dom = safety.safeDomain(_user, domName)
        if ID:
            rule = safety.safeEmailRuleByID(dom, ID)
        elif oldVirt:
            rule = safety.safeEmailRule(dom, oldVirt)
        else:
            rule = EmailRule()

        rule.virtuser = virtuser
        rule.mailto = mailto

        self.checkDuplicate(rule, dom)

        if rule not in dom.rules:
            dom.rules << rule

        _clerk.store(dom)
        _user.getBeaker().genmailconf()
Esempio n. 2
0
    def invoke(self,
               _clerk,
               _user,
               domain,
               rectype,
               value,
               priority=0,
               ID=None):
        try:
            dom = safety.safeDomain(_user, domain)
            if ID:
                rec = safety.safeDNSRec(dom, ID)
            else:
                rec = DNSRec()

            if rec.domain is not dom:
                dom.dnsrecs << rec

            rec.rectype = rectype
            rec.priority = priority  # field might be disabled
            rec.value = value

            #@TODO: this is kludgy, but i can't put this in set_value
            # ...unless I split DNSRec into two classes...
            # ALSO, these should generally have a "." at the end!!
            from cornerhost.schema.Domain import reDomain
            if rectype == "MX" and not reDomain.match(rec.value):
                raise ValueError('value', rec.value)
            _clerk.store(rec)

        except (ValueError, TypeError), e:
            raise Intercept(e)
Esempio n. 3
0
    def invoke(self, _clerk, _user, domain, rectype, value, priority=0, ID=None):
        try:
            dom = safety.safeDomain(_user, domain)
            if ID:
                rec = safety.safeDNSRec(dom, ID)
            else:
                rec = DNSRec()
            
            if rec.domain is not dom:
                dom.dnsrecs << rec

            rec.rectype = rectype
            rec.priority = priority # field might be disabled
            rec.value = value
            
            #@TODO: this is kludgy, but i can't put this in set_value
            # ...unless I split DNSRec into two classes...
            # ALSO, these should generally have a "." at the end!!
            from cornerhost.schema.Domain import reDomain
            if rectype=="MX" and not reDomain.match(rec.value):
                raise ValueError('value',rec.value)
            _clerk.store(rec)
            
        except (ValueError, TypeError), e:
            raise Intercept(e)
Esempio n. 4
0
 def invoke(self, _user, _clerk, domName, rule, mailto):
     try:
         dom = safety.safeDomain(_user, domName)
         dom.mailto = self.compileRule(rule, mailto)
         _clerk.store(dom)
         _user.getBeaker().genmailconf()
     except ValueError, e:
         raise Intercept(self.ruleMessage(e))
Esempio n. 5
0
 def invoke(self, _clerk, _user, name):
     dom = safety.safeDomain(_user, name)
     #@TODO: cascading delete?
     #@TODO: real error handling, not assertions
     #(assertions should only check for things that can't happen)
     assert not dom.is_site, "delete the site first"
     assert not dom.subs, "delete the subdomains first"
     _clerk.delete(Domain, dom.ID)        
Esempio n. 6
0
 def invoke(self, _clerk, _user, name):
     dom = safety.safeDomain(_user, name)
     #@TODO: cascading delete?
     #@TODO: real error handling, not assertions
     #(assertions should only check for things that can't happen)
     assert not dom.is_site, "delete the site first"
     assert not dom.subs, "delete the subdomains first"
     _clerk.delete(Domain, dom.ID)
Esempio n. 7
0
 def invoke(self, _user, _clerk, domName, rule, mailto):
     try:
         dom = safety.safeDomain(_user, domName)
         dom.mailto=self.compileRule(rule, mailto)
         _clerk.store(dom)
         _user.getBeaker().genmailconf()
     except ValueError, e:
         raise Intercept(self.ruleMessage(e))
Esempio n. 8
0
 def invoke(self, _clerk, _user, name, repoint_to):
     dom = safety.safeDomain(_user, name)
     assert not dom.is_site, "%s already has its own site" % dom.name
     # merge the form logic with create_site in on_post_add_domain (above)
     if repoint_to == "new_site":
         NewSiteGrunt(_clerk, _user).buildSite(name)
     else:
         dom.site = safety.safeSiteByName(_user, repoint_to)
     _clerk.store(dom)
     _user.getBeaker().mqsend('genhttpconf')
Esempio n. 9
0
 def invoke(self, _clerk, _user, name, rule, rectype, location, processmail=0):
     try:
         dom = safety.safeDomain(_user, name)
         dom.update(
             processmail = int(processmail),
             rule = rule,
             rectype = rectype,
             location = location)
         _clerk.store(dom)
     except (TypeError, ValueError), e:
         raise Intercept(e)
Esempio n. 10
0
 def invoke(self, _clerk, _user, name, repoint_to):
     dom = safety.safeDomain(_user, name)
     assert not dom.is_site, "%s already has its own site" % dom.name
     # merge the form logic with create_site in on_post_add_domain (above)
     if repoint_to=="new_site":
         NewSiteGrunt(_clerk,
                      _user).buildSite(name)
     else:
         dom.site = safety.safeSiteByName(_user, repoint_to)
     _clerk.store(dom)
     _user.getBeaker().mqsend('genhttpconf')
Esempio n. 11
0
 def invoke(self,
            _clerk,
            _user,
            name,
            rule,
            rectype,
            location,
            processmail=0):
     try:
         dom = safety.safeDomain(_user, name)
         dom.update(processmail=int(processmail),
                    rule=rule,
                    rectype=rectype,
                    location=location)
         _clerk.store(dom)
     except (TypeError, ValueError), e:
         raise Intercept(e)
Esempio n. 12
0
    def do_save_rule(self,_clerk,_user, ID, virtuser, oldVirt, domName, mailto):
        #@TODO: there's a dependency here that I don't know how to expose.
        #If the rule attributes are changed before dom is loaded,
        #clerk won't save the rule. same thing with rule.dom=domain (vs <<)
        #however, I couldn't duplicate this in the test case

        dom = safety.safeDomain(_user, domName)
        if ID:
            rule = safety.safeEmailRuleByID(dom, ID)
        elif oldVirt:
            rule = safety.safeEmailRule(dom, oldVirt)
        else:
            rule = EmailRule()
        
        rule.virtuser=virtuser
        rule.mailto=mailto
        
        self.checkDuplicate(rule, dom)

        if rule not in dom.rules:
            dom.rules << rule
            
        _clerk.store(dom)
        _user.getBeaker().genmailconf()
Esempio n. 13
0
 def invoke(self, _user, _clerk, oldDom, ID):
     old = safety.safeDomain(_user, oldDom)
     rule = safety.safeEmailRuleByID(old, ID)
     _clerk.delete(EmailRule, rule.ID)
     _user.getBeaker().genmailconf()
Esempio n. 14
0
 def invoke(self, _clerk, _user, domain_in, ID):
     rec = safety.safeDNSRec(safety.safeDomain(_user, domain_in), ID)
     _clerk.delete(DNSRec, rec.ID)
Esempio n. 15
0
 def invoke(self, _clerk, _user, domain_in, ID):
     rec = safety.safeDNSRec(safety.safeDomain(_user, domain_in), ID)
     _clerk.delete(DNSRec, rec.ID)
Esempio n. 16
0
 def invoke(self, _user, _clerk, oldDom, ID):
     old = safety.safeDomain(_user, oldDom)
     rule = safety.safeEmailRuleByID(old,ID)
     _clerk.delete(EmailRule,rule.ID)
     _user.getBeaker().genmailconf()