Esempio n. 1
0
    def wrapper(*args, **kwargs):
        if bottle.request.get_cookie('token') or bottle.request.GET.get('token'):
            token = bottle.request.get_cookie('token') or bottle.request.GET.get('token')
            
            s = Session(_DBCON, publicId=token)
            if not s.valid or not s.check(bottle.request.get('REMOTE_ADDR'), bottle.request.get('HTTP_USER_AGENT')):
                return bottle.HTTPError(403, 'Access denied')

            else:
                bottle.request.session = s
                return callback(*args, **kwargs)
        
        elif bottle.request.GET.get('apikey'):
            users = EntityManager(_DBCON).get_all(User, filter_criteria={'apikey':bottle.request.GET.get('apikey')})

            if len(users)==1:
                u = users[0]
                s = Session(_DBCON)
                s.userId = u._id

                bottle.request.session = s

                return callback(*args, **kwargs)
            else:
                return bottle.HTTPError(403, 'Access denied')

        else:
            return bottle.HTTPError(403, 'Access denied')
Esempio n. 2
0
 def wrapper(*args, **kwargs):
     if bottle.request.get_cookie('token'):
         s = Session(_DBCON, publicid=bottle.request.get_cookie('token'))
         if not s.valid or not s.check(bottle.request.get('REMOTE_ADDR'), bottle.request.get('HTTP_USER_AGENT')):
             return bottle.redirect('/login')
         else:
             bottle.request.session = s
             return callback(*args, **kwargs)
     else:
         return bottle.redirect('/login')
Esempio n. 3
0
    def wrapper(*args, **kwargs):
        if bottle.request.get_cookie("token") or bottle.request.GET.get("token"):
            token = bottle.request.get_cookie("token") or bottle.request.GET.get("token")

            s = Session(_DBCON, publicid=token)
            if not s.valid or not s.check(bottle.request.get("REMOTE_ADDR"), bottle.request.get("HTTP_USER_AGENT")):
                return bottle.redirect("/login")
            else:
                bottle.request.session = s
                return callback(*args, **kwargs)
        else:
            return bottle.redirect("/login")
Esempio n. 4
0
 def wrapper(*args, **kwargs):
     if bottle.request.get_cookie('token') or bottle.request.GET.get('token'):
         token = bottle.request.get_cookie('token') or bottle.request.GET.get('token')
         
         s = Session(_DBCON, publicId=token)
         if not s.valid or not s.check(bottle.request.get('REMOTE_ADDR'), bottle.request.get('HTTP_USER_AGENT')):
             return bottle.HTTPError(403, 'Access denied')
             
         else:
             bottle.request.session = s
             return callback(*args, **kwargs)
     else:
         return bottle.HTTPError(403, 'Access denied')
Esempio n. 5
0
def index():
    user = FacebookClient().process(bottle.request.GET['code'])
    
    if user:
        users = EntityManager(_DBCON).getAll(User, filterCriteria={'facebookUserId':user['id']})
        if users:
            _id = users[0]._id
        else:
            _id = None

        
        u = User(_DBCON, _id=_id)
        u.username = user['name']
        u.password = user['id']
        u.valid = False
        u.facebookUserId = user['id']
        u.save()
        
        s = Session(_DBCON)
        s.userid = u._id
        s.ip = bottle.request.get('REMOTE_ADDR')
        s.useragent = bottle.request.get('HTTP_USER_AGENT')
        s.save()
        
        s.set_cookie()
    
        bottle.redirect('/')
        
    else:
        bottle.redirect('/login')   
Esempio n. 6
0
def index():
    vd = {
        #'date':datetime.datetime.now().strftime('%Y'),
        'baseurl':settings.BASEURL,
    }

    e = bottle.request.POST.get('email')
    p = bottle.request.POST.get('password')
        
    if e and p:
        u = User(_DBCON, email=e, password=p)
        
        if u._id:
            s = Session(_DBCON)
            s.userid = u._id
            s.ip = bottle.request.get('REMOTE_ADDR')
            s.useragent = bottle.request.get('HTTP_USER_AGENT')
            s.save()
            
            s.set_cookie()
            
            bottle.redirect('/')
        else:
            return bottle.template('login', error='Incorrect email/password combination', email=e, password=p, vd=vd)
    else:
        return bottle.template('login', error='Please complete the form', email=e or '', password=p or '', vd=vd)
