コード例 #1
0
    async def login(self, cridentail):
        async with self.engine.acquire() as connection:
            user_dao = UserDAO(connection)
            user = await user_dao.find_by_username(cridentail['username'])

            if user:
                if utils.hash(cridentail['password'], user['salt']) == user['password']:
                    return user

        raise CredentailInvalid()
コード例 #2
0
def user_dao():
    test_user_data = [{
        "_id":
        18,
        "url":
        "http://initech.company.com/api/v2/users/1.json",
        "external_id":
        "74341f74-9c79-49d5-9611-87ef9b6eb75f",
        "name":
        "Francisca Rasmussen",
        "alias":
        "Miss Coffey",
        "created_at":
        "2016-04-15T05:19:46 -10:00",
        "active":
        True,
        "verified":
        True,
        "shared":
        False,
        "locale":
        "en-AU",
        "timezone":
        "Sri Lanka",
        "last_login_at":
        "2013-08-04T01:03:27 -10:00",
        "email":
        "*****@*****.**",
        "phone":
        "8335-422-718",
        "signature":
        "Don't Worry Be Happy!",
        "organization_id":
        119,
        "tags": ["Springville", "Sutton", "Hartsville/Hartley", "Diaperville"],
        "suspended":
        True,
        "role":
        "admin"
    }]
    test_user_dao = UserDAO()
    test_user_dao.users = test_user_data
    return test_user_dao
コード例 #3
0
ファイル: search_ctl.py プロジェクト: marcosnr/search-cli-app
    def __init__(self):
        """Init App with default data"""
        logging.debug("initialising app...")
        self.organizations_uri = config.DEFAULT_ORG_DATA
        self.org_dao = OrganizationDAO()

        self.users_uri = config.DEFAULT_USER_DATA
        self.user_dao = UserDAO()

        self.tickets_uri = config.DEFAULT_TICKET_DATA
        self.ticket_dao = TicketDAO()
コード例 #4
0
    async def detail(self, id: int, page: int):
        topic_dao = TopicDAO()
        reply_dao = ReplyDAO()
        user_dao = UserDAO()

        topic = serializer.serialize(await topic_dao.find(id))
        topic['replies'] = await reply_dao.find_by_topic_id(id, page)
        topic['author'] = await user_dao.find(topic['author_id'])
        topic['replies_count'] = (await
                                  reply_dao.count_by_topic_id(id))['count']
        topic['last_comment_by'] = await user_dao.find(
            topic['last_replied_by_user_id'])

        await topic_dao.view_increase(id)

        return topic
コード例 #5
0
    async def register(self, user):

        async with self.engine.acquire() as connection:
            transaction = await connection.begin()

            user_dao = UserDAO(connection)
            
            found = await user_dao.find_by_username(user['username'])
            if found:
                await transaction.rollback()
                raise DuplicatedUser(user['username'])

            user = await user_dao.register(user)

            await transaction.commit()

        return user
コード例 #6
0
async def user_middleware(request, handler):
    session = request['session']

    if 'user_id' in session:
        user_id = session['user_id']
        dao = UserDAO()
        user_table = await dao.find(user_id)
        if not user_table:
            user = AnonymousUser()
        else:
            user = User()
            user.id = user_table['id']
            user.username = user_table['username']
    else:
        user = AnonymousUser()
    request['user'] = user
    request['aiohttp_jinja2_context'] = {'user': user, 'request': request}
    response = await handler(request)
    return response
コード例 #7
0
ファイル: topic.py プロジェクト: dbdoer/ioa
    async def detail(self, id: int, page: int):
        async with self.engine.acquire() as connection:
            topic_dao = TopicDAO(connection)
            reply_dao = ReplyDAO(connection)
            user_dao = UserDAO(connection)

            topic = self.row2dict(await topic_dao.find(id))
            topic['replies'] = await reply_dao.find_by_topic_id(id, page)
            topic['author'] = await user_dao.find(topic['author_id'])
            topic['replies_count'] = (await
                                      reply_dao.count_by_topic_id(id))['count']
            topic['last_comment_by'] = await user_dao.find(
                topic['last_replied_by_user_id'])

            transaction = await connection.begin()
            await topic_dao.view_increase(id)
            await transaction.commit()

        return topic
