def sign_up(): body = request.get_json() user = User(**body) user.password = generate_password_hash(user.password).decode('utf8') user.save() id = user.id return {'id': str(id)}, 200
def add_user(arg_guild, arg_user): # Prep session session = Session() guild = session.query(Guild).filter(Guild.guild_id == arg_guild.id).first() new_user = User(arg_user.name, arg_user.id) guild.users.append(new_user) session.add(new_user) session.commit() session.close()
def get_user(self, user: User): query = (f"SELECT * from {self.database}.discord_users " f"WHERE discord_id = {user.discord_id};") with self: self.cursor.execute(query) result = self.cursor.fetchone() if result: return User(result[0], result[1]) else: return False
def guild_add_users(arg_guild): # Prep session session = Session() users = arg_guild.members guild = session.query(Guild).filter(Guild.guild_id == arg_guild.id).first() # Create new users and add them to guild for user in users: if not user.bot: # Check if user already exists for guild if sum(str(x.user_id) == str(user.id) for x in guild.users) is 0: new_user = User(user.name, user.id) guild.users.append(new_user) session.add(new_user) session.commit() session.close()
def get_callback(): '''Callback from github.api.''' current_sess = db_sess.create_session() github = OAuth2Session(client_id, state=session['oauth_state']) token = github.fetch_token(token_url, client_secret=client_secret, authorization_response=request.url) session['oauth_token'] = token github = OAuth2Session(client_id, token=session['oauth_token']) github_json = github.get('https://api.github.com/user').json() nickname = github_json['login'] session['nickname'] = nickname.lower() user = current_sess.query(User).filter( User.nickname == nickname.lower()).first() if user: user.image = github_json['avatar_url'] user.name = github_json['name'] if github_json['name'] else 'Unknown' bio = github_json['bio'] if github_json['bio'] else 'Unknown' user.description = f"name: {user.name}\nbio: {bio}" user.github = github_json['url'] current_sess.merge(user) current_sess.commit() return redirect(url_for(session.get('redirect', '.profile'))) else: image = github_json['avatar_url'] name = github_json['name'] if github_json['name'] else 'Unknown' bio = github_json['bio'] if github_json['bio'] else 'Unknown' description = f"name: {name}\nbio: {bio}" github = github_json['url'] user = User(nickname=nickname.lower(), icon=image, description=description, github=github) current_sess.add(user) current_sess.commit() return redirect(url_for(session.get('redirect', '.profile')))
def userSignup(payload): if payload: password = '******' # password = str(uuid.uuid4())[:10] # generates a random string to act as a system generated password u_ublic_id = str(uuid.uuid4())[:15] print("password", password) new_user = User( public_id=u_ublic_id, first_name=payload['first_name'], last_name=payload['last_name'], email=payload['email'], phone_number=payload['phone_number'], description=payload['description'], address=payload['address'], company_name=payload['company_name'], type_id=payload['type_id'], category_id=payload['category_id'], password=bcrypt.generate_password_hash( password, app.config['BCRYPT_LOG_ROUNDS']).decode('utf-8'), created_at=datetime.now()) User.save_to_db(new_user) #generate and auth token payload = { 'exp': datetime.utcnow() + timedelta(days=1, seconds=5), 'iat': datetime.utcnow(), 'sub': u_ublic_id } auth_token = jwt.encode(payload, app.config['SECRET_KEY'], algorithm='HS256') token = Token(public_id=str(uuid.uuid4())[:8], token=auth_token.decode('utf-8'), user_public_id=u_ublic_id, client_id=1, scopes='[]', created_at=datetime.now()) Token.save_to_db(token) mail_payload = { 'name': '{} {}'.format(payload['first_name'], payload['last_name']), 'confirm_account_url': (app.config['CONFIRM_ACCOUNT_URL']).format(u_ublic_id), 'link_url': (app.config['CONFIRM_ACCOUNT_URL']).format(u_ublic_id), 'product_name': app.config['APP_NAME'], 'company_name': app.config['COMPANY_NAME'] } # Send an Email sg = sendgrid.SendGridAPIClient( apikey=app.config['SENDGRID_API_KEY']) from_email = Email(app.config['MAIL_ADDRESS']) to_email = Email(payload['email']) subject = "Welcome to {}".format(app.config['APP_NAME']) content = Content( "text/html", render_template('signup.html', data=mail_payload)) mail = Mail(from_email, subject, to_email, content) try: response = sg.client.mail.send.post(request_body=mail.get()) return jsonify({ 'message': 'Welcome to {}, check your mail for your account details'. format(app.config['APP_NAME']) }), 200 except Exception as e: return jsonify({"message": str(e)}), 422