예제 #1
0
def update():
    form = UserForm()
    user = g.user
    person = s.query(Person).filter(Person.id == \
        g.user.person_id).first()
    address = s.query(Address).filter(Address.id == \
        person.address_id).first()
    user = s.query(User).filter(User.person_id == \
        person.id).first()
    mobile = s.query(MobileNo).filter(MobileNo.person_id == \
        person.id).first()
    if request.method == 'POST':
        update_user(s, person, address, user, mobile, form)
        return redirect(url_for('profile'))
    form.firstname.data = person.firstname 
    form.middlename.data = person.middlename 
    form.lastname.data = person.lastname 
    form.street.data = address.street 
    form.district.data = address.district 
    form.city.data = address.city 
    form.state.data = address.state 
    form.country.data = address.country 
    form.username.data = user.username 
    form.password.data = user.password
    form.conf_pass.data = user.password
    form.mobile.data = mobile.number
    return render_template("update.html", form=form, person=person)
예제 #2
0
def setgroup(message):
    check_user(message)
    if len(message.text.split()) == 2:
        user = user_from_message(message, False)
        print(user)
        _, group = message.text.split()
        group = group.upper()
        users.update_user(user, group=group)

        response = strings.set_group_ok.format(group)
        bot.send_message(message.chat.id, response)
        bot.send_message(message.chat.id, strings.start_info)
    else:
        bot.send_message(message.chat.id, strings.wrong_command_usage)
예제 #3
0
def modifyuser(id):
    if "user_id" not in session:
        return redirect("/")
    if session["role"] != "admin":
        return render_template(
                "error.html",
                message="Sinulla ei ole oikeuksia tälle sivulle.")
    roles = users.get_roles()
    if request.method == "GET":
        user = users.get_user(id)
        return render_template(
                "modifyuser.html",
                user=user, 
                roles=roles)
    if request.method == "POST":
        if session["csrf_token"] != request.form["csrf_token"]:
            abort(403)
        if users.update_user(request.form):
            user = users.get_user(id)
            return render_template(
                    "modifyuser.html", 
                    user=user, 
                    roles=roles, 
                    message="Käyttäjätiedot päivitetty onnistuneesti!")
        else:
            return render_template(
                    "error.html", 
                    message="Käyttäjätietojen päivitys epäonnistui.")
예제 #4
0
파일: server.py 프로젝트: jan25/tools
def update_user(user_id):
    if not request.is_json():
        return 'Request type is not json'
    json_data = request.get_json()
    if users.update_user(user_id, json_data):
        return 'User not updated'
    return users.get_user(user_id)
def updateuser():
#通过id查询到要更新的数据,并渲染到更新页面
	if request.method =="GET":
		uid=request.args.get("uid")
		print uid
		userinfo=getuser(uid)
		return render_template("update.html",user=userinfo)
#获取到更新页面表单的值,然后提交更新
	if request.method =="POST":
		userinfo={}
        	userinfo["name"] = request.form['name']
		userinfo["name_cn"] = request.form['name_cn']
        	userinfo["email"] = request.form['email']
       	 	userinfo["mobile"] = request.form['mobile']
        	userinfo["role"] = request.form['role']
        	userinfo["status"] = request.form['status']
        	update_user(userinfo)
        	return redirect("/")
예제 #6
0
def updateuser():
#通过id查询到要更新的数据,并渲染到更新页面
	if request.method =="GET":
		uid=request.args.get("uid")
		print uid
		userinfo=getuser(uid)
		return render_template("update.html",user=userinfo)
#获取到更新页面表单的值,然后提交更新
	if request.method =="POST":
		userinfo={}
        	userinfo["name"] = request.form['name']
		userinfo["name_cn"] = request.form['name_cn']
        	userinfo["email"] = request.form['email']
       	 	userinfo["mobile"] = request.form['mobile']
        	userinfo["role"] = request.form['role']
        	userinfo["status"] = request.form['status']
        	update_user(userinfo)
        	return redirect("/")
예제 #7
0
def user_modify():
    params = request.args if request.method == 'GET' else request.form
    username = params.get('username')
    old_passwd = params.get('password')
    new_passwd = params.get('new_password')
    try_passwd = params.get('try_password')
    age = params.get('age')
    import users
    _is_ok, msg = users.update_user(username, old_passwd, new_passwd,
                                    try_passwd, age)
    return json.dumps({'_is_ok': _is_ok, 'msg': msg})
