예제 #1
0
 def del_user(message):
     try:
         user = Users.get(Users.user_id == message.chat.id)
         user.delete_instance()
         return True
     except:
         return False
예제 #2
0
def log_in(username, password, verbose=False):
    '''
    Try to log in using the specified credentials
    If login is successfull the corresponding Users row is returned
    Else False is returned
    '''
    try:
        user = Users.get(Users.username == username)
        hashed_password, salt = crypt.salt_hash(
            plaintext=password,
            salt=user.salt
        )
        # if verbose:
        #     print('HASHED_PW:', hashed_password, '\n',
        #           'USER PW: ', user.password, '\n',
        #           'SALT:    ', salt, '\n'
        #           'USER SALT', user.salt, '\n',
        #           'PASSWORD :'******'\n',
        #           file=sys.stderr)
        if user.password == hashed_password:
            return user
        else:
            return False
    except Users.DoesNotExist:
        return False
    return False
예제 #3
0
def done(message):
    if active:
        user = Users.get_or_none(tel_id=message.from_user.id)
        if user == None:
            Users.create(tel_id=message.from_user.id,
                         name=message.from_user.first_name,
                         username=message.from_user.username)
            user = Users.get(tel_id=message.from_user.id)
            bot.send_message(message.chat.id,
                             user.name + " был зарегистрирован.")

        if not user.done_today:
            if user.sick:
                bot.reply_to(message, "Видимо вы больше не больны.")
                user.sick = False
            user.done_today = True
            user.done += 1
            user.save()
            bot.reply_to(
                message, f"Тренировка засчитана! Всего выполнено: {user.done}")
            fileID = message.photo[-1].file_id
            file = bot.get_file(fileID)
            downloaded = bot.download_file(file.file_path)
            new_img = open("received_img.jpg", "wb")
            new_img.write(downloaded)
            new_img.close()
            bot.reply_to(
                message,
                f"Предположитнльная продлжительность: {recognise(Image.open('received_img.jpg'))}."
            )
        else:
            bot.reply_to(
                message,
                f"2 раза за день перебор) Всего выполнено: {user.done}")
예제 #4
0
def delete_index(username):
    user = Users.get(username)
    if user:
        current_user.delete_index()
        return "index for {} deleted".format(username)
    else:
        return "no user {}".format(username)
예제 #5
0
def logout(username):
    user = Users.get(username)
    user_id = user.id
    username = user.username
    current_user.uncache()
    logout_user()
    flash("user '{}' ({}) logged out".format(username, user_id))
    return redirect(url_for("splash"))
예제 #6
0
def delete_index(username):
    user = Users.get(username)
    if user:
        current_user.delete_index()
        EventLogger.new_event(msg="index for {} deleted".format(user.id))
        return "index for {} deleted".format(username)
    else:
        return "no user {}".format(username)
예제 #7
0
 def test_patch(self):
     u = Users.get()
     r = requests.patch('http://localhost:9091/user',
                        json={
                            "user_id": u.user_id,
                            "unliked_film_id": u.liked[0]
                        })
     self.assertEqual(r.text, "ok")
예제 #8
0
def delete_user(userid):
    """
    Used to delete an existing user
    """
    
    user = Users.get({"_id":userid})
    user.delete()

    return redirect(request.referrer)
예제 #9
0
def deactivate_user(userid):
    """
    Used to deactivate a user
    """
    
    user = Users.get({"_id":userid})
    user.update({"$set":{user.active.dbfield:False}})
    
    return redirect(request.referrer)
예제 #10
0
def activate_user(userid):
    """
    Used to activate an existing user
    """
    
    user = Users.get({"_id":userid})
    user.update({"$set":{user.active.dbfield:True}})
    
    return redirect(request.referrer)
예제 #11
0
파일: urls.py 프로젝트: edwingoo/mywebapp
def api_delete_user(user_id):
    check_admin()
    user = Users.get(user_id)
    if not user:
        raise APIResourceNotFoundError('user')
    localauth = LocalAuth.find_first('where user_id=?',user_id)
    user.delete()
    localauth.delete()
    return dict(user_id=user_id)
예제 #12
0
def view_for_user(user_id):
	'''
		Generates the Board and Invite information for the Board Dashboard.
		arg: user_id - The User who's Dashboard will be rendered.
		return: render_view
	'''
	user = Users.get(user_id)
	board_List = Boards.get_user_boards(user_id)
	invite_list = Invitations.get_by_user(user_id)
	return render_view('boards/dashboard.html', board_List=board_List, invite_list=invite_list)
