Exemplo n.º 1
0
def get_db(database=None):
    database = conf.MONGODB_DB
    mongo = MongoEngine()
    mongo.connect(database,
                  host=conf.MONGODB_HOST,
                  port=conf.MONGODB_PORT,
                  username=conf.MONGODB_USER,
                  password=conf.MONGODB_PASSWD)
    return mongo
Exemplo n.º 2
0
Arquivo: db.py Projeto: zhy0216/ezlog3
def get_db(database=None):
    database = conf.MONGODB_DB
    mongo = MongoEngine()
    mongo.connect(
        database,
        host=conf.MONGODB_HOST,
        port=conf.MONGODB_PORT,
        username=conf.MONGODB_USER,
        password=conf.MONGODB_PASSWD
    )
    return mongo
Exemplo n.º 3
0
def get_mongoDB():
    """ this function avoids circular referencing when dealing with MongoEngine, or any other database
        Import this to any module/file/function using mongo: from db.db import get_mongoDB
    """
    if 'db' not in g:

        # connect to mongoEngine and load configuration settings from config.py
        mongo = MongoEngine()
        dbVersion = current_app.config["MONGODB_SETTINGS"]["db"]
        mongo.connect(dbVersion, connect=False)

        # print(vars(g))
        # print(dir(mongo))

        # save database into flask's "g" variable
        g.db = mongo.get_db()

    return g.db
Exemplo n.º 4
0
def get_db():
    ## initialize / refresh DB post-fork for server performance
    global db
    if db is None:
        db = MongoEngine()
        db.init_app(app)
        db.connect(connectTimeoutMS=30000,
                   socketTimeoutMS=None,
                   socketKeepAlive=True,
                   connect=False,
                   maxPoolsize=1)
    else:
        db.connect(connectTimeoutMS=30000,
                   socketTimeoutMS=None,
                   socketKeepAlive=True,
                   connect=False,
                   maxPoolsize=1)
    return db
Exemplo n.º 5
0
# This module is used as part of unit and functional testing. Making database connection with the testing database.

import os
from flask_mongoengine import MongoEngine
import json
import sys
here = os.path.dirname(os.path.abspath(__file__))
filename = os.path.join(here, './../testenv.json')
with open(filename) as file:
    test_env_details = json.load(file)
mongo = MongoEngine()
mongo.connect(test_env_details['testEnvInfo']['db-name'],
              host=test_env_details['testEnvInfo']['db-host'])
Exemplo n.º 6
0
# -*- coding: utf-8 -*-
import datetime
from flask_mongoengine import MongoEngine, ValidationError
from flask_security import UserMixin, RoleMixin
from werkzeug.security import check_password_hash

from . import settings

# Create database connection object and instantiation of mongodb
db = MongoEngine()
db.connect('project1', host=settings.MONGO_DATABASE_URI)


class Role(db.Document, RoleMixin):
    name = db.StringField(max_length=80, unique=True)
    description = db.StringField(max_length=255)


class User(db.Document, UserMixin):
    email = db.StringField(required=True, max_length=255, unique=True)
    password = db.StringField(max_length=255)
    username = db.StringField(max_length=255)
    active = db.BooleanField(default=True)
    confirmed_at = db.DateTimeField()
    roles = db.ListField(db.ReferenceField(Role), default=[])

    @staticmethod
    def validate_login(password_hash, password):
        return check_password_hash(password_hash, password)

    def get_roles(self):
Exemplo n.º 7
0
from flask_login import UserMixin
from flask_mongoengine import MongoEngine
import datetime

mongo_db = MongoEngine()
mongo_db.connect("test")


