Esempio n. 1
0
def reset_database(app):
    with app.app_context():
        from database.models.general.customer import Customer
        from database.models.general.user import User
        from database.models.cloud.cloud_provider import CloudProvider
        from database.models.cloud.cloud_account import CloudAccount
        from uuid import uuid4

        with open("data/initial_data.json") as fr:
            initial_data = json.loads(fr.read())

        db.drop_all()
        db.create_all()

        for dcustomer in initial_data["customers"]:

            uid = str(uuid4())
            customer = Customer(uid=uid,\
                name=dcustomer["name"])
            db.session.add(customer)
            db.session.commit()

            # This saves the last inserted customer_uid
            customer_uid = customer.uid

        for dcloud_provider in initial_data["cloud_providers"]:
            uid = str(uuid4())
            cloud_provider = CloudProvider(uid=uid,\
                name=dcloud_provider["name"], \
                abbreviation=dcloud_provider["abbreviation"])
            db.session.add(cloud_provider)
            db.session.commit()

            # This saves the last inserted cloud_provider_uid
            cloud_provider_uid = cloud_provider.uid

        for dcloud_account in initial_data["cloud_accounts"]:
            uid = str(uuid4())

            # This takes customer_uid and cloud_provider_uid recently inserted
            cloud_account = CloudAccount(uid=uid, \
                name=dcloud_account["name"], \
                customer_uid=customer_uid, \
                cloud_provider_uid=cloud_provider_uid)
            db.session.add(cloud_account)
            db.session.commit()

        hashing = Hashing()
        hashing_salt = initial_data["hashing_salt"]

        for dcloud_account in initial_data["users"]:

            hashed_password = hashing.hash_value(dcloud_account["password"],
                                                 salt=hashing_salt)

            user = User(username=dcloud_account["username"], \
                password=hashed_password, \
                name=dcloud_account["name"])
            db.session.add(user)
            db.session.commit()
Esempio n. 2
0
def login():
    if request.method == 'POST':
        details = request.form
        hashing = Hashing(app)
        username = details['username']
        passwordhash = hashing.hash_value(details['password'], salt='rhino3d')
        cur = mysql.connection.cursor()
        query = "SELECT employeeid FROM dcip_employees WHERE employeeid = %s AND password = %s"
        param = (username, passwordhash)
        cur.execute(query, param)
        userdata = cur.fetchall()
        employeeid = ''
        for row in userdata:
            employeeid = row[0]
        if (len(employeeid) > 0):
            session['employeeid'] = employeeid
            return redirect(url_for('leaderboard'))
        else:
            return redirect(url_for('login'))
    else:
        return render_template('index.html',
                               title='DCKAP Community Insider Program')
class ImageSaver():
    def __init__(self):
        self.hashing = Hashing()
        self.extensions = set(['png', 'jpg', 'jpeg'])

    def save_image(self, image, token, label=""):
        '''
        Recieves an image from form, a user token and a label
        Returns a http response
        '''
        if not self.check_extensions(image.filename):
            return Response("Not an exentsion supported", status=400)
        create_directory(path.join(app.config['UPLOAD_FOLDER'], label))
        hashed_path = self.hashed_path(image, token, label)
        image.save(hashed_path)
        return Response("Created", status=201)

    def hashed_path(self, image, token, label=""):
        '''
        Recieves an image object and a token
        Returns hashed path of object
        '''
        filename = secure_filename(image.filename)
        hashed_name= self.hashing.hash_value(filename.split('.')[0], salt=token) \
            +'.'+ filename.split('.')[1]

        return path.join(app.config['UPLOAD_FOLDER'], label, hashed_name)

    def check_extensions(self, filename):
        '''
        Recieves a filename
        Returns if file has extension permited
        '''
        return '.' in filename and \
            filename.rsplit('.', 1)[1].lower() in self.extensions

    def delete_image(self, image_path):
        '''
        Recieves a path of a file already hashed
        Returns True if file had deleted
        '''
        if path.exists(image_path):
            remove(image_path)
            return True
        return False
