Exemple #1
0
def login():
    """
    Login Endpunkt

    Returns:
        Rendert das Login Template oder leitet an das Dashboard weiter nach erfolgreichem Login

    """
    form = LoginForm()

    ip_address = get_real_ip()

    if request.method == "POST":
        if form.validate_on_submit():
            be_user = BeUser()
            be_user.set("username", escape(request.form["username"]))
            be_user.temp_password = escape(request.form["password"])
            if be_user.validate_login():
                be_user.load()
                session = Session()
                session.set_user_id(be_user.get_id())
                if session.session_exists():
                    session.delete()
                    session = Session()
                    session.set_user_id(be_user.get_id())

                ip_address = escape(ip_address)
                user_agent = escape(request.user_agent)
                token = session.encryption.create_random_token(32)

                session.set_ip_address(ip_address)
                session.set_user_agent(user_agent)
                session.set_token(token)
                time = datetime.now()
                session.set_timestamp(time)

                if session.save() is not False:
                    session_user = be_user.create_session_user()
                    if login_user(session_user):
                        debug_logger.log(
                            10, "User mit der ID {0} eingeloggt".format(
                                session_user.get_id()))
                        return redirect(url_for("backend.dashboard"))
            else:
                failed_login_record = FailedLoginRecord()
                failed_login_record.set_user_id(be_user.get_id())
                failed_login_record.set_username(be_user.get_username())
                failed_login_record.set_ip_address(request.remote_addr)
                failed_login_record.set_user_agent(str(request.user_agent))
                failed_login_record.save()
        else:
            flash(form.errors)
    return render_template("login.html", form=form)
Exemple #2
0
def login():
    if request.method == 'POST':
        if current_user.is_active:
            print('Error, user is active!')
            return json.dumps({'errmsg': '用户已登陆'})
        #获取post来的数据
        json_data = json.loads(request.data)
        user = User.query.filter_by(id=json_data['id']).first()
        if user is None or not user.check_password(json_data['password']):
            print('username or password isn\'t correct!')
            return json.dumps({'errmsg': '用户名或密码错误'})
        login_user(user)

        #建立session数据库
        se = Session.query.filter_by(uid=user.id).first()
        if se == None:
            se = Session(uid=user.id)
            db.session.add(se)
            db.session.commit()
            print('Create a new session {}'.format(se.sid))
        else:
            print('Resume Session {}'.format(se.sid))

        print('login user {}!'.format(user))
        data = json.dumps(user, default=UserToJson, sort_keys=False)

        #生成返回的resp,增加session的选项
        resp = make_response()
        resp.headers['session_id'] = str(se.sid)
        resp.data = data
        return resp
    return json.dumps({'errmsg': '没有使用POST请求'})
Exemple #3
0
def load_user(user_id):
    """
    user loader
    hier wird beim aufruf von login.required dekorierten punkten
    der in der session gespeicherte benutzer geladen wenn vorhanden

    Args:
        user_id:

    Returns:

    """
    if user_id > 0:
        user = BeUser()
        user.set("id", user_id)
        user.load()
        session = Session()
        session.set_user_id(user.get_id())
        if session.load():
            session_user = user.create_session_user()
            ip_address = get_real_ip()
            session_user.ip_address = ip_address
            session_user.user_agent = request.user_agent
            session_user.token = session.get_token()
            session_user.timestamp = session.get_timestamp()
            hash = session.get_user_hash_string(session_user)

            if session.is_valid(session.encryption.get_generic_hash(hash)):
                return session_user
            else:
                debug_logger.debug("session nicht valid")
                session.delete()
    return SessionUser()
Exemple #4
0
def create_session():
    """Create a new Session"""
    app = Application.query.filter_by(id=request.json['app']).first()
    questionnaire = Questionnaire.query.filter_by(
        id=request.json['questionnaire']).first()
    expected_emotions = request.json['expected_emotions']

    # validate application type
    if not app:
        return {'status': 'error', 'message': 'Invalid application.'}, 400

    new_session = Session(app=app,
                          expected_emotions=expected_emotions,
                          questionnaire=questionnaire)

    db.session.add(new_session)
    db.session.commit()

    result = session_schema.dump(new_session).data

    return jsonify({
        'status':
        'success',
        'message':
        'Created new session for application with id of {}.'.format(
            request.json['app']),
        'data':
        result
    }), 201