예제 #8
0
def add_points():
    while True:
        try:
            r = urllib.request.urlopen("http://tmi.twitch.tv/group/user/"+cfg.CHANNEL_NAME+"/chatters")
        except urllib.error.HTTPError as e:
            print(e.code, e.reason)
            continue
        chattersJson = json.loads(r.read().decode("utf-8"))
        for key in chattersJson['chatters']:
            for name in chattersJson['chatters'][key]:
                user = users.get_user(name)
                user['points']+=cfg.PPM
                if name.lower() == cfg.CHANNEL_NAME.lower():
                    user['status'] = 2
                elif key!='viewers':
                    user['status'] = 1
                else:
                    user['status'] = 0
                users.update_user(user)
        sleep(60)
예제 #9
0
파일: notify.py 프로젝트: ddxtanx/su_site
def find_diff(u_id: str) -> Tuple[List[SkywardClass], List[SkywardClass]]:
    user_obj = users.get_user_by_id(u_id)
    mongo_grades_pkl = user_obj["grades"]
    mongo_grades = loads(mongo_grades_pkl)
    sky_data = user_obj["sky_data"]
    service = user_obj["service"]
    if sky_data == {}:
        raise SessionError("Session was destroyed.")
    try:
        curr_grades = SkywardAPI.from_session_data(service,
                                                   sky_data).get_grades()
        users.update_user(u_id, {"grades": dumps(curr_grades)})
        changed_grades = []  # type: List[SkywardClass]
        removed_grades = []  # type: List[SkywardClass]
        for curr_class, old_class in zip(curr_grades, mongo_grades):
            changed_grades.append(curr_class - old_class)
            removed_grades.append(old_class - curr_class)
        return (changed_grades, removed_grades)
    except SessionError:
        raise SessionError("Session was destroyed.")
예제 #10
0
파일: notify.py 프로젝트: ddxtanx/su_site
def handle_session_error(u_id: str, email: str):
    users.update_user(u_id, {"sky_data": {}})
    server = login_to_server()
    message_text = ("Your session has been destroyed. "
                    "Please retry your login at "
                    "{0}/profile. "
                    "Thank you! \n\n"
                    "--Skyward Updater".format(environ["url"]))
    message_html = ("<p>"
                    "Your session has been destroyed. "
                    "Please retry your login "
                    "<a href=\"{0}/profile\"> here. </a>"
                    "Thank you!"
                    "</p><br/><br/>"
                    "--Skyward Updater".format(environ["url"]))
    msg = MIMEMultipart('alternative')
    msg['Subject'] = "Session destroyed! :("
    msg['From'] = environ["email"]
    msg['To'] = email

    msg.attach(MIMEText(message_text, "plain"))
    msg.attach(MIMEText(message_html, "html"))

    server.sendmail(environ["email"], email, msg.as_string())
예제 #11
0
def update_user_endpoint(name):
    try:
        old_user = users.get_user(name=name)
        updates = construct_user(request.data)
        updated_user = users.update_user(name=name, updates=updates)
    except classes.UserNotFoundError:
        return error_response_not_found(
            message='No user associated with that name.')
    except classes.JSONNotFoundError:
        return error_response_bad_request(
            message=
            'Updated user details are required in a proper JSON request body.')
    except classes.UserInfoError as user_info_error:
        return error_response_bad_request(message=str(user_info_error))
    except classes.UserConflictError as user_conflict_error:
        return error_response_conflict(message=str(user_conflict_error))

    return success_response_with_json(user=updated_user, old_user=old_user)
예제 #12
0
파일: routes.py 프로젝트: acidmole/teammate
def user_edit_post():

	form = EditInfoForm(request.form)
	if users.get_csrf_token() != form.csrf_token.data:
		return render_template("error.html", message="Kielletty")

	if form.submit.data and form.validate():
		id = int(form.user_id.data)
		if users.is_admin() or users.user_id() == id:
			id = form.user_id.data
			if users.update_user(id, form.first_name.data, form.last_name.data):
				player_id = players.get_player_id(id)
				if players.update_player(player_id[0], form.jersey.data, form.height.data, form.weight.data, form.position.data):
					return redirect("/users")
				else:
					return render_template("error.html", message="Päivitys ei onnistunut")
			else:
				return render_template("error.html", message="Päivitys ei onnistunut")
		else:
			return render_template("error.html", message="Ei oikeutta")
	else:
		return render_template("error.html", message="Täytä kaikki lomakkeen kohdat.")
예제 #13
0
def update_user(user_id):
    return users.update_user(user_id, Session)
