def register_user(form_data): """ Takes a dictionary returns a string with error message if validation does not pass. Otherwise returns None. Interacts with database - inserts new entry for a given user. Two expected inputs are expected under form_data 1. form submmited through add_user webpage 2. result of authentication via oauth form_data should be a dict or dict like object with the following keys: - "username": ascii string, - "password": ascii, - "email": ascii. """ username = form_data['username'] password = form_data["password"] user = User() if not is_ascii(username) or not is_ascii(password): return "password and username must be in ascii" if user.get_id(username) is not None: return "username taken!" form_data["password"] = hash_password(form_data["password"]) form_data['points'] = 10 form_data["date_created"] = datetime.fromtimestamp(time.time()) form_data["about_me"] = "Who are you {user}?". \ format(user=form_data["username"]) form_data.pop("confirm", None) user.insert_(form_data) return None
def oauthLogin(provider_name): authomatic = Authomatic(AUTHOMATIC_CONFIG, 'your secret string', report_errors=True) response = make_response() result = authomatic.login(WerkZeug(request, response), provider_name) if result: if result.user: result.user.update() appuser = dict(username=result.user.username, email=result.user.email, password="******") logging.debug(appuser) user = User() uid = user.get_id(appuser['username']) if uid is not None: log_user_in(appuser['username'], uid) else: # call register user message = register_user(appuser) if message is None: return log_user_in(appuser['username'], uid) return str(message) # query db and see if result.user.email is there, # if the answer is yes, get username and all stuff for this user # log him in with the data from our database # if he is not there then add result.user.email, result.user.stuff # generate password for him and log him in with that #log_user_in(appuser.username,appuser.uid) #,True,result.user.email) return redirect(url_for('startpage', n=0)) return response
def oauthLogin(provider_name): authomatic = Authomatic(AUTHOMATIC_CONFIG, 'your secret string', report_errors=True) response = make_response() result = authomatic.login(WerkZeug(request,response),provider_name) if result: if result.user: result.user.update() appuser = dict(username = result.user.username, email = result.user.email,password="******") logging.debug(appuser) user = User() uid = user.get_id(appuser['username']) if uid is not None: log_user_in(appuser['username'],uid) else: # call register user message = register_user(appuser) if message is None: return log_user_in(appuser['username'],uid) return str(message) # query db and see if result.user.email is there, # if the answer is yes, get username and all stuff for this user # log him in with the data from our database # if he is not there then add result.user.email, result.user.stuff # generate password for him and log him in with that #log_user_in(appuser.username,appuser.uid) #,True,result.user.email) return redirect(url_for('startpage',n=0)) return response
def login_post(): loginForm = Login(request.form) registrationForm = Register(request.form) if loginForm.validate(): user = User() username = request.form['username'] password = request.form['password'] uid = user.get_id(username) if uid is not None and user.check_pass(username, password): return log_user_in(username, uid) flash('Invalid username or password','error') return render_template('users/login.html', loginForm=loginForm, registrationForm=registrationForm)
def login_post(): loginForm = Login(request.form) registrationForm = Register(request.form) if loginForm.validate(): user = User() username = request.form['username'] password = request.form['password'] uid = user.get_id(username) if uid is not None and user.check_pass(username, password): return log_user_in(username, uid) flash('Invalid username or password', 'error') return render_template('users/login.html', loginForm=loginForm, registrationForm=registrationForm)
def edit_profile_post(): form = Profile(request.form) if form.validate(): User().update_profile(escape(session["uid"]), **form.data) flash('Your profile has been updated') return redirect(url_for('startpage', n=0)) return redirect(url_for('edit_profile'))
def edit_profile(): form = Profile(request.form) profile = User().get_profile(escape(session['uid'])) if profile: flash("Edit your profile %s" % escape(session['username'])) return render_template("users/edit_profile.html", profile=profile, form=form) return render_template("Errorpage.html")
def checkUsername(): user = User() username = request.form["what"] if user.inDb(username): return json.dumps(True) return json.dumps(False)