def from_new( # for creating a new user # IMPORTANT: check if unique username first by using unique_check() cls, first_name, last_name, username, password, phone_number, email, address, verified, ): session = Session() user = User() uid = next_id("user") user.uid = uid user.username = username user.password = password user.first_name = first_name user.last_name = last_name user.phone_number = phone_number user.email = email user.address = address user.verified = verified session.add(user) session.commit() session.close() return cls(uid, first_name, last_name, username, password, phone_number, email, address, verified)
def register(): if 'username' in session: flash("Cannot create new account while logged in.") return redirect(url_for('hello')) else: form = RegistrationForm() if form.validate_on_submit(): login = form.username.data user = dbsession.query(User).filter_by(name=login).first() if user is None: pw_hash = bcrypt.generate_password_hash(form.password.data) user = User(login, '', pw_hash) user.gender = form.gender.data user.species = form.species.data user.bio = form.bio.data user.email = form.email.data user.minorflag = not form.adult.data user.accepttos = True dbsession.add(user) dbsession.commit() flash("User Created") return redirect(url_for('login')) else: flash("User already exists.") return redirect(url_for('register')) return render_template('register.html', form=form)
def r_success(): nickname = request.form["nickname"] email = request.form["email"] passwd = request.form["passwd"] repasswd = request.form["repasswd"] if passwd != repasswd: return "비밀번호가 다릅니다." if len(passwd) < 8: return """ <script> alert("비밀번호를 8자리 이상 적어주세요."); history.back(); </script> """ if not len(email) or not len(nickname): return """ <script> alert("모두 채워 주세요."); history.back(); </script> """ if is_already_registered(email, nickname) == 2: return "메일" if is_already_registered(email, nickname) == 3: return "별명" new = User() new.nickname = nickname new.email = email new.pw = passwd db.session.add(new) db.session.commit() return render_template("index.html")
def r_success(): nickname = request.form['nickname'] email = request.form['email'] passwd = request.form['passwd'] repasswd = request.form['repasswd'] if passwd != repasswd: return "비밀번호가 다릅니다." if len(passwd) < 8: return ''' <script> alert("비밀번호를 8자리 이상 적어주세요."); history.back(); </script> ''' if not len(email) or not len(nickname): return ''' <script> alert("모두 채워 주세요."); history.back(); </script> ''' if is_already_registered(email, nickname) == 2: return '메일' if is_already_registered(email, nickname) == 3: return '별명' new = User() new.nickname = nickname new.email = email new.pw = passwd db.session.add(new) db.session.commit() return render_template("index.html")
def users_post_view(request): username = request.json_body.get('username') if not isinstance(username, basestring): request.response.status = 400 return { 'd': error_dict( 'api_errors', 'username, email, and password are all required string fields') } if username_in_use(request.json_body['username'], request.dbsession): request.response.status = 400 return { 'd': error_dict( 'verification_error', 'username already in use: %s' % request.json_body['username']) } requires = ['email', 'password'] if not all(field in request.json_body for field in requires) \ or not all(isinstance(request.json_body.get(field), basestring) for field in request.json_body): request.response.status = 400 return { 'd': error_dict( 'api_errors', 'username, email, and password are all required string fields') } user = User() user.salt = os.urandom(256) user.password = hash_password(request.json_body['password'], user.salt) user.username = request.json_body['username'].lower() user.email = request.json_body['email'].lower() user.origin = request.json_body.get('origin', None) user.authpin = '123456' request.dbsession.add(user) request.dbsession.flush() request.dbsession.refresh(user) s = Session() s.owner = user.id s.token = str(uuid4()) request.dbsession.add(s) request.dbsession.flush() request.dbsession.refresh(s) result = dict_from_row(user, remove_fields=removals) result['session'] = dict_from_row(s, remove_fields=removals) return {'d': result}
def authorize(): google = oauth.create_client('google') # create the google oauth client token = google.authorize_access_token( ) # Access token from google (needed to get user info) resp = google.get( 'userinfo') # userinfo contains stuff u specificed in the scrope user_info = resp.json() exist_user = User.query.filter_by(email=user_info['email']).first() if not exist_user: new_user = User() new_user.email = user_info['email'] new_user.username = user_info['name'] db.session.add(new_user) db.session.commit() login_user(new_user) else: login_user(exist_user) return redirect(url_for('dashboard'))
def updateUser(cookie, uid, handle, name, pwd, admin, email): session = Session() u = usermanagment.getUser(cookie) if not u.admin and uid != u.id: raise Exception("Invalid access %s %s" % (uid, u.id)) if uid == -1: cu = User(handle) session.add(cu) else: q = session.query(User).filter_by(id=uid) if q.count() == 0: raise Exception("User not found") cu = q.one() cu.name = name cu.email = email if pwd: cu.password = pwd if u.admin: cu.admin = admin session.commit() return cu.id
def create_user(self, spec_data=None, return_object=True): """ Make a customer object, return the actual object with spec_data overriding values for further manipulation unless set to false. :param spec_data: A dictionary containing the data keyed on db model object attribute :param return_object: Whether to return the object or not, defaulting to True :return: a customer db model """ u = User() if spec_data is None: spec_data = {} sqlobj_from_dict(u, spec_data) if u.id is None: u.id = self.session.query(func.nextval('users_id_seq')).scalar() if u.username is None: u.username = '******' % u.id if u.email is None: u.email = '*****@*****.**' % u.id if u.salt is None: u.salt = 'generated_salt%d' % u.id if u.password is None: u.password = '******' % u.id if isinstance(u.salt, basestring): s = hashlib.sha512() s.update(u.salt.encode('utf-8')) u.salt = s.digest() if isinstance(u.password, basestring): m = hashlib.sha512() m.update(u.password.encode('utf-8')) m.update(u.salt) u.password = m.digest() self.session.add(u) self.session.flush() self.session.refresh(u) if return_object: return u return u.id
def addupdate_user(fb_user, email, access_token, auth_code): from db import db, User new = False user = get_user_from_email(email) if not user: new = True user = User() user.facebook_user_id = fb_user user.email = email user.auth_code = auth_code user.access_token = access_token db.session.add(user) db.session.commit() if new: create_demo_checkpoints(user) return user
def create_user(first_name, last_name, username, password, address, phone_number, email): session = Session() if (session.query( User.username).filter_by(username=username).first()) == None: user = User() if session.query(func.max(User.uid)).first()[0] != None: user.uid = session.query(func.max(User.uid)).first()[0] + 1 else: user.uid = 1 user.username = username user.password = password user.first_name = first_name user.last_name = last_name user.phone_number = phone_number user.email = email user.address = address user.in_event = False session.add(user) session.commit() session.close() return True return False
# $2a$12$/xOeN.4B6wQsen5TgvOAMOUVvETJ8vDC8WqhjHRF2OYGSslxMmB2O if __name__ == '__main__': password = '******' from db import User, Story, addDefault, refresh_db, session as dbsession import random import loremipsum for adduser in range(1,1000): username = "******" % (adduser) user = User(username,'',password) user.species = 'Automatic' user.bio = 'Automatic bio' user.email = '*****@*****.**' user.minorflag = True user.accepttos =True dbsession.add(user) dbsession.commit() for addstories in range(1,20000): newstory = Story(loremipsum.generate_sentence()[2]) newstory.text = loremipsum.generate_paragraph()[2] newstory.adult = True newstory.uid = random.randrange(1000)+1 dbsession.add(newstory) dbsession.commit()
from db import User, Post if __name__ == "__main__": me = User('Михаил', 'Корнеев', '*****@*****.**') print(me.email) # db_session.add(me) me.email = '*****@*****.**' # db_session.commit() u = User print(u.query.all()) print(u.query.filter(User.first_name == 'Михаил').first()) print(u.query.filter(User.first_name.like('М%')).all()) print(u.query.order_by(User.email).all()) # По возрастанию (от а до я) print("По убыванию: %s" % u.query.order_by(User.email.desc()).all()) # По убыванию (от я до а) print( "С фамилией с 'ов': %s" % u.query.filter(u.last_name.like('%ов%')).order_by(u.first_name).all()) p = Post blog_post = p.query.get(1) print(blog_post.author)