def loaddb_sessions(filename):
    """ Populates the database with sessions and session-related relationships from a yml file. Requires loaddb_games and loaddb_users """
    sessions = yaml.safe_load(open(filename))

    # premier tour de boucle, creation des sessions et des timeslots
    dico_timeslots = dict()  # k=session_yml_id, v=timeslot_object
    dico_sessions = dict()  # k=session_yml_id, v=session_object
    for id, s in sessions.items():
        session_object = Session(nb_players_required=s["nb_players_required"],
                                 notifactions_sent=s["notifactions_sent"],
                                 confirmed=s["confirmed"],
                                 timeout=s["timeout"],
                                 archived=s["archived"])
        db.session.add(session_object)
        dico_sessions[id] = session_object

        timeslot = s["timeslot"]
        timeslot_object = TimeSlot(beginning=timeslot["beginning"],
                                   end=timeslot["end"],
                                   day=timeslot["day"])
        db.session.add(timeslot_object)
        dico_timeslots[id] = timeslot_object
    db.session.commit()

    # deuxieme tour de boucle, ajout des relations SessionXTimeslot, SessionXGame et SessionXUser
    for id, s in sessions.items():
        session_object = dico_sessions[id]
        session_object.timeslot_id = dico_timeslots[id].id
        load_relationship(s, 'session_id', session_object.id, 'games', Use,
                          Game.from_title, 'game_id', ['expected_time'],
                          'title')
        load_relationship(s, 'session_id', session_object.id, 'players', Play,
                          User.from_username, 'user_id', ['confirmed', 'won'],
                          'username')
    db.session.commit()
Exemple #6
0
def v1_fblogin():
    try:
        check_params(request, ['token'])
    except StandardError as e:
        return respond(str(e), code=400), 400

    token = str(request.form['token'])

    # Create the username
    fb_url = "https://graph.facebook.com/v2.8/me?fields=id&access_token={}"
    r = requests.get(fb_url.format(token))
    data = r.json()

    if r.status_code != 200:
        return respond("Server failure", code=r.status_code), 500

    fb_username = "******".format(r.json()['id'])
    user = User.query.filter(User.username == fb_username).first()

    ## Create if does not exist
    if user == None:
        user = User(fb_username, "")
        db.session.add(user)
        db.session.commit()

    # Create a session
    session = Session(hexlify(urandom(50)), user)
    try:
        db.session.add(session)
        db.session.commit()
    except:
        db.session.rollback()
        return respond("Internal server error has occured", code=101), 500

    return respond("SUCCESS", data={'session': session.session})
Exemple #7
0
def get_user_id(uuid):
    session = db.session.query(Session).filter_by(uuid=uuid).first()
    if session:
        user_id = session.email
        if user_id:
            return user_id
        else:
            return None
    else:
        user_id = get_user_id_ext(uuid=uuid)
        if user_id:
            try:
                session = db.session.query(Session).filter_by(
                    email=str(user_id)).first()
            except Exception as ex:
                print('ex: ' + ex)
            if session:
                session.uuid = uuid
                session = session.update_session()
            else:
                session = Session(username=user_id, uuid=uuid)
                session = session.save()
            return session.email
        else:
            return None
Exemple #8
0
def create_with_campaign(id):
    form = SessionForm()
    form.submit.label.text = "Create Session"
    form.participants.choices = gen_participant_choices()

    campaign = Campaign.query.filter_by(id=id).first_or_404()

    if not current_user.is_dm_of(campaign):
        del form.dm_notes

    if form.validate_on_submit():
        participants = Character.query.filter(Character.id.in_(form.participants.data)).all()

        dm_notes = None
        if current_user.is_dm_of(campaign):
            dm_notes = form.dm_notes.data

        new_session = Session(title=form.title.data, campaign_id=form.campaign.data, summary=form.summary.data, dm_notes=dm_notes, date=form.date.data, participants=participants)

        db.session.add(new_session)
        db.session.commit()

        flash("Session was created.", "success")
        return redirect(url_for("session.view", id=new_session.id))
    elif request.method == "GET":
        participants = []

        for p in campaign.default_participants:
            participants.append(p.id)

        form.participants.data = participants

        form.campaign.data = id

    return render_template("session/create.html", form=form, campaign=campaign, title=page_title("Add Session"))
