Exemplo n.º 1
0
    def put(self, id):
        parser = reqparse.RequestParser()
        roles = ("Admin", "User")
        parser.add_argument('role',
                            choices=roles,
                            required=True,
                            help='Invalid role!')
        parser.add_argument('first_name')
        parser.add_argument('last_name')
        data = parser.parse_args()

        try:
            email = get_jwt_identity()
            session_user = User.objects(email=email).first()

            user = User.objects(id=id, active=True).first()
            if user is None:
                return error_404()

            user.first_name = data['first_name']
            user.last_name = data['last_name']
            user.role = data['role']
            user.updated_at = datetime.utcnow()
            user.save()

            response = user.serialize(excludes=['password'])
            return make_response(response, 200)

        except Exception as e:
            print(e)
            return error_500()
Exemplo n.º 2
0
def login_user():

    email = request.form['email']

    password = request.form['password']

    valid = User.valid_login(email, password)

    User.login(email)

    user = User.get_by_email(email)

    if valid:

        if user.designation == 'HQ Staff':

            return render_template('profile_HQ.html', user=user)

        else:

            return render_template('profile_blocks.html', user=user)

    else:

        return render_template('login_fail.html')
Exemplo n.º 3
0
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument('email')
        parser.add_argument('first_name')
        parser.add_argument('last_name')
        data = parser.parse_args()

        try:
            email = get_jwt_identity()
            session_user = User.objects(email=email).first()

            if email == data['email']:
                session_user.update(first_name=data['first_name'],
                                    last_name=data['last_name'],
                                    updated_at=datetime.utcnow())
            else:
                user = User.objects(email=data['email']).first()
                if user is not None:
                    return error_409("Email already exist!")

                session_user.update(email=data['email'],
                                    first_name=data['first_name'],
                                    last_name=data['last_name'],
                                    updated_at=datetime.utcnow())

            user = User.objects(email=data['email']).first()
            response = user.serialize(excludes=['password'])
            return make_response(response, 200)

        except Exception as e:
            print(e)
            return error_500()
Exemplo n.º 4
0
def create_user():
    request_body = request.get_json()
    if request_body.get('name') is None:
        return jsonify({'error': 'Name is required'}), 400
    elif len(request_body['name']) < 4:
        return jsonify({'error': 'Name should be at least 4 characters'}), 400
    elif request_body.get('email') is None:
        return jsonify({'error': 'Email is required'}), 400
    elif not re.match(EMAIL_REGEX, request_body['email']):
        return jsonify({'error': 'Email is invalid'}), 400
    elif request_body.get('password') is None:
        return jsonify({'error': 'Password is required'}), 400
    elif request_body.get('password') != request_body.get('confirmPassword'):
        return jsonify({'error': 'Passwords do not match'}), 400

    user = User(name=request_body['name'],
                email=request_body['email'],
                password=request_body['password'],
                cash=20000.0)
    db.session.add(user)
    db.session.commit()

    auth_token = encode_auth_token(user.id)

    return jsonify({
        'user': user.as_dict(),
        'auth': {
            'access_token': auth_token.decode()
        }
    }), 201
Exemplo n.º 5
0
def register_user():

    email = request.form['email']

    password = request.form['password']

    username = request.form['username']

    designation = request.form['designation']

    block = request.form['block']

    User.register(email,
                  password,
                  username,
                  designation,
                  block,
                  department=None)

    user = User.get_by_email(email)

    if user.designation == 'HQ Staff':

        return render_template('profile_HQ.html', user=user)

    else:

        return render_template('profile_blocks.html', user=user)
Exemplo n.º 6
0
async def get_image_data_route(db_name: str,
                               task_name: str,
                               id: Optional[str] = None,
                               user: User = Depends(
                                   fastapi_users.get_current_active_user)):
    try:
        if id is None:
            if user.can_get_image_data(db_name=db_name, task_name=task_name):
                ids = await get_image_data_ids(db_name, task_name)
                if ids:
                    return ResponseModel(
                        ids, "Image Data ids retrieved successfully")
                return ResponseModel([], "Image Data ids are empty")
            else:
                return ErrorResponseModel("An error occurred", 503,
                                          "User can't get Image Data.")
        else:
            if user.can_get_image_data(db_name=db_name, task_name=task_name):
                image_data = await get_image_data(db_name, task_name, id)
                if image_data:
                    return ResponseModel(image_data,
                                         "Image Data retrieved successfully")
                return ResponseModel({}, "Image Data are empty")
            else:
                return ErrorResponseModel("An error occurred", 503,
                                          "User can't get Image Data.")
    except Exception as e:
        return ErrorResponseModel("An error occurred", 503, e.__str__())
Exemplo n.º 7
0
def getBlogs(userId = None):
    if userId is not None:
        user = User.getById(userId)
    else:
        user = User.getByEmail(session['email'])

    blogs = user.getBlogs()
    return render_template('userBlogs.html',blogs=blogs,email=user.email)
Exemplo n.º 8
0
    def get_user(self, user_id):
        try:
            dbObject = User()
            return dbObject.get(user_id)

        except Exception as e:
            current_app.logger.debug(traceback.format_exc())
            raise e