예제 #14
0
def model_endpoint():
    try:
        image_bytes = construct_image(
            request.data)  # Raises exception if no bytes in request body.
        token = get_token(request)
        user = users.get_user(token=token)
    except classes.UserAuthenticationError as bad_token_error:
        return error_response_unauthorized(message=str(bad_token_error))
    except classes.UserNotFoundError:
        return error_response_unauthorized(
            message='No user associated with your token.')
    except classes.ImageNotFoundError:
        return error_response_bad_request(
            message='Please include an image in your request body.')

    if int(user['quota']) <= 0:
        return error_response_unauthorized(message='No more request quota.',
                                           quota=user['quota'],
                                           tier=user['tier'])

    def predict_and_parse(image_bytes):
        img = (Image.open(io.BytesIO(image_bytes))).convert('RGB')
        x = img_to_array(img)

        predictor_host = open("rafiki_predictor_host.txt",
                              "r").read().splitlines()[0]
        data = {'query': x.tolist()}
        headers = {'Content-Type': 'application/json'}

        r = requests.post(predictor_host, headers=headers, json=data)
        original_pred_output = np.asarray(
            ast.literal_eval(r.content.decode('utf-8'))['prediction'])

        top_k = request.args.get('top_k')
        try:
            top_k = int(top_k)
            if (top_k < 1):
                top_k = 5
        except:
            top_k = 5

        return {
            k: round(float(v), 6)
            for k, v in dict(original_pred_output[:top_k]).items()
        }

    try:
        task = get_task_in_lowercase(request)
        # request_id = make_request_in_queue(image=image_bytes, queue=task)
        # request_done = wait_for_request_done(request_id)
        request_done = predict_and_parse(image_bytes)
        if not task == 'echo':
            newuser = {'quota': int(user['quota']) - 1}
            user = users.update_user(name=user['name'], updates=newuser)
    except classes.InvalidTaskError as invalid_task_error:
        return error_response_bad_request(message=str(invalid_task_error))
    except classes.AppServerTimeoutError:
        return error_response_service_unavailable(
            message='Request timeout. Please try again.')
    except Exception as e:
        print(e)
        return error_response_internal_server_error(message=e)

    return success_response_with_json(quota=user['quota'],
                                      tier=user['tier'],
                                      results=request_done)
예제 #15
0
def update_user(user_id):
    return users.update_user(user_id, Session)
예제 #16
0
def model_endpoint():
    try:
        image_bytes = construct_image(
            request.data)  # Raises exception if no bytes in request body.
        token = get_token(request)
        user = users.get_user(token=token)
    except classes.UserAuthenticationError as bad_token_error:
        return error_response_unauthorized(message=str(bad_token_error))
    except classes.UserNotFoundError:
        return error_response_unauthorized(
            message='No user associated with your token.')
    except classes.ImageNotFoundError:
        return error_response_bad_request(
            message='Please include an image in your request body.')

    if int(user['quota']) <= 0:
        return error_response_unauthorized(message='No more request quota.',
                                           quota=user['quota'],
                                           tier=user['tier'])

    try:
        task = get_task_in_lowercase(request)
        request_id = make_request_in_queue(image=image_bytes, queue=task)
        request_done = wait_for_request_done(request_id)

        if not task == 'echo':
            newuser = {'quota': int(user['quota']) - 1}
            user = users.update_user(name=user['name'], updates=newuser)
    except classes.InvalidTaskError as invalid_task_error:
        return error_response_bad_request(message=str(invalid_task_error))
    except classes.AppServerTimeoutError:
        return error_response_service_unavailable(
            message='Request timeout. Please try again.')
    except Exception as e:
        print(e)
        return error_response_internal_server_error(message=e)

    def nutrition_search(food_searchterm):
        try:
            topk_food = nutrition_mapping[nutrition_mapping.name.apply(
                lambda x: food_searchterm in str(x).lower())].iloc[0]
            return topk_food
        except:
            pass
        try:
            topk_food = nutrition_mapping[nutrition_mapping.altname.apply(
                lambda x: food_searchterm in str(x).lower())].iloc[0]
            return topk_food
        except:
            pass

    results = ast.literal_eval(str(request_done.results))
    nutrition = {}
    for food in results.keys():
        energy = 'nil'
        fat = 'nil'
        sodium = 'nil'
        protein = 'nil'
        per_serving = 'nil'

        try:
            food_searchterm = searchterms_mapping[food.lower()]['searchterms']
            topk_food = nutrition_search(food_searchterm.lower())
            energy = str(topk_food['Energy'])
            fat = str(topk_food['TotalFat'])
            sodium = str(topk_food['Sodium'])
            protein = str(topk_food['Protein'])
            per_serving = topk_food['portion']
        except:
            pass
        nutrition[food] = {
            'per_serving': per_serving,
            'energy': energy,
            'fat': fat,
            'sodium': sodium,
            'protein': protein
        }

    return success_response_with_json(quota=user['quota'],
                                      tier=user['tier'],
                                      results=request_done.results,
                                      nutrition=nutrition)