예제 #13
0
def update_share_status(username):
    status = request.args.get("status")
    user = Users.get(username)

    # set user's share status
    user.share_profile = (status == "public")
    db_sql.session.commit()
    user.cache()

    log.info("share status for {} set to {}".format(user, status))

    return jsonify(user=user.id, share=user.share_profile)
예제 #14
0
def delete(username):
    user = Users.get(username)
    username = user.username
    user_id = user.id
    logout_user()

    # the current user is now logged out
    try:
        user.delete()
    except Exception as e:
        flash(str(e))
    else:
        flash("user '{}' ({}) deleted".format(username, user_id))
        EventLogger.new_event(msg="{} deleted".format(user_id))
    return redirect(url_for("splash"))
예제 #15
0
    def test_post(self):
        u = Users.get()
        f = Films.get()
        r = requests.post('http://localhost:9091/mark',
                          json={
                              "user_id": u.user_id,
                              "film_id": f.film_id,
                              "result": 1,
                          })
        self.assertEqual(r.text, "ok")

        r = requests.post('http://localhost:9091/mark',
                          json={
                              "film_id": f.film_id,
                              "event": "trailer",
                          })
        self.assertEqual(r.text, "ok")
예제 #16
0
def group_stream(username, activity_id):
    def go(user, pool, out_queue):
        with app.app_context():
            user.related_activities(activity_id,
                                    streams=True,
                                    pool=pool,
                                    out_queue=out_queue)
            pool.join()
            out_queue.put(None)
            out_queue.put(StopIteration)

    user = Users.get(username)
    pool = gevent.pool.Pool(app.config.get("CONCURRENCY"))
    out_queue = gevent.queue.Queue()
    gevent.spawn(go, user, pool, out_queue)
    gevent.sleep(0)
    return Response((sse_out(a) if a else sse_out() for a in out_queue),
                    mimetype='text/event-stream')
예제 #17
0
파일: urls.py 프로젝트: edwingoo/mywebapp
def authenticate():
    i = ctx.request.input(remember='')
    email = i.email.strip().lower()
    password = hashlib.md5(i.password).hexdigest()
    remember = i.remember
    localauth = LocalAuth.find_first('where user_email=?', email)
    print localauth
    if localauth is None:
        raise APIError('auth:failed', 'email', 'Invalid email')
    elif password != localauth.user_password:
        raise APIError('auth:failed', 'password', 'Invalid password')
    # make session cookie:
    max_age = 608400 if remember == 'true' else None
    cookie = make_signed_cookie(localauth.user_id, password, max_age)
    ctx.response.set_cookie(__COOKIE_NAME, cookie, max_age)
    user = Users.get(localauth.user_id)
    # print user
    return user
예제 #18
0
파일: urls.py 프로젝트: shaw711/spider-mvc
def parse_signed_cookie(cookie_str):
    try:
        L = cookie_str.split('-')
        if len(L) != 3:
            return None
        id, expires, md5 = L
        if int(expires) < time.time():
            return None
        user = Users.get(id)
        if user is None:
            return None
        if md5 != hashlib.md5(
                '%s-%s-%s-%s' %
            (id, user.email, expires, _COOKIE_KEY)).hexdigest():
            return None
        return user
    except:
        return None
예제 #19
0
def parse_signed_cookie(cookie_str):
    '''解析得到的cookie_str对比用户已有的id密码和有效期,如果符合则返回用户的的实例对象'''
    try:
        L = cookie_str.split('-')
        if len(L) != 3:
            return None
        id, expires, md5 = L
        if int(expires) < time.time():
            return None
        user = Users.get(id)
        if user is None:
            return None
        if md5 != hashlib.md5(
                '%s-%s-%s-%s' %
            (id, user.password, expires, _COOKIE_KEY)).hexdigest():
            return None
        return user
    except:
        return None
예제 #20
0
    def go(query_obj, pool, out_queue):
        with app.app_context():
            pool2 = gevent.pool.Pool(4)
            for username, options in query_obj.items():
                user = Users.get(username)
                if not user:
                    continue

                # app.logger.debug("async job querying {}: {}"
                #                  .format(user, options))
                options.update({"pool": pool, "out_queue": out_queue})
                pool2.spawn(user.query_activities, **options)
                # user.query_activities(**options)
                gevent.sleep(0)

            pool2.join()
            pool.join()
            out_queue.put(None)
            out_queue.put(StopIteration)