Exemple #9
0
def user_register(data):
    try:
        username = data.get('username')
        password = data.get('password')
        language = data.get('language')
        status = data.get('status')
        if is_user_exist(username):
            return generate_username_taken_response(username)
        salt = generate_uuid()
        hash_pwd = get_hash_password(salt, password)
        user = User(username=username,
                    hash_pwd=hash_pwd,
                    salt=salt,
                    language=language,
                    status=status)
        if user:
            temp_uuid = generate_uuid()
            session = Session(username=user.username, uuid=temp_uuid)
            user.save(session)
            return generate_registration_success_response(temp_uuid)
        else:
            raise Exception('Failed to create user')
    except Exception as exe:
        print('user user registration failed')
        if hasattr(exe, 'message'):
            print(exe.message)
        else:
            print(exe)
        return generate_registration_failed_response(exe)
Exemple #10
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        child_id = form.child_id.data
        proctor_id = form.proctor_id.data

        # Check if the child is in the database - if they are not, then add
        # them. We might want to change this behavior later so that if they are
        # not in the database, we do not allow them to log in.
        if Child.query.filter_by(id=child_id).first() is None:
            child = Child(id=child_id)
            db.session.add(child)
            db.session.commit()

        # Check if the proctor is in the database - if they are not, then add
        # them. We might want to change this behavior later so that if they are
        # not in the database, we do not allow them to log in.
        if Proctor.query.filter_by(id=proctor_id).first() is None:
            proctor = Proctor(id=proctor_id)
            db.session.add(proctor)
            db.session.commit()

        session_db_entry = Session(child_id=child_id, proctor_id=proctor_id)
        db.session.add(session_db_entry)
        db.session.commit()

        child = Child.query.filter_by(id=form.child_id.data).first()
        if child is None:
            print("Invalid child_id or password")
            return redirect(url_for("routes.login"))

        login_user(child)
        return redirect(url_for("routes.index"))

    return render_template("login.html", title="Sign In", form=form)
Exemple #11
0
    def update(self, **data):
        """
        update
        :param data:
        :return:
        """
        # 基于 id 的更新
        cid = data.pop('id', -1)
        with Session() as ss:
            if cid > 0:
                query = ss.query(
                    self.table).filter(self.table.id == cid).first()
                if query:
                    self.modify_raw(query, data)
                    ss.add(query)
                    ss.commit()
                    return 200, query.id
                return 404, u'id无法关联信息'

            # 基于其他唯一且不为空的key更新
            keys = self.get_unique_key()
            for key in keys:
                name = data.pop(key, None)
                if name:
                    query = ss.query(self.table).filter(
                        self.table.__dict__[key] == name).first()
                    if query:
                        self.modify_raw(query, data)
                        ss.add(query)
                        ss.commit()
                        return 200, query.id
            return 404, u'没有匹配到任何行'
Exemple #12
0
 def post(self):
     session = Session(status='Started',
                       startDate=datetime.datetime.now(),
                       company_id=api.payload['companyId'],
                       user_id=api.payload['userId'])
     db.session.add(session)
     db.session.commit()
     return session_schema.jsonify(session)
