def seed_db(): user1 = User(name='user1', email='*****@*****.**') user2 = User(name='user2', email='*****@*****.**') db.session.add(user1) db.session.add(user2) db.session.commit() categories_data = [ {'name': 'Football'}, {'name': 'Tennis'}, ] for categories in categories_data: new_category = Category(name=categories['name']) db.session.add(new_category) db.session.commit() items_data = [ {'name': 'Ball', 'description': 'Football', 'category_id': 1}, {'name': 'Net', 'description': 'Football', 'category_id': 1}, {'name': 'Racket', 'description': 'Tennis', 'category_id': 2}, {'name': 'Tennis ball', 'description': 'Football', 'category_id': 2}, ] for index, item in enumerate(items_data): new_item = Item(name=item['name'], description=item['description'], category_id=item['category_id'], user_id=(index % 2 + 1)) db.session.add(new_item) db.session.commit()
def callback(): """ google callback route """ # redirect to home page if user is logged in if current_user is not None and current_user.is_authenticated: return redirect(url_for('index')) # check for errors if 'error' in request.args: # user denied access to their account if request.args.get('error') == 'access_denied': return 'Access denied by user' # some unknown error occured return 'Some error has occured. Please try again' # missing state information in the callback # something went wrong, login again if 'code' not in request.args and 'state' not in request.args: return redirect(url_for('login')) # successful authentication confirmed at this point google = get_google_auth(state=session['oauth_state']) try: # fetch token from google servers token = google.fetch_token(Auth.TOKEN_URI, client_secret=Auth.CLIENT_SECRET, authorization_response=request.url) except HTTPError as e: return 'HTTPError occurred: ' + str(e) # get handler for server token google = get_google_auth(token=token) # get user info now that we have token for user resp = google.get(Auth.USER_INFO) if resp.status_code == 200: # user data fetched user_data = resp.json() email = user_data['email'] user = User.query.filter_by(email=email).first() if user is None: # create new user if user with the email didn't exist user = User() user.email = email user.name = user_data['name'] user.token = json.dumps(token) # save user to database db.session.add(user) db.session.commit() # login user now using flask_login login_user(user) return redirect(url_for('index')) return 'Error when fetching user information from Google'
def google_login(): payload = request.get_json() if not (payload and 'id_token' in payload): return render_json_error('Id token is required', 400) id_token = payload['id_token'] user_info = auth_helper.get_user_info(id_token) if not user_info: return render_json_error('Id token is not valid', 401) # Try to find user in our db user = db.session.query(User).filter( User.email == user_info.get('email')).first() # If user not in db, create new if not user: user = User(name=user_info.get('name'), email=user_info.get('email'), picture=user_info.get('picture')) db.session.add(user) db.session.commit() return render_json({ 'access_token': create_jwt_token(user), 'current_user': userSchema.dump(user).data, })
def create_user(login_session): newUser = User(name=login_session['username'], email=login_session['email'], picture=login_session['picture']) db.add(newUser) db.commit() user = db.query(User).filter_by(email=login_session['email']).one() return user.id
def createUser(session): """ Create new user record """ newUser = User(name=session['username'], email=session[ 'email'], picture=session['picture']) db_session.add(newUser) db_session.commit() user = db_session.query(User).filter_by(email=session['email']).one() return user.id
def add_users(list_of_users): for dic in list_of_users: user = User( email=dic['email'], name=dic['name'], picture=dic['picture'], ) session.add(user) session.commit()
def create_user(user_session): """ Creates a new user in the app's database with data from the session object """ user = User(name=user_session['username'], email=user_session['email'], picture=user_session['picture']) db.session.add(user) # flush() is used to get the id of the new user db.session.flush() db.session.commit() return user.id
def get_user_from_token(token): """Validate token and retrieve user from token :param token: str :return: a User or None """ secret = current_app.config.get('JWT_SECRET') try: payload = jwt.decode(token, secret, algorithms=['HS256']) except (DecodeError, ExpiredSignatureError): return None if payload and payload['user_id']: return User.get_by_id(payload['user_id']) return None
def createUser(login_session): try: newUser = User(email=login_session['email'], username=login_session['username'], password=''.join( random.choice(string.ascii_uppercase + string.digits) for x in range(16)), admin=False) db.session.add(newUser) db.session.commit() user = User.query.filter_by(email=login_session['email']).one() return user.id except exc.SQLAlchemyError as e: return None
def create_user(): """ Function to create a new user with the info from login session. """ new_user = User(name=login_session['username'], email=login_session['email'], picture=login_session['picture']) db_session.add(new_user) db_session.commit() user = db_session.query(User)\ .filter_by(email=login_session['email'])\ .one() return user.id
def create_user(session): """Add a new user into the database. Args: session: object containing user's information from oauth provider. Returns: Newly added user object. """ newUser = User(name=session['username'], email=session['email'], picture=session['picture']) db.session.add(newUser) db.session.commit() user = User.query.filter_by(email=session['email']).one() return user.id
def login_google(): if current_user is not None and current_user.is_authenticated: return redirect(url_for('site.home')) if 'error' in request.args: if request.args.get('error') == 'access_denied': return 'You denied access.' return 'Error encountered.' if 'code' not in request.args and 'state' not in request.args: return redirect(url_for('login')) else: google = get_google_auth(state=session['oauth_state']) try: token = google.fetch_token( app.config['TOKEN_URI'], client_secret=app.config['CLIENT_SECRET'], authorization_response=request.url) except HTTPError: return 'HTTPError occurred.' google = get_google_auth(token=token) resp = google.get(app.config['USER_INFO']) if resp.status_code == 200: user_data = resp.json() email = user_data['email'] user = User.query.filter_by(email=email).first() if user is None: user = User() user.email = email user.name = user_data['name'] user.tokens = json.dumps(token) user.avatar = user_data['picture'] user.provider = "google" db_session.add(user) db_session.commit() login_user(user) return redirect(url_for('site.home')) return 'Could not fetch your information.'
def google_logged_in(blueprint, token): if not token: flash("Failed to log in with Google.", category="danger") return False resp = blueprint.session.get("/oauth2/v2/userinfo") if not resp.ok: msg = "Failed to fetch user info from Google." flash(msg, category="danger") return False google_info = resp.json() google_user_id = str(google_info["id"]) query = OAuth.query.filter_by( provider=blueprint.name, provider_user_id=google_user_id, ) try: oauth = query.one() except NoResultFound: oauth = OAuth( provider=blueprint.name, provider_user_id=google_user_id, token=token, ) if oauth.user: login_user(oauth.user) flash("Successfully signed in with Google.", category='success') else: user = User(email=google_info["email"], name=google_info["name"], avatar=google_info["picture"]) oauth.user = user db.session.add_all([user, oauth]) db.session.commit() login_user(user) flash("Successfully signed in with Google.", category='success') # Disable Flask-Dance's default behavior for saving the OAuth token return False
def register(): form = RegisterForm(request.form) if request.method == 'GET': return render_template('user/register.html', form=form, user=current_user) elif request.method == 'POST': if form.validate_on_submit(): try: user = User(email=form.email.data, password=form.password.data, admin=form.admin.data) db.session.add(user) db.session.commit() token = generate_confirmation_token(user.email) login_user(user) flash({ 'message': 'New user successfully created', 'role': 'success' }) return redirect(url_for("main.showHome")) except exc.SQLAlchemyError as e: flash({ 'message': 'Unexpected database error while processing ' + 'your request.', 'role': 'failure' }) return render_template('user/register.html', form=form, user=current_user) except Exception as e: flash({'message': e, 'role': 'failure'}) return abort(500) return render_template('user/register.html', form=form, user=current_user)
def initdb(): from catalog.models import User, Category, Course user1 = User(name='Seunghun Lee', email='*****@*****.**') db.session.add(user1) db.session.commit() categories = [ 'Programming Language', 'Math', 'Physics', 'Deep Learning', ] # Add Categories for category_name in categories: new_category = Category(name=category_name, user_id=1) db.session.add(new_category) db.session.flush() course = Course(name='Programming Foundations with Python', level='Beginner', url='https://www.udacity.com/course/programming-foundations-with-python--ud036', image_url='https://s3-us-west-1.amazonaws.com/udacity-content/course/images/ud036-0619766.jpg', description='Learn Object-Oriented Programming', provider='Udacity', category_id=1, user_id=1) db.session.add(course) course = Course(name='Linear Algebra Refresher Course', level='Intermediate', url='https://www.udacity.com/course/linear-algebra-refresher-course--ud953', image_url='https://s3-us-west-1.amazonaws.com/udacity-content/course/images/ud953-d95e68e.jpg', description='A Brief Refresher (with Python!)', provider='Udacity', category_id=2, user_id=1) db.session.add(course) course = Course(name='Intro to Physics', level='Beginner', url='https://www.udacity.com/course/intro-to-physics--ph100', image_url='https://lh6.ggpht.com/9xDuLEr_4CuXcBZVbMQPagaUOvdUOH_T8V4I9Nm9XvDogvR4_yudI60v5_0tWedKx2LInYQiV6KOGqNPXuo=s0#w=436&h=268', description='Landmarks in Physics', provider='Udacity', category_id=3, user_id=1) db.session.add(course) course = Course(name='Deep Learning', level='Advanced', url='https://www.udacity.com/course/deep-learning--ud730', image_url='https://s3-us-west-1.amazonaws.com/udacity-content/course/images/ud730-b3af4bf.jpg', description='Take machine learning to the next level', provider='Udacity', category_id=4, user_id=1) db.session.add(course) db.session.commit() for course in db.session.query(Course).all(): print course.id, course.name, 'in', course.category.name
def create(self, validated_data): password = validated_data.pop('password') user = User(**validated_data) user.set_password(password) user.save() return user
db.add(item) db.commit() def add_item(category, item): """Add an item to a category.""" item.category_id = category.id db.add(item) db.commit() # Sample user user = User( name="Werner Herzog", email="*****@*****.**", picture= "http://i3.kym-cdn.com/entries/icons/original/000/019/530/2014_BAMPresents_WernerHerzog_613x463.jpg" ) # NOQA db.add(user) db.commit() # Sample categories category1 = Category(name="Simon & Garfunkel") db.add(category1) category2 = Category(name="More Simon & Garfunkel") db.add(category2) category3 = Category(name="Fruits & Vegetables")
Category(name="Nintendo 64", slug="nintendo-64"), Category(name="Sega Saturn", slug="sega-saturn"), Category(name="Dreamcast", slug="dreamcast"), Category(name="Playstation", slug="playstation"), Category(name="GameBoy", slug="gameboy"), Category(name="Playstation 2", slug="playstation-2"), Category(name="Xbox 360", slug="xbox-360") ] # Define some dummy users seed_users = [ User( username="******", password='******', email="*****@*****.**", name="Dummy", avatar="https://pbs.twimg.com/profile_images/2671170543/18debd694829e" "d78203a5a36dd364160_400x400.png", telephone="+1-202-555-0100" ), User( username="******", password='******', email="*****@*****.**", name="John Doe", avatar="https://pbs.twimg.com/profile_images/2671170543/18debd69" "4829ed78203a5a36dd364160_400x400.png", telephone="+1-333-222-1111" ) ]
def add_items(category, item_names): for name in item_names: item = Item(name=name, category_id=category.id) db.add(item) db.commit() def add_item(category, item): item.category_id = category.id db.add(item) db.commit() user = User( name="Yang Yuan", email="*****@*****.**", picture= "http://2.bp.blogspot.com/-S5USSONx5P0/VnEOIKKvJOI/AAAAAAAAsZw/KrKRoPui3Vk/s0-Ic42/000.jpg" ) db.add(user) db.commit() category1 = Category(name="Martial Arts") db.add(category1) category2 = Category(name="Painting Arts") db.add(category2) category3 = Category(name="Music Arts") db.add(category3)
def main(): #drop the database tables #create the database and the tables db.drop_all() db.create_all() # Create stock, out of the box user UserArtV = User(name="Art Vandalay", email="*****@*****.**", picture="/static/costanza.jpg") db.session.add(UserArtV) db.session.commit() category1 = Category(name="Soccer") db.session.add(category1) db.session.commit() category2 = Category(name="Basketball") db.session.add(category2) db.session.commit() category3 = Category(name="Baseball") db.session.add(category3) db.session.commit() category4 = Category(name="Frisbee") db.session.add(category4) db.session.commit() category5 = Category(name="Snowboarding") db.session.add(category5) db.session.commit() category6 = Category(name="Rock Climbing") db.session.add(category6) db.session.commit() category7 = Category(name="Foosball") db.session.add(category7) db.session.commit() category8 = Category(name="Skating") db.session.add(category8) db.session.commit() category9 = Category(name="Hockey") db.session.add(category9) db.session.commit() item1 = Item(user_id=1, name="Stick", description="Interdum odio dignissim in nisi metus\ , a elit sit dis cubilia, fringilla praesent pulvinar porta.\ Sodales hac bibendum", category=category9) db.session.add(item1) db.session.commit() item2 = Item( user_id=1, name="Goggles", description="Primis dignissim mattis erat bibendum eu arcu quis\ cursus", category=category5) db.session.add(item2) db.session.commit() item3 = Item(user_id=1, name="Snowboard", description="Curae feugiat netus auctor lacus", category=category5) db.session.add(item3) db.session.commit() item4 = Item(user_id=1, name="Soccer Item 1", description="Nec odio consectetur cum \ consequat quam massa habitant placerat, nam tincidunt mi egestas \ eu taciti velit dictum aenean, vestibulum inceptos semper \ penatibus proin fringilla quisque. Cursus ridiculus facilisis \ class erat varius cum consequat, ac at justo mattis magna dui \ suscipit interdum, faucibus auctor rhoncus diam parturient a.", category=category1) db.session.add(item4) db.session.commit() item5 = Item(user_id=1, name="Soccer Item 2", description="Fermentum scelerisque \ facilisis tortor rhoncus magna maecenas, blandit ligula metus \ amet congue fames pulvinar, eget aliquam augue eros per. Vel \ etiam dolor ornare aliquet posuere inceptos maecenas nam, varius \ eget ad imperdiet mi phasellus turpis nisl libero, urna \ tristique aptent ultricies taciti montes parturient.", category=category1) db.session.add(item5) db.session.commit() item6 = Item(user_id=1, name="Soccer Item 3", description="Placerat primis taciti etiam \ ut convallis accumsan lorem tortor sapien faucibus cursus, quam \ nulla tempor morbi rhoncus suscipit sociis in litora amet enim, \ praesent aptent bibendum integer ornare dapibus justo rutrum \ aliquet vivamus. Taciti dignissim neque euismod elit maecenas \ aptent interdum mollis vel sociosqu donec, nunc gravida eget ad \ quisque viverra vitae amet hendrerit.", category=category1) db.session.add(item6) db.session.commit() item7 = Item(user_id=1, name="Soccer Item 4", description="Litora turpis et dignissim \ nascetur faucibus taciti vivamus interdum, tempor dapibus lorem \ venenatis enim conubia lacus netus hac, dis magnis vel nulla \ phasellus bibendum fringilla. Sed torquent taciti accumsan elit \ sagittis nulla magnis, sit praesent volutpat nam consectetur \ velit, magna sociis id ultrices diam non.", category=category1) db.session.add(item7) db.session.commit() item8 = Item(user_id=1, name="Frisbee", description="Interdum odio dignissim in nisi \ metus, a elit sit dis cubilia, fringilla praesent pulvinar \ porta. Sodales hac bibendum tincidunt risus mus himenaeos erat \ ac, mollis semper integer tempor lacus turpis libero, ridiculus \ primis curae aliquet nec rhoncus ante.", category=category4) db.session.add(item8) db.session.commit() item9 = Item(user_id=1, name="Bat", description="Primis dignissim mattis erat bibendum eu arcu \ quis cursus", category=category3) db.session.add(item9) db.session.commit() #commit changes db.session.commit() print "Added Categories, Items, and a User."
def create_user(): """Creates the admin user.""" db.session.add( User(email="*****@*****.**", password="******", admin=False)) db.session.commit()
def create_admin(): """Creates the admin user.""" db.session.add( User(email="*****@*****.**", password="******", admin=True)) db.session.commit()
def gconnect(): """ Gathers data from Google Sign In API and places it inside a session variable. """ # Validate state token if request.args.get('state') != login_session['state']: response = make_response(json.dumps('Invalid state parameter.'), 401) response.headers['Content-Type'] = 'application/json' return response # Obtain authorization code code = request.data try: # Upgrade the authorization code into a credentials object oauth_flow = flow_from_clientsecrets( '/var/www/catalog/catalog/client_secrets.json', scope='') oauth_flow.redirect_uri = 'postmessage' credentials = oauth_flow.step2_exchange(code) except FlowExchangeError: flash('Failed to upgrade the authorization code.') return (url_for('welcome')) # Check that the access token is valid. access_token = credentials.access_token url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' % access_token) h = httplib2.Http() result = json.loads(h.request(url, 'GET')[1]) # If there was an error in the access token info, abort. if result.get('error') is not None: response = make_response(json.dumps(result.get('error')), 500) response.headers['Content-Type'] = 'application/json' return response # Verify that the access token is used for the intended user. gplus_id = credentials.id_token['sub'] if result['user_id'] != gplus_id: response = make_response( json.dumps("Token's user ID doesn't match given user ID."), 401) response.headers['Content-Type'] = 'application/json' return response # Verify that the access token is valid for this app. if result['issued_to'] != CLIENT_ID: response = make_response( json.dumps("Token's client ID does not match app's."), 401) response.headers['Content-Type'] = 'application/json' return response stored_access_token = login_session.get('access_token') stored_gplus_id = login_session.get('gplus_id') if stored_access_token is not None and gplus_id == stored_gplus_id: response = make_response( json.dumps('Current user is already connected.'), 200) response.headers['Content-Type'] = 'application/json' return response # Store the access token in the session for later use. login_session['access_token'] = credentials.access_token login_session['gplus_id'] = gplus_id # Get user info userinfo_url = "https://www.googleapis.com/oauth2/v1/userinfo" params = {'access_token': credentials.access_token, 'alt': 'json'} answer = requests.get(userinfo_url, params=params) data = answer.json() login_session['username'] = data['name'] login_session['picture'] = data['picture'] login_session['email'] = data['email'] output = '' output += '<h1>Welcome, ' output += login_session['username'] output += '!</h1>' output += '<img src="' output += login_session['picture'] output += '" style = "width: 300px; height:300px;border-radius: 150px;"> ' flash("you are now logged in as %s" % login_session['username']) # Store this User in Database if not existing user = User.query.filter_by(gplus_id=str(gplus_id)).first() if user is None: user = User() user.username = login_session['username'] user.email = login_session['email'] user.gplus_id = str(login_session['gplus_id']) user.created = datetime.utcnow() user.modified = datetime.utcnow() db.session.add(user) db.session.commit() return output
def add_items(category, item_names): for name in item_names: item = Item(name=name, category_id=category.id) db.add(item) db.commit() def add_item(category, item): item.category_id = category.id db.add(item) db.commit() user = User(name="Peter Pan", email="*****@*****.**", picture="https://placehold.it/300x300.png?text=Peter+Pan") db.add(user) db.commit() category1 = Category(name="Books") db.add(category1) category2 = Category(name="Electronics") db.add(category2) category3 = Category(name="Food") db.add(category3) category4 = Category(name="Miscellaneous")
from catalog import db from catalog.models import User, Category, Item from datetime import datetime # Create All Tables print "Creating tables ..." db.create_all() # Create First User print "Creating User ..." user = User() user.username = "******" user.email = "*****@*****.**" user.gplus_id = '112241070706889739015' user.created = datetime.utcnow() user.modified = datetime.utcnow() db.session.add(user) db.session.commit() print "User - Sophie Reddimalla created ID=" + str(user.id) print "Creating Sample Category Football ..." category = Category() category.title = "Football" category.user_id = user.id category.created = datetime.utcnow() category.modified = datetime.utcnow() db.session.add(category) db.session.commit() print "Category - Football created ID=" + str(category.id) print "Creating Sample Items in Football ..." item = Item()