Esempio n. 4
0
def create_app():
    if os.getenv("SENTRY_DSN"):
        sentry_sdk.init(
            dsn=os.environ["SENTRY_DSN"],
            integrations=[FlaskIntegration()],
            traces_sample_rate=1.0
        )
    app = Flask(__name__)
    app.secret_key = os.environ["FLASK_SECRET"]
    app.config.update(
        SESSION_COOKIE_SECURE=True,
        SESSION_COOKIE_HTTPONLY=True,
        SESSION_COOKIE_SAMESITE="Lax",
        REDIS_URL=os.environ["REDIS_URL"],
        VERSION="0.0.1",
        UPLOAD_FOLDER=os.getenv("UPLOAD_FOLDER", "/tmp")
    )
    CORS(app,
         methods=["GET", "POST", "OPTIONS"],
         supports_credential=True)
    app.redis_client = FlaskRedis(app)
    app.hashing = Hashing(app)
    return app
Esempio n. 5
0
from flask import Flask, render_template
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from flask_socketio import SocketIO
from flask_sqlalchemy import SQLAlchemy
from flask_bcrypt import Bcrypt
from flask_hashing import Hashing
from flask_login import LoginManager

app = Flask(__name__)

app.config.from_object('config')
socketio = SocketIO(app)
bcrypt = Bcrypt(app)
hashing = Hashing(app)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

login_manager = LoginManager()
login_manager.init_app(app)

manager = Manager(app)
manager.add_command('db', MigrateCommand)

from app.models import user
from app.forms import user
from app.controllers import KDC, auth
Esempio n. 6
0
from flask_login import LoginManager, current_user, login_user, logout_user, login_required, UserMixin
from database import db_session

# Setting APP
app = Flask(__name__)

# Configure app to use in filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
app.config["HASHING_METHOD"] = "sha256"
app.config["SECRET_KEY"] = "lkkajdghdadkglajkgah"  # a secret key for login

# Init some fungtion needed in app
Session(app)
socketio = SocketIO(app, manage_session=False)
hash = Hashing(app)
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'index'  # the login view of your application
login_manager.login_message = 'Silahkan login utuk dapat mengakses halaman.'
login_manager.login_message_category = "warning"

# Prepare Global Variable
data_response = [{"A": 0, "B": 0, "C": 0, "D": 0, "E": 0}]
responden = []
response_done = False


class User(UserMixin):
    def __init__(self, id):
        self.id = id
Esempio n. 7
0
from flask_mako import MakoTemplates
from flask_sqlalchemy import SQLAlchemy
from flask_hashing import Hashing
from flask_restful import Api
# from flask_admin import Admin
from flask_principal import Principal, Permission, RoleNeed
from flask_login import LoginManager
from flask_wtf.csrf import CSRFProtect
from flask_cache import Cache
from flask_debugtoolbar import DebugToolbarExtension
# from flask_socketio import SocketIO
from flask_celery import Celery

mako = MakoTemplates()
db = SQLAlchemy()
hashing = Hashing()
# admin = Admin()
csrf = CSRFProtect()
api = Api(decorators=[csrf.exempt])  # decorators参数,给所有api的url加上装饰器,免于csrf检查
cache = Cache()
debug_toolbar = DebugToolbarExtension()
# socketio = SocketIO()
celery = Celery()

principlas = Principal()
admin_permission = Permission(RoleNeed('admin'))
user_permission = Permission(RoleNeed('user'))

login_manager = LoginManager()
login_manager.login_view = "login"
login_manager.session_protection = "basic"
Esempio n. 8
0
from flask import Flask, render_template, redirect
import insertDB
import os
from flask import Flask
from flask_hashing import Hashing
from flask import Flask, request, session
from flask_login import LoginManager, login_user, logout_user, login_required, UserMixin, current_user
from werkzeug import secure_filename

app = Flask(__name__)
app.config['HASHING_METHOD'] = 'sha384'

hashing = Hashing(app)
hashing.init_app(app)

login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = ''
app.config['SECRET_KEY'] = "lkkajdghdadkglajkgah"
app.config['UPLOAD_FOLDER'] = 'static/prodotti'


@login_manager.user_loader
def load_user(user_id):
    return User(user_id)


class User(UserMixin):
    def __init__(self, id):
        self.id = id
Esempio n. 9
0
        'status': 404,
        'For more info': "Visit support docs"
    },
    'ResourceDoesNotExist': {
        'message': "A resource with that ID no longer exists.",
        'status': 410,
        'extra': "Any extra information you want.",
    },
}