Exemple #13
0
def registerHouse():
    get_lang(request)
    #generate form data
    form = RegisterForm(request.form)
    if request.method == 'POST':
        #store form data
        address = form.address.data
        city = form.city.data
        state = form.state.data
        zip = form.zip.data

        #generate lat/long from address
        results = Geocoder.geocode(address)
        result = results[0].coordinates
        lat = result[0]
        long = result[1]

        #create new db session
        sess = Session()

        #get user id for database relations
        account_id = session['id']

        #create new home: A new home is identified by street. city, zip, state, lat/long
        new_home = Home(account_id=account_id,
                        street_address=address,
                        city=city,
                        state=state,
                        zip_code=zip,
                        latitude=lat,
                        longitude=long)

        #Does the address already exist
        match = sess.query(Home.street_address)\
              .filter(Home.street_address==address)\
              .all()

        #If the address is unique the home is added
        if not match:
            print(f'Added: {new_home}')
            #add entry to database for home
            sess.add(new_home)

            #save changes
            sess.commit()

        #the address is not unique
        else:
            #error message
            flash("Address already registered")

            #return to registration page
            return render_template('registerHouse.html', form=form)

        #close connection
        sess.close()
        return redirect(url_for('dashboard'))
    return render_template('registerHouse.html', form=form)
Exemple #14
0
 def __setitem__(self, key, value):
     pickled = self.encode(value)
     now = datetime.datetime.now()
     s = Session.get(key)
     if s:
         s.data = pickled
     else:
         s = Session(key, now, pickled)
         config.orm.add(s)
Exemple #15
0
 def wrapper(bot, update, *args, **kwargs):
     s = Session()
     if not Chat.q.get(update.message.chat.id):
         chat = Chat(id=update.message.chat.id,
                     is_private=update.message.chat.type == 'private')
         s.add(chat)
         s.commit()
     chat = Chat.q.get(update.message.chat.id)  # type: Chat
     return fn(bot, update, *args, chat, **kwargs)
Exemple #16
0
def get_users():
    try:
        result = []
        sess = Session()
        user = sess.query(User).order_by(User.name).all()
        result = [a.to_dict() for a in user]
    except Exception as e:
        result = []
    return result
Exemple #17
0
def get_books():
    try:
        result = []
        sess = Session()
        book = sess.query(Book).order_by(Book.name).all()
        result = [a.to_dict() for a in book]
    except Exception as e:
        result = []
    return result
def createsession():
    form= CreateSessionForm()
    if form.validate_on_submit():
        session=Session(session_number=form.session_number.data,gametype=form.gametype.data,
        patient_id=form.patient_id.data,therapist_id=form.therapist_id.data,intervention_id=form.intervention_id.data,
        date_started=form.date_started.data)
        db.session.add(session)
        db.session.commit()
        flash('CONFIRMATION: Session has been created')
    return render_template('createsession.html',title='Create Session',form=form)
Exemple #19
0
def get_session_draft(user_id):
    session_draft = Session.query.filter(Session.user_id == user_id, Session.is_draft.is_(True)).first()
    debug_flash("session_draft", session_draft)

    if session_draft:
        return session_draft
    else:
        session = Session(user_id=user_id, is_draft=True)
        db.session.add(session)
        db.session.commit()
        return session
Exemple #20
0
 def wrapper(*args, **kwargs):
     s = Session()
     try:
         r = fn(*args, s, **kwargs)
         s.commit()
         return r
     except Exception:
         s.rollback()
         raise
     finally:
         s.close()
Exemple #21
0
def generate_session(user_id, **kwargs):
    random_int = lambda: random.randint(10, 300)
    session = Session(user_id=user_id,
                      words=kwargs.get('words', random_int()),
                      chars=kwargs.get('chars', random_int()),
                      accuracy=kwargs.get('accuracy', random_int()),
                      created_date=kwargs.get('created_date',
                                              datetime.datetime.now()))
    db.session.add(session)
    db.session.commit()
    return session
Exemple #22
0
def get_user(user_id):
    try:
        sess = Session()
        user = sess.query(User).get(user_id)
        if not user:
            result = []
        else:
            result = [user.to_dict()]
    except Exception as e:
        result = []
    return result
Exemple #23
0
 def publish_one(self, a_news):
     message = self._compose_message(a_news)
     r = self._compose_request(message)
     resp = requests.post(r)
     if resp.status_code == 200:
         print("Posted message: %s" % message)
         a_news.published = True
         Session().commit()
     else:
         print("Tried to post message: %s \nFailed with resp: %s" %
               (message, resp.content))
