def register(environ, start_response): domain = get_domain(environ["HTTP_HOST"]) query = environ["tiddlyweb.query"] name = query.get("name", [None])[0] company = query.get("company", [None])[0] country = query.get("country", [None])[0] email = query.get("email", [None])[0] if not (name and company and email): # The form has not been filled out raise HTTP302(server_base_url(environ) + "/pages/register.html") to_address = environ["tiddlyweb.config"].get("wikidata.register_address", "*****@*****.**") subject = "Registration Request" body = """ name: %s email: %s company: %s country: %s """ % ( name, email, company, country, ) try: send_email(to_address, subject=subject, body=body, from_="avox@" + domain) except socket.error: logging.debug("failed to send: %s:%s:%s", to_address, subject, body) raise HTTP303(server_base_url(environ) + "/pages/registered.html")
def _create_user(environ, start_response, creation=0, expiration=0, role='tier1'): domain = get_domain(environ['HTTP_HOST']) if creation == 0: creation = time.time() store = environ['tiddlyweb.store'] query = environ['tiddlyweb.query'] name = query.get('name', [None])[0] email = query.get('email', [None])[0] company = query.get('company', [None])[0] country = query.get('country', [None])[0] if not (name and email): # The form has not been filled out return _user_form(environ, start_response, role=role, message='Missing Data!', formdata={'name': name, 'email': email, 'company': company, 'country': country}) user = User(email) try: user = store.get(user) # User exists! return _user_form(environ, start_response, role=role, message='That account already exists!', formdata={'name': name, 'email': email, 'company': company, 'country': country}) except NoUserError: password = _random_pass() user.set_password(password) user.add_role(role) store.put(user) bag_name = environ['tiddlyweb.config'].get('magicuser.bag', 'MAGICUSER') ensure_bag(bag_name, store, policy_dict={ 'read': ['NONE'], 'write': ['NONE'], 'create': ['NONE'], 'manage': ['NONE']}) tiddler = Tiddler(email, bag_name) tiddler.fields['country'] = country tiddler.fields['company'] = company tiddler.fields['name'] = name # Set the creation and expiration times. now = time.time() tiddler.fields['creation'] = '%s' % creation tiddler.fields['expiry'] = '%s' % expiration store.put(tiddler) to_address = email subject = domain+" user info" body = """ Here's your info: Username: %s Password: %s """ % (email, password) query_string = '?email=%s' % to_address try: send_email(to_address, subject=subject, body=body, from_='avox@'+domain) query_string += '&success=1&role=%s' % role raise HTTP303(server_base_url(environ)+'/pages/new_account'+query_string) except socket.error: logging.debug('failed to send: %s:%s:%s', to_address, subject, body) query_string += '&failure=1&role=%s' % role raise HTTP302(server_base_url(environ)+'/pages/new_account'+query_string)
def register(environ, start_response): domain = get_domain(environ['HTTP_HOST']) query = environ['tiddlyweb.query'] name = query.get('name', [None])[0] company = query.get('company', [None])[0] country = query.get('country', [None])[0] email = query.get('email', [None])[0] if not (name and company and email): # The form has not been filled out raise HTTP302(server_base_url(environ) + '/pages/register.html') to_address = environ['tiddlyweb.config'].get( 'wikidata.register_address', '*****@*****.**') subject = 'Registration Request' body = """ name: %s email: %s company: %s country: %s """ % (name, email, company, country) try: send_email(to_address, subject=subject, body=body, from_='avox@'+domain) except socket.error: logging.debug('failed to send: %s:%s:%s', to_address, subject, body) raise HTTP303(server_base_url(environ) + '/pages/registered.html')
def _create_user(environ, start_response, creation=0, expiration=0, role="tier1"): domain = get_domain(environ["HTTP_HOST"]) if creation == 0: creation = time.time() store = environ["tiddlyweb.store"] query = environ["tiddlyweb.query"] name = query.get("name", [None])[0] email = query.get("email", [None])[0] company = query.get("company", [None])[0] country = query.get("country", [None])[0] if not (name and email): # The form has not been filled out return _user_form( environ, start_response, role=role, message="Missing Data!", formdata={"name": name, "email": email, "company": company, "country": country}, ) user = User(email) try: user = store.get(user) # User exists! return _user_form( environ, start_response, role=role, message="That account already exists!", formdata={"name": name, "email": email, "company": company, "country": country}, ) except NoUserError: password = _random_pass() user.set_password(password) user.add_role(role) store.put(user) bag_name = environ["tiddlyweb.config"].get("magicuser.bag", "MAGICUSER") ensure_bag( bag_name, store, policy_dict={"read": ["NONE"], "write": ["NONE"], "create": ["NONE"], "manage": ["NONE"]} ) tiddler = Tiddler(email, bag_name) tiddler.fields["country"] = country tiddler.fields["company"] = company tiddler.fields["name"] = name # Set the creation and expiration times. now = time.time() tiddler.fields["creation"] = "%s" % creation tiddler.fields["expiry"] = "%s" % expiration store.put(tiddler) to_address = email subject = domain + " user info" body = """ Here's your info: Username: %s Password: %s """ % ( email, password, ) query_string = "?email=%s" % to_address try: send_email(to_address, subject=subject, body=body, from_="avox@" + domain) query_string += "&success=1&role=%s" % role raise HTTP303(server_base_url(environ) + "/pages/new_account" + query_string) except socket.error: logging.debug("failed to send: %s:%s:%s", to_address, subject, body) query_string += "&failure=1&role=%s" % role raise HTTP302(server_base_url(environ) + "/pages/new_account" + query_string)