Exemplo n.º 9
0
def register_user():
    email = request.form['email']
    password = request.form['password']

    User.register(email, password)
    session["email"] = email

    return render_template("profile.html", email=session['email'])
Exemplo n.º 10
0
def user_blogs(user_id):
    if user_id is not None:
        user = User.get_by_id(user_id)
    else:
        user = User.get_by_email(session['email'])

    blogs = user.get_blogs()

    return render_template("user_blogs.html", blogs=blogs)
Exemplo n.º 11
0
def login_user():
    email = request.form['email']
    password = request.form['password']

    if User.login_valid(email, password):
        User.login(email)
    else:
        session['email'] = None

    return render_template('profile.html', email=session['email'])
Exemplo n.º 12
0
def loginValidate():
    email = request.form['email']
    password = request.form['password']

    if User.loginValid(email,password):
        User.login(email)
    else:
        return jsonify(error='Invalid user name or password, Please try to login again')

    return render_template('profile.html',email=session['email'])
Exemplo n.º 13
0
def deregister():
    if request.method == 'POST':
        email = session['email']
        password = request.form['password']
        try:
            if User.is_login_valid(email, password):
                User.deregister(email)
                session['email'] = None
                flash("Your account has been removed!", 'warning')
                return render_template('home.html')
        except UserErrors.UserError as e:
            flash("Your password was incorrect", 'danger')

    return render_template('deregister.html', email=session['email'])
Exemplo n.º 14
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('email', required=True, help='Email required!')
        parser.add_argument('password',
                            required=True,
                            help='Password required!')
        data = parser.parse_args()

        try:
            user = User.objects(email=data['email']).first()
            if user is None:
                return error_404("User not found!")

            if verify_hash(data['password'], user.password):
                response = {
                    'access_token':
                    create_access_token(identity=data['email']),
                    'refresh_token':
                    create_refresh_token(identity=data['email'])
                }
                return make_response(response, 200)
            else:
                return error_400("Invalid password!")
        except Exception as e:
            print(e)
            return error_500()
Exemplo n.º 15
0
def preview_image(_id):
    URI = os.environ['MONGODB_URI']
    client = pymongo.MongoClient(Database.URI)
    DATABASE = client['heroku_thg5d5x0']

    email = session['email']

    user = User.get_by_email(email)

    # URI = "mongodb://127.0.0.1:27017"
    # client = pymongo.MongoClient(URI)
    # DATABASE = client['Dindugul']

    fid = ""
    fs = gridfs.GridFS(DATABASE)

    print(DATABASE['road_images'].find({'fileid': _id}))

    for output_data1 in DATABASE['road_images'].find({'stageid': _id}):
        fid = output_data1["fileid"]

    output_data = fs.get(fid).read()

    base64_data = codecs.encode(output_data, 'base64')
    image = base64_data.decode('utf-8')

    if user.designation == 'HQ Staff':
        return render_template('road_image_display.html',
                               images=image,
                               user=user)
    else:
        return render_template('road_image_display_blocks.html',
                               images=image,
                               user=user)
Exemplo n.º 16
0
def deletework(work_id):

    email = session['email']
    user = User.get_by_email(email)
    Work.deletefrom_mongo(work_id=work_id)

    return render_template('deleted.html', user=user)
Exemplo n.º 17
0
def registerNewUser():
    email = request.form['email']
    password = request.form['password']
    if User.register(email,password) is not False:
        return render_template('profile.html', email=session['email'])
    else:
        return 'User already present in the App, Please login'
Exemplo n.º 18
0
def Overall_Summary():

    email = session['email']

    user = User.get_by_email(email)

    if email is not None:

        if request.method == 'GET':

            return render_template('between_dates_overall.html', user=user)

        else:

            start_date = request.form['startdate']

            end_date = request.form['enddate']

            return render_template('overall_summary_sheet.html',
                                   user=user,
                                   start_date=start_date,
                                   end_date=end_date)

    else:

        return render_template('login_fail.html', user=user)
Exemplo n.º 19
0
async def signup(signup: UserSignup):
    user = UserManager()
    user_data = User(**signup.dict())
    u = user.create_user(user_data)
    if u:
        return signup
    else:
        return {"message": "failed"}
Exemplo n.º 20
0
    def delete(self, id):
        try:
            email = get_jwt_identity()
            session_user = User.objects(email=email).first()

            user = User.objects(id=id, active=True).first()
            if user is None:
                return error_404()

            user.active = False
            user.save()
            response = {'message': 'User deleted'}
            return make_response(response, 204)

        except Exception as e:
            print(e)
            return error_500()
