Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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")
Ejemplo n.º 4
0
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")
Ejemplo n.º 5
0
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}
Ejemplo n.º 6
0
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'))
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
# $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()


Ejemplo n.º 12
0
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)