Exemple #24
0
 def delete(self, id=None):
     """
     删除
     :param id:
     :return:
     """
     if not id:
         return 200, 'nothing need to delete'
     with Session() as ss:
         ss.query(self.table).filter(self.table.id == id).\
             delete(synchronize_session=False)
         return 200, 'delete {} done'.format(id)
Exemple #25
0
def create_book(**data):
    try:
        sess = Session()
        book = Book(name=data['name'],
                    author=data['author'],
                    description=data['description'])
        sess.add(book)
        sess.commit()
        result = True
    except Exception:
        result = False
    return result
Exemple #26
0
def add():
    if request.method == "POST":
        title = request.form['title']
        video_link = request.form['video_link']
        notes_link = request.form['notes_link']
        new_session = Session(title=title,
                              video_link=video_link,
                              notes_link=notes_link)
        db.session.add(new_session)
        db.session.commit()

    return render_template("add.html")
Exemple #27
0
def delete_user(user_id):
    try:
        result = False
        sess = Session()
        user = sess.query(User).get(user_id)
        if user:
            sess.delete(user)
            sess.commit()
            result = True
    except Exception:
        result = False
    return result
Exemple #28
0
def save(headers_and_options, row_header, schedules_data):
    session = Session()

    for row_index, row in enumerate(schedules_data):
        for col_index, col in enumerate(row):
            session.merge(
                Archive(class_id=row_header[row_index]['id'],
                        major_id=headers_and_options[col_index]['id'],
                        info=json.dumps(col, ensure_ascii=False)))

    session.commit()
    session.close()
Exemple #29
0
def delete_book(book_id):
    try:
        result = False
        sess = Session()
        book = sess.query(Book).get(book_id)
        if book:
            sess.delete(book)
            sess.commit()
            result = True
    except Exception:
        result = False
    return result
Exemple #30
0
    def handle(self, *args, **options):
        links = ['https://www.facebook.com/318748909507/videos/649968942464224',
                 'https://www.facebook.com/318748909507/videos/2612971758972997/',
                 'https://www.facebook.com/318748909507/videos/498942800766464/',
                 'https://www.facebook.com/318748909507/videos/527572888153782/',
                 'https://www.facebook.com/318748909507/videos/926772904410122/',
                 'https://www.facebook.com/318748909507/videos/2574431759464489/',
                 'https://www.facebook.com/318748909507/videos/247198643102613/',
                 'https://www.facebook.com/318748909507/videos/1588663631296750/',
                 'https://www.facebook.com/318748909507/videos/2665635223721596/',
                 'https://www.facebook.com/318748909507/videos/2669484819990940/',
                 'https://www.facebook.com/318748909507/videos/535514280498748/',
                 'https://www.facebook.com/318748909507/videos/3697736870267369/',
                 'https://www.facebook.com/318748909507/videos/705004410305115/',
                 'https://www.facebook.com/318748909507/videos/3025730300817570/',
                 'https://www.facebook.com/318748909507/videos/222023952224132/',
                 'https://www.facebook.com/318748909507/videos/659991487900808/',
                 'https://www.facebook.com/318748909507/videos/629913900921785/',
                 'https://www.facebook.com/318748909507/videos/165132848228069/',
                 'https://www.facebook.com/318748909507/videos/184435959355973/',
                 'https://www.facebook.com/318748909507/videos/244576203543813/',
                 'https://www.facebook.com/318748909507/videos/276445793512600/',
                 'https://www.facebook.com/318748909507/videos/710323713052933/',
                 'https://www.facebook.com/318748909507/videos/246632956586240/',
                 'https://www.facebook.com/318748909507/videos/556846081927489/',
                 'https://www.facebook.com/318748909507/videos/171019884353180/'
                 ]

        user_model = get_user_model()

        username = '******'

        user = user_model.objects.get(
            username=username
        )

        group = Group()
        group.name = 'Soccer Drills 4'
        group.user = user
        group.save()

        index = 0

        for link in links:
            session = Session()
            session.user = user
            session.group = group
            session.link = link
            session.index = index
            session.save()

            index += 1