def get(self):
     if self.request.get("error"):
         self.redirect("/")
         return
     auth_code = self.request.params["code"]
     try:
         credentials = SIGNIN_FLOW.step2_exchange(auth_code)
         user_id = credentials.id_token["sub"]
         user_email = credentials.id_token["email"]
         logging.debug("Got credentials %s for user %s", credentials.to_json(), user_email)
         if user_id:
             user = User.get_user_from_id(user_id)
             if not user:
                 User.create_user(user_id, user_email)
                 logging.debug("Adding to task queue for user email %s", user_email)
                 #taskqueue.add(url="/worker/fetchEmails", params={ 'user_id': user_id, 'user_email': user_email})
             self.session["user_id"] = user_id
             self.session["user_email"] = user_email
             User.store_credentials_for_user_id(user_id, credentials)
             taskqueue.add(url="/worker/fetchEmails", params={ 'user_id': user_id, 'user_email': user_email})
             token = jwt.encode({'user_id': user_id}, MobileJWTSecret)
             self.redirect("/settings?token="+token)
             return
     except FlowExchangeError:
         self.send_error(401, 'Failed to exchange authorization code')
         return
     self.redirect("/settings")
Example #2
0
def addUser():
    request_data = request.get_json()
    username = str(request_data["username"])
    password = str(request_data["password"])
    User.createUser(username, password)
    get_token()
    response = Response("", status=201, mimetype="application/json")
    return response
Example #3
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        name = form.name.data
        email = form.email.data
        username = form.username.data
        password = form.password.data
        User.createUser(name, email, username, password)
        flash('You are now registered and can log in', 'success')
        return redirect('\login')
    return render_template('register.html', form=form)
Example #4
0
def login():
    if request.method == "POST":
        email = request.form['email']
        passwd = request.form['password']

        # Create login logic and proceed with the authentication
        user_class = User()
        user_class.id = email
        flask_login.login_user(user_class)

    return redirect('/protected')
Example #5
0
def create_user():
    request_data = request.get_json()
    if (validUserObject(request_data)):
        User.createUser(request_data['username'], request_data['password'])
        response = Response("", status=201, mimetype='application/json')
        return response
    else:
        invalidBookObjectErrorMsg = {
            "error":
            "Invalid User Object passed in request",
            "helpString":
            "Data passed in similar to this {'username': '******', 'password': '******' }"
        }

        response = Response(json.dumps(invalidBookObjectErrorMsg),
                            status=400,
                            mimetype='application/json')
        return response
Example #6
0
def verify_password(username_or_token, password):
    # first try to authenticate by token
    user = User.verify_auth_token(username_or_token)
    if not user:
        # try to authenticate with username/password
        user = User.query.filter_by(Login=username_or_token).first()
        if not user or not user.verify_password(password):
            return False
    g.user = user
    return True
Example #7
0
 def __init__(self):
     """Initialize the server manager object.
     The parameters are passed on to the init function of server manager
     """
     self.user = User("")
     self.usermanager = UserManager()
     self.absolutePath = os.path.dirname(
         os.path.abspath(inspect.getfile(inspect.currentframe())))
     self.fileManager = FileManager(self.absolutePath)
     super().__init__()
Example #8
0
 def insert(cls, entry, content, user, remote_addr):
     comment = Comment(
         entry = entry,
         entry_index = entry.index,
         content=content,
         user = user,
         site_user_id = User.getSiteUserId(user),
         ip = remote_addr
     ).put()
     return comment
 def post(self):
     username = self.request.get("username")
     password = self.request.get("password")
     verify = self.request.get("verify")
     email = self.request.get("email")
     
     validCheck = verifySignup(username,password,verify,email)
     
     if validCheck.verify():
         password = h.makePasswordHash(password)
         if email:
             user = User(username=username,password=password,email=email)
         else:
             user = User(username=username,password=password)
         user.put()
         self.response.headers.add_header('Set-Cookie', 'username=%s; Path=/'%str(h.makeSecureCookie(username)))
         if user.is_saved():
             self.redirect('/blog/welcome')
     else:
         self.renderFront(username,"","",email,validCheck.errors)
Example #10
0
def get_token():
    request_data = request.get_json()
    username = str(request_data['username'])
    password = str(request_data['password'])
    match = User.username_password_match(username, password)
    if match:
        expiration_date = datetime.datetime.utcnow() + datetime.timedelta(seconds=100)
        token = jwt.encode({'exp': expiration_date}, app.config['SECRET_KEY'], algorithm='HS256')
        return token
    else:
        return Response('', 401, mimetype='application/json')
Example #11
0
def register():
    try:
        data = json.loads(request.data)
        if not User.objects(email=data['email']):
            user_profile = User(userid=str(ObjectId()), email=data['email'], firstname=data['firstname'], lastname=data['lastname'])
            user_profile.set_password(data['password'])
            user_profile.save()
            return jsonify(result={'token': user_profile.generate_token()}), 200
        return jsonify(result={'message':'Email already in use'}), 409
    except KeyError:
        return jsonify(result={'message':'Error in request. Please try again.'}), 400
