def update(self): allowed = PLOUD.registration if not allowed: raise HTTPFound(location = '/waitinglist.html') principal = authenticated_userid(self.request) if principal: raise HTTPFound(location = '/dashboard.html') errors, data = validate_signup(self.request) if errors: return email = data['signup-email'] site_name = data['signup-site-name'] password = ''.join( random.choice(ALLOWED_SITE_NAME_CHARS) for i in range(8)) user = User(email, password, 98) token = user.token Session.add(user) Session.flush() uri = user.uri send_activation(email, token) try: utils.provision_site(user, 'plone41', site_name) except Exception, exc: transaction.abort() self.errors = {'signup-site-name': str(exc)} log.exception('Site provision problem') return
def update(self): eid = None error = None errors = None try: eid = int(self.request.GET.get('eid')) except: pass if eid: error = Session.query(Error).filter_by(id=eid).first() if error is not None: self.error = error return count = Session.query(Error).count() self.errors = Session.query(Error)\ .order_by(Error.time.desc()).slice(0,50)
def __getitem__(self, key): try: eid = int(key) except: raise KeyError(key) error = Session.query(Error).filter_by(id=eid).first() error.__parent__ = self error.__name__ = key return error
def validate_resetpw(request): email = request.POST.get('login-email', '').lower() if not email: return {'login-email': u"Can't find login information."} user = Session.query(User).filter_by(email=email).first() if user is None: return {'login-email': u"Can't find login information."} return {}
def checkSitename(node, site_name): site_name_set = set(site_name) if not site_name_set.issubset(ALLOWED_SITE_NAME_CHARS): raise form.Invalid( node, "We couldn't create your Plone site. You've typed invalid characters in site name. Please only use lowercase alpha-numeric characters, the hyphen, and the underscore.") elif site_name in PLOUD.reserved_sitenames: raise form.Invalid( node, "We couldn't create your Plone site. You've chosen a reserved site name. Please try a different site name.") else: exists = Session.query(Site).filter_by(site_name=site_name).first() if exists is not None: raise form.Invalid( node, "We couldn't create your Plone site. Site with this name already exists. Please try a different site name.")
def validate_login(request): errors = {} email = request.POST.get('login-email', '').lower() password = request.POST.get('login-password', '') user = Session.query(User).filter_by(email=email).first() if user is None: errors['login-email'] = 'Account not found.' return errors if user.password != password: errors['login-password'] = '******' return errors
def render(self): request = self.request principal = authenticated_userid(request) if principal: raise HTTPFound(location='/dashboard.html') errors = validate_login(request) if errors: self.status = errors raise HTTPFound(location='/index.html') email = request.POST.get('login-email', '').lower() user = Session.query(User).filter_by(email=email).first() headers = remember(request, user.uri) raise HTTPFound(location='/dashboard.html', headers=headers)
def update(self): token = self.request.GET.get('token') user = Session.query(User).filter_by(token=token).first() if user is not None: user.type = 0 user.token = None user.validated = datetime.datetime.now() # change policy to 0 (free) conn = ploud_config.PLOUD_POOL.getconn() cursor = conn.cursor() POLICIES[user.type].apply(user.id, cursor) cursor.close() conn.commit() ploud_config.PLOUD_POOL.putconn(conn) headers = remember(self.request, user.uri) raise HTTPFound(location = '/change-password.html', headers = headers) else: raise HTTPFound(location="/index.html?message=Can't validate email address.")
def checkEmail(node, email): if Session.query(User).filter_by(email=email).first() is not None: raise form.Invalid(node, 'E-Mail address aready is in use.')
def removeHandler(self): Session.delete(self.context) self.message('Error has been removed.') raise HTTPFound(location='../')
def update(self): count = models.Session.query(models.Error).count() self.errors = Session.query(Error)\ .order_by(Error.time.desc()).slice(0,50)