class User(UserMixin, mongo_db.DynamicDocument):
    meta = {'collection': 'admin_user', 'indexes': ['email', 'password']}
    first_name = mongo_db.StringField(max_length=40)
    last_name = mongo_db.StringField(max_length=40)
    email = mongo_db.StringField(max_length=40, unique=True)
    password = mongo_db.StringField()
    can_create = mongo_db.BooleanField(default=False)
    can_edit = mongo_db.BooleanField(default=False)
    can_delete = mongo_db.BooleanField(default=False)
    can_export = mongo_db.BooleanField(default=False)
    can_import = mongo_db.BooleanField(default=False)
    is_admin = mongo_db.BooleanField()
    is_view1 = mongo_db.BooleanField()
    is_view2 = mongo_db.BooleanField()
    is_view3 = mongo_db.BooleanField()
    insert_date = mongo_db.DateTimeField(default=datetime.datetime.utcnow)

    def __unicode__(self, ):
        return self.email


User = User()
User.first_name = 'Priya'
from flask import Flask
from flask_mongoengine import MongoEngine

from apis import api

from config import get_config

app = Flask(__name__)

db = MongoEngine()

CONFIG = get_config()
db.connect(db=CONFIG["mongodb"]["db_name"],
           username=CONFIG["mongodb"]["username"],
           password=CONFIG["mongodb"]["password"],
           host=CONFIG["mongodb"]["host"],
           port=CONFIG["mongodb"]["port"],
           authentication_source=CONFIG["mongodb"]["auth_source"])

api.init_app(app)
app.run(host="0.0.0.0", port=5000, debug=True)
Exemplo n.º 9
0
from flask import Flask
from config import Config
from flask_mongoengine import MongoEngine, MongoEngineSessionInterface
from flask_swagger_ui import get_swaggerui_blueprint

app = Flask(__name__)

SWAGGER_URL = '/swagger'
SWAGGERUI_BLUEPRINT = get_swaggerui_blueprint(
    SWAGGER_URL,
    '/static/api_swagger.yaml',
    config={'app_name': "api-swagger"})
app.register_blueprint(SWAGGERUI_BLUEPRINT, url_prefix=SWAGGER_URL)

app.config.from_object(Config)

db = MongoEngine(app)
db.connect(**Config.MONGODB_SETTINGS)
app.session_interface = MongoEngineSessionInterface(db)
Exemplo n.º 10
0
def main(argv):

    email = ''
    role = ''
    action = ''

    try:
        opts, args = getopt.getopt(argv, "hu:r:", ["email=", "role="])

    except getopt.GetoptError:
        usage()
        sys.exit(2)

    for opt, arg in opts:
        if opt == '-h':
            usage()
            sys.exit()
        elif opt in ("-u", "--email"):
            email = arg
        elif opt in ("-r", "--role"):
            role = arg

    if len(args) == 0:
        usage()
        sys.exit()

    action = args[0]

    if not email:
        usage()
        sys.exit(2)

    if not role:
        usage()
        sys.exit(2)

    db = MongoEngine()
    db.connect('project1', host='mongodb://localhost:27017/pulse')

    class Role(db.Document, RoleMixin):
        name = db.StringField(max_length=80, unique=True)
        description = db.StringField(max_length=255)

    class User(db.Document, UserMixin):
        email = db.StringField(required=True, max_length=255, unique=True)
        password = db.StringField(max_length=255)
        username = db.StringField(max_length=255)
        active = db.BooleanField(default=True)
        confirmed_at = db.DateTimeField()
        roles = db.ListField(db.ReferenceField(Role), default=[])

        @staticmethod
        def validate_login(password_hash, password):
            return check_password_hash(password_hash, password)

        def get_roles(self):
            return [r.name.encode("utf-8") for r in self.roles]

    # Setup Flask-Security
    user_datastore = MongoEngineUserDatastore(db, User, Role)

    # Add a role to a user
    def add_role(user, role):
        added_role = user_datastore.find_or_create_role(role)
        user_datastore.add_role_to_user(user, added_role)
        print("Added {0} role to user {1}".format(role, email))

    # Remove a role from a user
    def remove_role(user, role):
        added_role = user_datastore.find_or_create_role(role)
        user_datastore.remove_role_from_user(user, added_role)
        print("Removed {0} role from user {1}".format(role, email))

    func, params = {
        'add': (add_role, (email, role)),
        'remove': (remove_role, (email, role))
    }.get(action,
          (specify, ('Action is not properly. Please select add or remove', )))

    func(*params)