Esempio n. 7
0
def index(token):
    u = User(_DBCON)
    if u.activate(token):
        s = Session(_DBCON)
        s.userid = u._id
        s.save()
        
        bottle.response.set_cookie('token', str(s.publicid), path='/')
        bottle.redirect('/')
    else:
        vd = {
            #'date':datetime.datetime.now().strftime('%Y'),
            'baseurl':settings.BASEURL,
        }
        return bottle.template('error', error='The token does not match any account that is pending activation', vd=vd)
Esempio n. 8
0
    def wrapper(*args, **kwargs):
        if bottle.request.get_cookie('token') or bottle.request.GET.get(
                'token'):
            token = bottle.request.get_cookie(
                'token') or bottle.request.GET.get('token')

            s = Session(_DBCON, publicid=token)
            if not s.valid or not s.check(
                    bottle.request.get('REMOTE_ADDR'),
                    bottle.request.get('HTTP_USER_AGENT')):
                return bottle.redirect('/login')
            else:
                bottle.request.session = s
                return callback(*args, **kwargs)
        else:
            return bottle.redirect('/login')
Esempio n. 9
0
def newSession(db, userObj):

    session = Session(db, getUuid())
    session.username = userObj["name"]
    session.cookie = {
        "id": userObj["id"],
        "name": userObj["name"],
        "role": userObj["role"]
    }
    session.role = userObj["role"]
    session.username = userObj["name"]
    session.userId = userObj["id"]

    session.add()

    return session.toObj()
Esempio n. 10
0
    async def insertSession(self, userId: int) -> Session:
        sql = Query.into(sessions).columns(sessions.user_id, sessions.updated_at) \
            .insert(userId, datetime.now(timezone.utc)) \
            .returning(sessions.session_id, sessions.user_id, sessions.updated_at)

        result = await databaseClient.query(sql.get_sql())
        row = result[0]
        return Session(sessionId=row[0], userId=row[1], updatedAt=row[2])
Esempio n. 11
0
    async def refreshSession(self, refreshToken: str) -> dict:
        info = jwt.decode(refreshToken, JWT_SECRET, algorithms=['HS256'])
        if info['type'] != 'REFRESH': raise Exception('Not refresh token')

        session = Session.fromDict(info['session'])
        newSession = await userRepository.refreshSession(session)
        if newSession is None: raise Exception('Wrong token')
        return self._createTokens(newSession)
Esempio n. 12
0
    async def getUser(self, accessToken: str) -> Optional[User]:
        info = jwt.decode(accessToken, JWT_SECRET, algorithms=['HS256'])
        if info['type'] != 'ACCESS': return None

        session = Session.fromDict(info['session'])
        if (await userRepository.checkSession(session)):
            return await userRepository.getUserById(session.userId)
        else:
            raise Exception('Wrong token')
Esempio n. 13
0
    def _login_user(self, u):
        s = Session(_DBCON)
        s.userid = u._id
        s.ip = bottle.request.get('REMOTE_ADDR')
        s.useragent = bottle.request.get('HTTP_USER_AGENT')
        s.save()

        return s
Esempio n. 14
0
def current_user(request):
    if 'session_id' in request.cookies:
        log('request', request.headers)
        session_id = request.cookies['session_id']
        log('user', session_id)
        session = Session.one(session_id=session_id)
        user = User.one(id=session.user_id)
        return user
    else:
        log('user', User.guest())
        return User.guest()
Esempio n. 15
0
    async def refreshSession(self, session: Session) -> Optional[Session]:
        sql = Query.update(sessions).set(sessions.updated_at, datetime.now(timezone.utc)) \
            .where(Criterion.all([
                sessions.session_id == session.sessionId,
                sessions.user_id == session.userId,
                sessions.updated_at == session.updatedAt
            ])) \
            .returning(sessions.session_id, sessions.user_id, sessions.updated_at)

        result = await databaseClient.query(sql.get_sql())
        if len(result) == 0: return None
        row = result[0]
        return Session(sessionId=row[0], userId=row[1], updatedAt=row[2])
