示例#1
0
 def activate(self, email, code):
     try:
         log.info('User activation email=%s code=%s'%(email, code))
         Registration.clear_expired_user(email)
         
         reg = Registration.get_inactive(email, code)
         if not reg:
             user=DBSession.query(User).filter_by(email_address=email).first()
             if user:
                 return dict()
             else:
                 return redirect('/registration/error')
 
         u = User(user_name=reg.user_name,
                            display_name=reg.user_name,
                            email_address=reg.email_address,
                            password=reg.password)
      
         DBSession.add(u)
 
         reg.user = u
         reg.password = '******'
         reg.activated = datetime.now()
         return dict()        
     except:
         log.exception('Got exception')
         #TODO return error page
         return redirect('/registration/error', message='Sorry your account cannot be activated. Please send email to ...')
示例#2
0
    def forget_password(self, *args, **kw):
        try:
            email_address = kw['email_address']
            user=DBSession.query(User).filter_by(email_address=email_address).first()
            if not user:
                return dict(success=False, error_code=ErrorCode.NONEXISTEDUSER)
                                                
            log.info("Reset password: %s"%email_address)
            reset_pwd = ResetPassword()
            reset_pwd.email_address=email_address
            reset_pwd.code = Registration.generate_code(email_address)
            
            DBSession.add(reset_pwd)
            DBSession.flush()
            
            email_data = {'sender':config['registration.email_sender'],
                      'subject':_('Message from Jminee'),
                      'body':'''
Please click on this link to reset your password

%s
''' % (url_for(self.mount_point+'/confirm_reset', code=reset_pwd.code, email=reset_pwd.email_address, qualified=True))}

        
            send_email(reset_pwd.email_address, email_data['sender'], email_data['subject'], email_data['body'])
        except Exception as e:
            log.exception('Got exception')
            return dict(success=False)
        return dict(success=True)
示例#3
0
    def index(self, *args, **kw):
        try:
            log.info('User registration: %s'%str(kw))
            new_reg = Registration()
            new_reg.email_address = kw['email_address']
            new_reg.user_name = kw['email_address']
            new_reg.password = kw['password']
            new_reg.code = Registration.generate_code(kw['email_address'])
            DBSession.add(new_reg)
            DBSession.flush()

            email_data = {'sender':config['registration.email_sender'],
                      'subject':_('Message from Jminee'),
                      'body':'''
Please click on this link to confirm your registration

%s
''' % (url_for(self.mount_point+'/activate', code=new_reg.code, email=new_reg.email_address, qualified=True))}

        
            send_email(new_reg.email_address, email_data['sender'], email_data['subject'], email_data['body'])
        except Exception as e:
            log.exception('Got exception')
            return dict(success=False)
        return dict(success=True, email=kw['email_address'])