Exemplo n.º 1
0
 def register(self):
     if not Validate.bool(self.settings('allow_local_registration','false')):
         return HTTPFound(location=route_url('menu', self.request))
 
     self.response['email'] = ''
 
     if 'form.submitted' in self.request.params:
         self.response['email'] = Validate.sanatize(self.request.params['email'])
         password = Validate.sanatize(self.request.params['password'])
         repassword = Validate.sanatize(self.request.params['re.password'])
         
         if Users.by({'email':self.response['email']}).first():
             self.response['message'] = "Email already in use"
             return self.template('register.pt')
         if not Validate.email(self.response['email']):
             self.response['message'] = "Not a valid email address"
             return self.template('register.pt')
         if not Validate.password(password):
             self.response['message'] = "Improper password."
             return self.template('register.pt')
         if repassword != password:
             self.response['message'] = "Passwords do not match."
             return self.template('register.pt')
             
         # Below is good
         Users.registerLocalUser(self.response['email'], password)
         return HTTPFound(location=route_url('login', self.request))
         
     return self.template('register.pt')
Exemplo n.º 2
0
    def email(self):
        id = self.request.matchdict['id']
        test = Tests.by({'id':id,'alias':self.request.user.alias}).first()
        if not test:
            raise HTTPForbidden()
        file = self._generate_pdf(id)
        self.response['id'] = id
        self.response['emails'] = self.request.params.get('email.addresses',None)
        
        if 'form.submitted' in self.request.params:
            if self.request.params['email.ok'] == '1':
                emails = self.request.params['email.addresses'].replace(' ','').split(',')
                for email in emails:
                    if not Validate.email(email):
                        self.notify('Invalid email address',warn=True)
                        return self.template('email.pt')
                        
                try:
                    message = Message(subject=self._email_fmt(id, str(Properties.get('MAILER_TO_SUBJECT','Submission'))),
                                      sender=str(Properties.get('MAILER_GLOBAL_FROM_ADDRESS','System')),
                                      recipients=emails,
                                      body=self._email_fmt(id, str(Properties.get('MAILER_BODY','Submission'))))
                    attachment = Attachment('submission_' + str(id) + '.pdf', 'application/pdf', file)
                    message.attach(attachment)
                    mailer = get_mailer(self.request)
                    mailer.send(message)
                    self.notify('Email sent!')
                except Exception as e:
                    print "ERROR: " + str(e)
                    self.notify('Unable to send email!',warn=True)
            else:
                self.notify('Unable to send example email!',warn=True)

        return self.template('email.pt')
Exemplo n.º 3
0
    def register(self):
        if not Validate.bool(self.settings("allow_local_registration", "false")):
            return HTTPFound(location=route_url("menu", self.request))

        self.response["email"] = ""

        if "form.submitted" in self.request.params:
            self.response["email"] = Validate.sanatize(self.request.params["email"])
            password = Validate.sanatize(self.request.params["password"])
            repassword = Validate.sanatize(self.request.params["re.password"])

            if Users.by({"email": self.response["email"]}).first():
                self.notify("Email already in use!", warn=True)
                return self.template("register.pt")
            if not Validate.email(self.response["email"]):
                self.notify("Not a valid email address!", warn=True)
                return self.template("register.pt")
            if not Validate.password(password):
                self.notify("Improper password!", warn=True)
                return self.template("register.pt")
            if repassword != password:
                self.notify("Passwords do not match!", warn=True)
                return self.template("register.pt")

            # Below is good
            Users.registerLocalUser(self.response["email"], password)
            return HTTPFound(location=route_url("login", self.request))

        return self.template("register.pt")