Esempio n. 16
0
def loginUser(userId):
    s = Session(_DBCON)
    s.userId = userId
    s.ip = bottle.request.get('REMOTE_ADDR')
    s.userAgent = bottle.request.get('HTTP_USER_AGENT')
    s.save()

    return s.publicId
Esempio n. 17
0
    def _login_user(self, u):
        s = Session(_DBCON)
        s.userid = u._id
        s.ip = bottle.request.get("REMOTE_ADDR")
        s.useragent = bottle.request.get("HTTP_USER_AGENT")
        s.save()

        return s
Esempio n. 18
0
 def _createTokens(self, session: Session) -> dict:
     now = datetime.now(timezone.utc)
     accessExp = now + ACCESS_TIMEDELTA
     refreshExp = now + REFRESH_TIMEDELTA
     return {
         'access':
         jwt.encode(
             {
                 'exp': accessExp,
                 'type': 'ACCESS',
                 'session': session.toDict()
             },
             JWT_SECRET,
             algorithm='HS256').decode(),
         'refresh':
         jwt.encode(
             {
                 'exp': refreshExp,
                 'type': 'REFRESH',
                 'session': session.toDict()
             },
             JWT_SECRET,
             algorithm='HS256').decode()
     }
Esempio n. 19
0
def getSession(db, sessionId=None):

    session = Session(db, sessionId)
    if (session.init()):
        ERROR("get session error %s" % sessionId)
        return {}

    session.update()

    return session.toObj()
Esempio n. 20
0
def new_pot_registration(pot_id):
    try:
        # NOTE: Have to call datetime.utcnow() here instead of creating default values in class Session as it will stay as constant
        new_session = Session(newSessInput=NewSessionInput(potId=pot_id),
                              sessionStartTime=datetime.utcnow())
        # NOTE: Have to call datetime.utcnow() here instead of creating default values in class Pot as it will stay as constant
        # Another way of getting utc time is datetime.now(timezone.utc)
        new_pot = Pot(potId=pot_id,
                      potRegisteredTime=datetime.utcnow(),
                      session=new_session)
        quiz_dates = scheduled_quiz_dates(new_session.sessionStartTime,
                                          new_session.quiz.quizDayNumbers)
        new_session.quiz.quizDates = quiz_dates
        return new_pot
    except Exception as e:
        return e
Esempio n. 21
0
 def get_session(node):
     return Session(name=CalendarScrapper.get_name(node),
                    begin=CalendarScrapper.get_begin(node),
                    location=CalendarScrapper.get_location(node),
                    duration=CalendarScrapper.get_duration(node))
Esempio n. 22
0
    # a = np.array([[1], [2], [3]])
    # # b = np.array([[1,2 , 3, 3],
    # # 		[4, 5, 6, 6],
    # # 		[7, 8, 9, 9]])
    # b = np.array([[4], [5], [6]])
    # print(a.T.dot(b) - 1)

    mp = model_prototype()
    W = np.random.uniform(2, 1, 3)
    x1 = np.random.uniform(-10, 10, 10)
    x2 = np.random.uniform(-10, 10, 10)
    x3 = np.array([1] * 10)
    X = np.array([x1, x2, x3]).transpose()
    y = np.array([1 if val >= 0 else 0 for val in X.dot(W)])
    md = mp.recognize("Logistic")
    X = np.hstack((X[0:len(X), 0:-1], np.array([y]).T))
    # print(X)
    md.feed_data(X)
    # print(md.weights)
    sess = Session()
    for i in range(0, 100):
        md.next_step()
    vs = visualizer(md, (5, 5), (-5, 5), (-5, 5))
    image = vs.visualize()
    image.save("bla.png")
    image.show()

    # yy = np.array([1 if val >=0 else 0 for val in X.dot(md.weights)])
    # print("yy = ", yy)
    # print("y = ", y)
    # print(md.weights)
Esempio n. 23
0
def removeSession(db, sessionId):
    session = Session(db, sessionId)
    return session.delete()