app = Flask(__name__)
api = Api(app, errors=errors)

salt = config.password  #Set salt/key
password = '******'
hashing = Hashing(app)
h = hashing.hash_value('password', salt)  #Generate hash

#Home page


@app.route('/')
def home():
    #List of Countries
    coun = [
        'Morocco', 'Paraguay', 'Palau', 'Zimbabwe', 'El Salvador', 'Portugal',
        'France', 'Japan', 'Mauritania', 'Sweden', 'Trinidad and Tobago',
        'Uzbekistan', 'United Kingdom of Great Britain and Northern Ireland',
        'Sri Lanka', 'Mauritius', 'Libya', 'Belarus',
        'Saint Vincent and the Grenadines', 'Yemen', 'Uganda', 'Faroe Islands',
        'Bhutan', 'Panama', 'Honduras', 'Bosnia and Herzegovina', 'Greenland',
Esempio n. 10
0
def create_app(test_config=None):
    # create the Flask
    app = Flask(__name__, instance_relative_config=True)
    # instance for scss
    assets = Environment(app)
    assets.url = app.static_url_path
    scss = Bundle('index.scss', filters='scss', output='index.css')
    assets.register('scss_all', scss)
    assets.init_app(app)
    hashing = Hashing(app)
    # configure the app
    app.config.from_mapping(
        SECRET_KEY='dev',
        MONGO_URI="mongodb://*****:*****@localhost:27017/souq?authSource=admin"
    )

    # connect to MongoDB using mongoengine
    connect(db='souq', )

    @app.route('/test-db')
    def test_db():
        bert = User(username='******',
                    password='******',
                    first_name='Bert',
                    last_name='Sesame').save()

        cookie = User(username='******',
                      password='******',
                      first_name='Cookie',
                      last_name='Monster').save()
        c1 = Comment(content='test comment 1', author=bert)
        c2 = Comment(content='test comment 2', author=cookie)

        # Create Textitem
        item1 = TextItem(title='Fun with MongoEngine',
                         author=bert,
                         comments=[c1, c2])

        item1.content = 'Took a look at MongoEngine today, looks pretty cool.'
        item1.tags = ['mongodb', 'mongoengine']
        item1.save()

        # Create Linkitem
        item2 = LinkItem(title='MongoEngine Documentation', author=bert)
        item2.link_url = 'http://docs.mongoengine.com/'
        item2.tags = ['mongoengine']
        item2.save()

        # for item in item.objects:
        #     print(item.title)

        return 'data base'

    # register the 'item' blueprint
    from .blueprints.item import item_bp
    app.register_blueprint(item_bp)

    # register the 'user' blueprint
    from .blueprints.user import user_bp
    app.register_blueprint(user_bp)

    # register the 'login' blueprint
    from .blueprints.login import login_bp
    app.register_blueprint(login_bp)

    from .blueprints.dashboard import dashboard_bp
    app.register_blueprint(dashboard_bp)

    return app
Esempio n. 11
0
# Imports
import time
import random
import string
import re
import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
     render_template, flash, Markup, send_file
from flask_hashing import Hashing
from werkzeug import secure_filename

app = Flask(__name__)            # create the application instance :)
app.config.from_object(__name__) # load config from this file , flaskr.py

hashing = Hashing(app)
app.config['TRAP_BAD_REQUEST_ERRORS'] = True

# Load default config and override config from an environment variable
app.config.update(dict(
    DATABASE=os.path.join(app.root_path, 'flaskr.db'),
    SECRET_KEY='#####',
    USERNAME='******',  #SUPERADMIN name
    PASSWORD= hashing.hash_value('####',salt='####'), #SUPERADMIN password
    ALLOWED_EXTENSIONS = set(['jpg', 'jpeg', 'png', 'pdf']), #Allowed extensions to store
    UPLOAD_FOLDER = '/var/www/html/family-sharer/static/home',
    IMAGE_ROOT = '/static/home/'
))


app.config.from_envvar('FLASKR_SETTINGS', silent=True)
 def __init__(self):
     self.hashing = Hashing()
     self.extensions = set(['png', 'jpg', 'jpeg'])