예제 #21
0
def resetlink():
    """
    Generates and handles the password reset page
    """

    form = ResetPassForm()

    if form.validate_on_submit():
        try:
            user = Users.get({"email":form.email.data})
            token = user.generate_reset_token()
            send_email(user.email,'Resetare parola','users/email/passwdreset',user=user,token=token)
            flash('Parola a fost resetata! Va rugam urmati instructiunile primite pe email!',category='alert-success')
            return redirect(request.referrer)

        except Exception as err:
            flash('Adresa de email gresita!',category='alert-danger')
            return redirect(request.referrer)

    return render_template('users/login.html',pagetitle='Resetare parola',form=form,login=False)
예제 #22
0
def edit_user(userid):
    """
    Used to edit an existing user
    """
    
    user = Users.get({"_id":userid})
    form = UserForm()

    if form.validate_on_submit():
        try:
            user.populate_from_form(form)
            user.save()
            flash('Utilizatorul modificat!', category='alert-success')
            return redirect(url_for('users.list_users'))
        except Exception as err:
            print err
            flash('Modificarile nu pot fi salvate!', category='alert-danger')

    form = user.fill_form()

    return render_template('users/edit.html', pagetitle='Detalii utilizator', form=form)
예제 #23
0
파일: urls.py 프로젝트: edwingoo/mywebapp
def parse_signed_cookie(cookie_str):
    """
    解析COOKIE
    :param cookie_str:
    :return:
    """
    try:
        L = cookie_str.split('-')
        if len(L) != 3:
            return None
        id, expires, md5 = L
        if int(expires) < time.time():
            return None
        user = Users.get(id)
        localauth = LocalAuth.find_first('where user_id=?', id)
        if user is None:
            return None
        if md5 != hashlib.md5('%s-%s-%s-%s' % (id, localauth.user_password, expires, __COOKIE_KEY)).hexdigest():
            return None
        return user
    except:
        return None
예제 #24
0
파일: app.py 프로젝트: egarcia410/blogApp
 def post(self):
     email = self.get_body_argument('email')
     password = self.get_body_argument('password')
     user = self.user_exists(email)
     messages = []
     # if user does not exist
     if not user:
         messages.append("Invalid Email/Password")
         return self.render_template("login.html",
                                     {'messages': tuple(messages)})
     user = Users.get(Users.email == email)
     # https://github.com/pyca/bcrypt#password-hashing
     matched = bcrypt.checkpw(tornado.escape.utf8(password),
                              tornado.escape.utf8(user.hashed_password))
     # if incorrect password
     if not matched:
         messages.append("Invalid Email/Password")
         return self.render_template("login.html",
                                     {'messages': tuple(messages)})
     # Log in user
     self.set_secure_cookie("blog_user", str(user.id))
     return self.redirect("/")
예제 #25
0
def query_activities(username, out_type):
    user = Users.get(username)
    if user:
        options = {
            k: toObj(request.args.get(k))
            for k in request.args if toObj(request.args.get(k))
        }
        if not options:
            options = {"limit": 10}

        anon = current_user.is_anonymous
        if anon or (not current_user.is_admin()):
            EventLogger.log_request(request,
                                    cuid="" if anon else current_user.id,
                                    msg="{} query for {}: {}".format(
                                        out_type, user.id, options))
    else:
        return

    if out_type == "json":
        return jsonify(list(user.query_activities(**options)))

    else:

        def go(user, pool, out_queue):
            options["pool"] = pool
            options["out_queue"] = out_queue
            user.query_activities(**options)
            pool.join()
            out_queue.put(None)
            out_queue.put(StopIteration)

        pool = gevent.pool.Pool(app.config.get("CONCURRENCY"))
        out_queue = gevent.queue.Queue()
        gevent.spawn(go, user, pool, out_queue)
        gevent.sleep(0)
        return Response((sse_out(a) if a else sse_out() for a in out_queue),
                        mimetype='text/event-stream')
예제 #26
0
def resetpassword(email,token):
    """
    Handles the password reset for a given email and token
    """

    form = NewPassForm()

    if form.validate_on_submit():
        try:
            user = Users.get({"email":email})
            if user.resetpass(token):
                user.password = form.password.data
                user.save()
                flash('Parola schimbata!',category='alert-success')
                return redirect(url_for('users.login'))
                
            else:
                raise Exception

        except:
            flash('Token invalid!',category='alert-danger')
            return redirect(url_for('users.resetlink'))

    return render_template('users/login.html',pagetitle='Resetare parola',form=form,login=False)