Exemplo n.º 21
0
def scheme_form(user_id):

    email = session['email']

    if email is not None:

        if request.method == 'GET':

            user = User.get_by_id(user_id)

            return render_template('add_scheme.html', user=user)

        else:

            user = User.get_by_id(user_id)

            scheme_group_name = request.form['schemegroupname']

            scheme_name = request.form['schemename']

            work_group_name = request.form['workgroupname']

            work_type = request.form['worktype']

            scheme = Scheme(scheme_group_name=scheme_group_name,
                            scheme_name=scheme_name,
                            work_group_name=work_group_name,
                            work_type=work_type)

            scheme.save_to_mongo()

            if user.designation == 'HQ Staff':

                return render_template('application_added.html',
                                       scheme=scheme,
                                       user=user)

            else:
                return render_template('application_added_blocks.html',
                                       scheme=scheme,
                                       user=user)

    else:

        return render_template('login_fail.html')
Exemplo n.º 22
0
def log_out():
    email = session['email']
    user = User.get_by_email(email)
    if email is not None:
        user.logout()
        return render_template('logged_out.html', user=user.username)

    else:
        return render_template('login_fail.html')
Exemplo n.º 23
0
    def setUp(self):
        app.config['TESTING'] = True
        app.config['WTF_CSRF_ENABLED'] = False
        app.config['DEBUG'] = False

        db.init_app(app)
        with app.app_context():
            db.create_all()

            example_user = User(id=1,
                                email="*****@*****.**",
                                username="******")
            example_user.set_password("111")
            db.session.merge(example_user)

            db.session.commit()

        self.app = app.test_client()
Exemplo n.º 24
0
def createNewBlog():
    if request.method == 'GET':
        return render_template('newBlog.html')
    else:
        title = request.form['title']
        description = request.form['description']
        author = User.getByEmail(session['email'])
        blog = Blog(author.email,title,description,author._id)
        blog.saveToMongo()
        return make_response(getBlogs(author._id))
Exemplo n.º 25
0
def createNewPost(blogId):
    if request.method == 'GET':
        return render_template('newPost.html',blogId=blogId)
    else:
        title = request.form['title']
        content = request.form['content']
        author = User.getByEmail(session['email'])
        blog = Blog.getFromMongo(blogId)
        blog.newPost(title,content)
        return make_response(getPostsForBlog(blogId))
Exemplo n.º 26
0
 def get(self):
     query_prop = request.args.get("q", None)
     if query_prop is None:
         results = User.query.all()
     else:
         q = f"%{query_prop}%"
         query = User.query.filter(
             or_(User.name.ilike(q), User.email.ilike(q)))
         results = query.all()
     return User.serialize_list(results), HTTPStatus.OK
Exemplo n.º 27
0
async def add_image_data_route(
    db_name: str,
    task_name: str,
    id: Optional[str] = None,
    image_data: Union[ImageDataSchema, UpdateImageDataModel] = Body(...),
    user: User = Depends(fastapi_users.get_current_active_user)):
    try:
        image_data = jsonable_encoder(image_data, exclude_none=True)
        if id is None and image_data.get("_id", None) is None:
            if user.can_add_image_data(db_name=db_name, task_name=task_name):
                result = await add_image_data(db_name=db_name,
                                              task_name=task_name,
                                              image_data=image_data)
                if result:
                    return ResponseModel(result,
                                         "Image Data added successfully.")
                return ErrorResponseModel("An error occurred", 404,
                                          "Can't add Image Data")
            else:
                return ErrorResponseModel("An error occurred", 503,
                                          "User can't update Image Data")
        else:
            can_edit_protected = user.can_edit_protected_image_data(
                db_name=db_name, task_name=task_name)
            if user.can_edit_image_data(
                    db_name=db_name,
                    task_name=task_name) or can_edit_protected:
                result = await update_image_data(
                    db_name=db_name,
                    task_name=task_name,
                    id=id,
                    image_data=image_data,
                    check_protected=can_edit_protected)
                if result:
                    return ResponseModel(result,
                                         "Image Data updated successfully.")
                return ErrorResponseModel("An error occurred", 404,
                                          "Can't update Image Data")
            else:
                return ErrorResponseModel("An error occurred", 503,
                                          "User can't update Image Data")
    except Exception as e:
        return ErrorResponseModel("An error occurred", 503, e.__str__())
Exemplo n.º 28
0
def register():
    if request.method == 'POST':
        email = request.form['email']
        password = request.form['password']

        try:
            User.register(email, password)
            session['email'] = email
            flash("You just registered!", "success")
            return redirect(url_for('.index'))
        except UserErrors.UserError:
            flash("The current email is invalid or it has been registered.", "danger")
        except MailgunException:
            session['email'] = email
            flash(f"You just registered but not opted in to receive email from Mailgun. Please contact the "
                  f"administrator.", "warning")
            return redirect(url_for('.index'))

    return render_template('register.html')
Exemplo n.º 29
0
    def get(self, id):
        try:
            user = User.objects(id=id, active=True).first()
            if user is None:
                return error_404()

            response = user.serialize(excludes=['password'])
            return make_response(response, 200)
        except Exception as e:
            print(e)
            return error_500()
Exemplo n.º 30
0
    def get(self):
        email = get_jwt_identity()
        try:
            user = User.objects(email=email).first()
            if user is None:
                return error_404()

            response = user.serialize(excludes=['password'])
            return make_response(response, 200)
        except Exception as e:
            print(e)
            return error_500()