Example #12
0
def get():
    try:
        user_token = request.headers.get('Authorization')
        auth_token = User.verify_token(user_token)
        if auth_token == 401:
            return jsonify(result={'message': 'Invalid token'}), 401
        user_profile = User.objects.get(userid=auth_token)
        if user_profile:
            print user_profile
            return jsonify(result={'profile': user_profile.get_profile()}), 200
        return jsonify(result={'message': 'Error in request'}), 400
    except KeyError:
        return jsonify(result={'message':'Error in request'}), 400
Example #13
0
def get_token():
    request_data = request.get_json()
    username = str(request_data["username"])
    password = str(request_data["password"])

    match = User.username_password_match(username, password)
    if match:
        expiration_date = datetime.datetime.utcnow() + datetime.timedelta(seconds=300)
        token = jwt.encode(
            {"exp": expiration_date}, app.config["SECRET_KEY"], algorithm="HS256"
        )
        return token
    else:
        return Response("", 401, mimetype="application/json")
Example #14
0
def get_token():
    request_data = request.get_json()
    username = str(request_data["username"])
    password = str(request_data["password"])
    match = User.usernamePasswordMatch(username, password)
    if request.method == "POST":
        if match:
            expiration_date = datetime.datetime.utcnow() + datetime.timedelta(seconds=10000)
            token = jwt.encode({"exp": expiration_date}, app.config["SECRET_KEY"], algorithm="HS256")
            return token
            #return render_template("mainpage.html", username=username, match=match)
        else:
            return Response("", 401, mimetype="application/json")
    else:
        return render_template("mainpage.html", username=username, match=match)
def register():
    try:
        userId = str(uuid.uuid4())
        firstName = request.json['firstName']
        lastName = request.json['lastName']
        email = request.json['email']
        password = request.json['password']
        hashed_password = generate_password_hash(password, method='sha256')
        user = User(userId, firstName, lastName, email, hashed_password)
        db.session.add(user)
        db.session.commit()

        return get_user_schema.jsonify(user)
    except:
        return {"msg": "Something went wrong"}, 500
Example #16
0
def get_token():
    if request.method == 'POST':
        # Get Form Fields
        username = request.form['username']
        password = request.form['password']
        match = User.username_password_match(username, password)
        if match:
            # Passed
            session['logged_in'] = True
            session['username'] = username
            flash('You are now logged in', 'success')
            return redirect(url_for('dashboard'))
        else:
            error = 'Invalid login'
            return render_template('login.html', error=error)
    return render_template('login.html')
Example #17
0
    def handle_updates(self):
        update = bottle_request.json
        print("\n\nNEW UPDATE\n{}\n\n".format(update))  #just for log

        if (update.get("callback_query")):  #handle button click
            requests.get(
                self.api_base_url + "answerCallbackQuery",
                {'callback_query_id': update.get("callback_query").get("id")})
            user_id = update.get("callback_query").get("from").get("id")
            if (update.get("callback_query").get("data") == "google-pressed"):
                self.show_url(
                    update.get("callback_query").get("message").get(
                        "chat").get("id"),
                    update.get("callback_query").get("message").get(
                        "message_id"))
            else:
                self.send_message_to_specific_person(
                    user_id,
                    update.get("callback_query").get("data"))
            return

        user_id = update.get("message").get("from").get("id")
        user = self.users_list.get(user_id)
        if (user):
            MongoDB.newInteractionFromUser(user_id)
            if (not user.greeted):
                self.start_the_chat(user)
                return
            elif (not user.received_inicial_message):
                self.send_initial_message(user)
            else:
                self.send_message_to_specific_person(
                    user_id,
                    "A partir daqui eu ainda nao sei o que fazer hehehe desculpa"
                )
        else:
            # setup users
            MongoDB.insertNewUser(update.get("message").get("from"))
            first_name = update.get("message").get("from").get("first_name")
            last_name = update.get("message").get("from").get("last_name")
            username = update.get("message").get("from").get("username")
            user = User(user_id, first_name, last_name, username)
            self.users_list[user_id] = user
            # greet user
            self.start_the_chat(user)

        return {"status": "up"}
Example #18
0
def new_user():
    login = request.json.get('Login')
    password = request.json.get('password')
    if login is None or password is None:
        abort(400) # missing arguments
    if User.query.filter_by(Login=login).first() is not None:
        abort(400) # existing user
    user = User(Login=login)
    user.hash_password(password)
    user.FirstName = request.json.get('FirstName')
    user.LastName = request.json.get('LastName')

    user.CreationDate = datetime.utcnow()
    db.session.add(user)
    db.session.commit()

    user_dict = user.dict_format()
    formatted_result = dict(User=user_dict)
    
    return jsonify(result=formatted_result)