예제 #27
0
def login():
    """
    Generates and handles the login for the user
    """
    form = LoginForm()

    if form.validate_on_submit():
        try:
            user = Users.get({"email":form.email.data})
            if not user.active.value:
                flash('Contul tau a expirat! Te rugam contacteaza-ne!', category='alert-danger')
                return redirect(request.referrer)
            if user.verify_password(form.password.data):
                login_user(user,form.remember_me.data)
                user.ping()
                return redirect('/')
            else:
                raise Exception('Not authorised',form.email.data)

        except Exception as err:
            print err
            flash('Parola sau adresa de email este invalida!', category='alert-danger')

    return render_template('users/login.html', pagetitle='Login',form=form,login=True, current_user=current_user)
예제 #28
0
async def update_user(user_id: int, user: UserIn_Pydantic):
    await Users.filter(id=user_id).update(**user.dict(exclude_unset=True))
    return await User_Pydantic.from_queryset_single(Users.get(id=user_id))
예제 #29
0
async def get_user(user_id: int):
    return await User_Pydantic.from_queryset_single(Users.get(id=user_id))
예제 #30
0
def user_profile(username):
    user = Users.get(username)
    output = user.info() if user else {}
    return jsonify(output)
예제 #31
0
def settings(user_id):
	name = request.form['name']
	email = request.form['email']
	Users.update(user_id, name, email)
	session['user'] = Users.get(user_id)
	return '{"status":"success"}'
예제 #32
0
def activities(username):
    user = Users.get(username)
    if request.args.get("rebuild"):
        user.delete_index()
    return render_template("activities.html", user=user)
예제 #33
0
def main(username):
    if current_user.is_authenticated:
        # If a user is logged in from a past session but has no record in our
        #  database (was deleted), we log them out and consider them anonymous
        try:
            assert current_user.id
        except AssertionError:
            logout_user()
        else:
            current_user.update_usage()

    user = None
    key = username if redis.get("Q:" + username) else ""

    if not key:
        # note: 'current_user' is the user that is currently logged in.
        #       'user' is the user we are displaying data for.
        user = Users.get(username)
        if not user:
            flash("user '{}' is not registered with this app".format(username))
            return redirect(url_for('splash'))

    date1 = request.args.get("date1") or request.args.get("after", "")
    date2 = request.args.get("date2") or request.args.get("before", "")
    preset = request.args.get("preset", "")
    limit = request.args.get("limit", "")
    baselayer = request.args.getlist("baselayer")
    ids = request.args.get("id", "")
    group = "multi" if key else request.args.get("group", "")

    if not ids:
        if (not date1) and (not date2):
            if preset:
                try:
                    preset = int(preset)
                except ValueError:
                    flash("'{}' is not a valid preset".format(preset))
                    preset = 7
            elif limit:
                try:
                    limit = int(limit)
                except ValueError:
                    flash("'{}' is not a valid limit".format(limit))
                    limit = 1
            elif group:
                pass
            else:
                limit = 10

    c1 = request.args.get("c1", "")
    c2 = request.args.get("c2", "")
    sz = request.args.get("sz", "")

    lat = request.args.get("lat")
    lng = request.args.get("lng")
    zoom = request.args.get("zoom")
    autozoom = request.args.get("autozoom") in ["1", "true"]

    if (not lat) or (not lng):
        lat, lng = app.config["MAP_CENTER"]
        zoom = app.config["MAP_ZOOM"]
        autozoom = "1"

    if current_user.is_anonymous or (not current_user.is_admin()):
        event = {
            "ip": request.access_route[-1],
            "agent": vars(request.user_agent),
            "msg": Utility.href(request.url, request.full_path)
        }

        if not current_user.is_anonymous:
            event.update({
                "profile": current_user.profile,
                "cuid": current_user.id
            })

        EventLogger.new_event(**event)

    paused = request.args.get("paused") in ["1", "true"]
    return render_template('main.html',
                           user=user,
                           lat=lat,
                           lng=lng,
                           zoom=zoom,
                           ids=ids,
                           group=group,
                           key=key,
                           preset=preset,
                           date1=date1,
                           date2=date2,
                           limit=limit,
                           autozoom=autozoom,
                           paused=paused,
                           baselayer=baselayer,
                           c1=c1,
                           c2=c2,
                           sz=sz)
예제 #34
0
def view(user_id):
	user = Users.get(user_id)
	return render_view('users/view.html', user=user)
예제 #35
0
 def __init__(self, username, verbose=False):
     self.user = Users.get(username=username)
     self.verbose = verbose
예제 #36
0
def load_user(user_id):
    user = Users.get(user_id)
    return user
예제 #37
0
파일: test.py 프로젝트: Neafiol/CineSearch
import requests

from models import Users, Films

u = Users.get()
f = Films.get()

r = requests.post('http://localhost:9091/mark',
                  json={
                      "user_id": u.user_id,
                      "film_id": f.film_id,
                      "result": 1,
                  })