コード例 #8
0
ファイル: middlewares.py プロジェクト: dbdoer/ioa
async def user_middleware(request, handler):
    logging.info("executing middleware user")
    session = request['session']

    if 'user_id' in session:
        user_id = session['user_id']
        async with DatabaseContext.default.engine.acquire() as connection:
            dao = UserDAO(connection)
            user_table = await dao.find(user_id)
            if not user_table:
                user = AnonymousUser()
            else:
                user = User()
                user.id = user_table['id']
                user.username = user_table['username']
    else:
        user = AnonymousUser()
    request['user'] = user
    print(2)
    # print(request['aiohttp_jinja2_context'])
    # request['aiohttp_jinja2_context'].update(user = user)
    request['aiohttp_jinja2_context'] = {'user': user, 'request': request}
    response = await handler(request)
    return response
コード例 #9
0
from apispec import APISpec
from apispec.ext.flask import FlaskPlugin
from apispec.ext.marshmallow import MarshmallowPlugin

from flask import Flask, jsonify, g, request
from flask.views import MethodView
from flask_cors import CORS

from marshmallow import Schema, fields as ma_fields

from decorators import login_required
from models import UserDAO

DAO = UserDAO()
DAO.create({'name': 'remi'})
DAO.create({'name': 'caro'})

app = Flask(__name__)
CORS(app)
"""
### flask + marshmallow + apispec implementation
"""

# Create an APISpec
spec = APISpec(
    title='MA Swagger UserAPI',
    version='1.0.0',
    openapi_version='2.0',
    plugins=(
        FlaskPlugin(),
        MarshmallowPlugin(),
コード例 #10
0
ファイル: user.py プロジェクト: imcj/ioa
 def __init__(self):
     self.user_dao = UserDAO()
コード例 #11
0
def search_data():
    test_user_data = [{
        "_id": 2,
        "url": "http://initech.company.com/api/v2/users/2.json",
        "external_id": "c9995ea4-ff72-46e0-ab77-dfe0ae1ef6c2",
        "name": "Cross Barlow",
        "alias": "Miss Joni",
        "created_at": "2016-06-23T10:31:39 -10:00",
        "active": True,
        "verified": True,
        "shared": False,
        "locale": "zh-CN",
        "timezone": "Armenia",
        "last_login_at": "2012-04-12T04:03:28 -10:00",
        "email": "*****@*****.**",
        "phone": "9575-552-585",
        "signature": "Don't Worry Be Happy!",
        "organization_id": 106,
        "tags": ["Foxworth", "Woodlands", "Herlong", "Henrietta"],
        "suspended": False,
        "role": "admin"
    }, {
        "_id":
        3,
        "url":
        "http://initech.company.com/api/v2/users/3.json",
        "external_id":
        "85c599c1-ebab-474d-a4e6-32f1c06e8730",
        "name":
        "Ingrid Wagner",
        "alias":
        "Miss Buck",
        "created_at":
        "2016-07-28T05:29:25 -10:00",
        "active":
        False,
        "verified":
        False,
        "shared":
        False,
        "locale":
        "en-AU",
        "timezone":
        "Trinidad and Tobago",
        "last_login_at":
        "2013-02-07T05:53:38 -11:00",
        "email":
        "*****@*****.**",
        "phone":
        "9365-482-943",
        "signature":
        "Don't Worry Be Happy!",
        "organization_id":
        104,
        "tags": ["Mulino", "Kenwood", "Wescosville", "Loyalhanna"],
        "suspended":
        False,
        "role":
        "end-user"
    }]
    test_user_dao = UserDAO()
    test_user_dao.users = test_user_data
    search_data.user_dao = test_user_dao
    return search_data