Example #19
0
def get_token():
    if request.method == 'POST':
        # Get Form Fields
        username = request.form['username']
        password = request.form['password']
        match = User.username_password_match(username, password)
        if match:
            # Passed
            session['logged_in'] = True
            session['username'] = username
            flash('You are now logged in', 'success')
            expiration_date = datetime.datetime.utcnow() + datetime.timedelta(
                seconds=900)
            token = jwt.encode({'exp': expiration_date},
                               app.config['SECRET_KEY'],
                               algorithm='HS256')
            return redirect('\dashboard')
        else:
            error = 'Invalid login'
            return render_template('login.html', error=error)
    return render_template('login.html')
Example #20
0
    def insert(cls, title, link, content, menu_id, user, remote_addr ):
        def txn():
            entry_index = EntryIndex.get_by_key_name('entry')
            if entry_index is None:
                entry_index = EntryIndex(key_name='entry')
            new_index = entry_index.max_index
            entry_index.max_index += 1
            entry_index.put()
            
            
            new_entry = Entry(key_name = 'entry'+str(new_index),
                          parent = entry_index, 
                          index = new_index,
                          title = title,
                          content = content,
                          menu_id = menu_id,
                          user = user,
                          comment_count = 0,
                          ip = remote_addr,
                          link=link,
                          created_on=datetime.datetime.now(),
                          updated_on=datetime.datetime.now())
            new_entry.put()
                        
            return new_entry
        
        if link != "" and link.find("http") == -1 :
            link = "http://" + link

        new_entry = db.run_in_transaction(txn)
        
        site_user_id = User.getSiteUserId(user)
        new_entry.site_user_id = site_user_id
        new_entry.put()
        
        PagingCursorMasterKey.clearModelKey("Entry")
        
        
        return new_entry
Example #21
0
def get_token():
    request_data = request.get_json()
    username = str(request_data['username'])
    password = str(request_data['password'])
    match = User.username_password_match(username, password)
    if match:
        expiration_date = datetime.datetime.utcnow() + datetime.timedelta(
            seconds=600)
        token = jwt.encode({'exp': expiration_date},
                           app.config['SECRET_KEY'],
                           algorithm='HS256')
        return token
    else:

        #return Response('', 401, mimetype='application/json')
        invalidUser = {
            "error": "invalid Login Credentials ",
            "helpString": "Verify api username and password "
        }
        response = Response(json.dumps(invalidUser),
                            status=401,
                            mimetype='application/json')
        return response
Example #22
0
    def post(self):
        username = self.request.get("username")
        password = self.request.get("password")
        verify = self.request.get("verify")
        email = self.request.get("email")

        validCheck = verifySignup(username, password, verify, email)

        if validCheck.verify():
            password = h.makePasswordHash(password)
            if email:
                user = User(username=username, password=password, email=email)
            else:
                user = User(username=username, password=password)
            user.put()
            self.response.headers.add_header(
                'Set-Cookie',
                'username=%s; Path=/' % str(h.makeSecureCookie(username)))
            if user.is_saved():
                self.redirect('/blog/welcome')
        else:
            self.renderFront(username, "", "", email, validCheck.errors)
Example #23
0
    def getUserCredentials(self, username):
        """Get user data for specified username

        Parameters:
        ------------------------------------------
        username : string
            username to fetch data

        Return : User
            returns the User Data Model for the specified username
        """
        user = User(username)
        with open(self.user_db) as u_file:
            for cnt, line in enumerate(u_file):
                if cnt > 0:
                    attr = line.split(',')
                    if attr[0] == username:
                        user.privilege = attr[2].strip("\t\r\n")
                        user.password = attr[1]
                        user.rootDirectory = "/User/" + username
                        user.currentDirectory = user.rootDirectory
                        break
        return user
from flask import Flask, request, Response, jsonify
import jwt
import datetime, json
from UserModel import User
from ConversationModel import *
from functools import wraps
from HotorBot import *
from settings import *

user = User()
conv = Conversation()
app.config['SECRET_KEY'] = 'marcos'


def token_required(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        token = request.args.get('token')
        try:
            jwt.decode(token, app.config['SECRET_KEY'], algorithms=['HS256'])
        except:
            return jsonify({'Error': 'Provide a valid JWT.'}), 401
        return func(*args, **kwargs)

    return wrapper


def getJWT():
    exp_date = datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
    token = jwt.encode({'exp': exp_date},
                       app.config['SECRET_KEY'],
from UserModel import db, User

db.drop_all()
db.create_all()

User.createUser('test', 'pass')
User.createUser('abc', '123')

db.session.commit()
Example #26
0
def load_user(user_id):
    user = User()
    user.id = user_id
    return user
Example #27
0
def get_users():
    return jsonify({'users': User.getAllUsers()})