Ejemplo n.º 1
0
def auth_register():
    username = request.form.get('username')
    email = request.form.get('email')
    password = request.form.get('password')

    user_username = Users.query.filter_by(username=username).first()
    user_email = Users.query.filter_by(email=email).first()

    if user_username or user_email:
        flash("Username/email already exists", "info")
        return redirect(url_for('auth.signup'))

    elif (len(username) or len(email)) < 5 or (len(password)) < 6:
        flash("Username/email/password min 6 Characters", "info")
        return redirect(url_for('auth.signup'))

    user = Users()
    user.username = username
    user.email = email
    user.password = bcrypt.generate_password_hash(password).decode("utf-8")

    db.session.add(user)
    db.session.commit()

    languages = Languages.query.all()
    for lang in languages:
        user_watchlist = Watchlist()
        user_watchlist.user_id = user.id
        user_watchlist.language_id = lang.id
        db.session.add(user_watchlist)
    db.session.commit()

    flash("Successfuly registered! Please Log in", "info")
    return redirect(url_for('users.profile', id=user.id))
Ejemplo n.º 2
0
    def post(self, argument):
        if argument == '1':
            data_json = json.loads(self.get_argument('data'))
            code = data_json.get('code')
            if self.session['email_random'] == code:

                # 新增到User表
                user_data = {
                    "UserName": self.session['nickname'],
                    "UserEmail": self.session['bind_email'],
                    "UserLastVisitIP": self.request.remote_ip
                }
                user_obj = Users(**user_data)
                session.add(user_obj)
                session.commit()
                # 添加到映射表
                data = {
                    "OpenID": self.session['openid'],
                    "UserID": str(user_obj.UserID)
                }
                session.add(LoginMap(**data))
                self.session.set('index_user', user_obj)
                session.commit()
                session.close()
                print "user_data", user_data
                # self.session['index_user'] = user_data
                self.write_json("验证成功", code=1)
            else:
                self.write_json("验证失败", code=0)
Ejemplo n.º 3
0
    def post(self):
        # 注册
        try:
            # 获取前端传来的参数
            data = json.loads(self.get_argument('data'))

            luosimao_rep = data.get('luosimao_rep')
            check_json = {
                'api_key': settings.LUOSIMAO_API_KEY,
                'response': luosimao_rep
            }
            check_response = requests.post(settings.LUOSIMAO_CHECK_ADDRESS,
                                           data=check_json)
            if json.loads(check_response.content).get('res') != 'success':
                code = 3
                msg = u"人机验证失败"
                self.write_json(msg, code=code)
                return
            data.pop('luosimao_rep')
            data['UserAge'] = int(data['UserAge'])
            data['UserPwd'] = sec_pass(data['UserPwd'])
            data['UserLastVisitIP'] = self.request.remote_ip
            active_hash_code = sec_pass(str(int(time.time())))
            data['UserHashCode'] = active_hash_code
            session.add(Users(**data))
            session.commit()
            active_url = '<a href='+'http://'+settings.WEB_DOMAIN_NAME+\
                         '/active_email/?address='+data['UserEmail']+\
                         '&hash_code='+active_hash_code+'>http://'+settings.WEB_DOMAIN_NAME+\
                         '/active_email/?address='+data['UserEmail']+\
                         '&hash_code='+active_hash_code+'</a>'
            content = '''
<html>
<body>
<p>亲爱的用户:</p>
<pre>
  您收到这封邮件,是由于在 春色撩人网站 进行了新用户注册,或用户修改 Email 使用 了这个邮箱地址。
 如果您并没有访问过 春色撩人网站,或没有进行上述操作,请忽 略这封邮件。您不需要退订或进行其他进一步的操作。
</pre>
<pre>
 ===============激活链接===================

''' + active_url + '''

(如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问)

</pre>
</body>
</html>
'''
            obj = redis_queue_send_email.REDIS_QUEUE()
            obj.send_email_via_queue(settings.SMTP_USER, data['UserEmail'],
                                     settings.WEB_NAME + "注册", content)

            self.write_json("success", code=1)
        except Exception, e:
            # 事务
            session.rollback()
            self.write_json("failed", code=0)
Ejemplo n.º 4
0
def create(request: User, db: Session = Depends(get_db)):
    request.password = Hash.bcrypt(request.password)
    new_user = Users(**request.dict())
    print(new_user)
    db.add(new_user)
    db.commit()
    db.refresh(new_user)
    return new_user
Ejemplo n.º 5
0
 def decorated_function(*args, **kwargs):
     try:
         token = request.headers["Authorization"].replace("Bearer ", "")
         token_info = jwt.decode(token, "secret")
         users = Users.objects(pk=token_info['_id'], tokens__token=token)
         if len(users) == 0: raise Exception("User not authorized")
         request.token = token
         request.user = users[0]
         return f(*args, **kwargs)
     except Exception as e:
         return jsonify({"error": str(e)})
Ejemplo n.º 6
0
def login_user():
    if request.method == "POST":
        try:
            data = request.get_json()
            user = Users.find_user_by_credentials(data["mail"],
                                                  data["password"])
            token = user.generate_auth_token()
            return jsonify({
                "user:"******"token": token
            })
        except Exception as e:
            return jsonify({"error": str(e)}), 500
Ejemplo n.º 7
0
 def post(self):
     # 新增用户
     try:
         # 获取前端传来的参数
         data = json.loads(self.get_argument('data'))
         # 保存访问IP
         data['UserLastVisitIP'] = self.request.remote_ip
         # 密码加密
         data['UserPwd'] = sec_pass(data['UserPwd'])
         session.add(Users(**data))
         session.commit()
         self.write_json("success", code=1)
     except:
         # 事务
         session.rollback()
         self.write_json("failed", code=0)
     finally:
         session.close()
Ejemplo n.º 8
0
def user_update(id):
    first_name = request.form.get('first_name')
    last_name = request.form.get('last_name')
    username = request.form.get('username')
    email = request.form.get('email')
    password = request.form.get('password')
    phone = request.form.get('phone')

    my_user = Users()
    my_user.username = username
    my_user.email = email
    my_user.password = bcrypt.generate_password_hash(password).decode("utf-8")
    my_user.first_name = first_name
    my_user.last_name = last_name
    my_user.phone = phone

    db.session.add(user)
    db.session.commit()

    return render_template('user_show.html', id=my_user.id)
Ejemplo n.º 9
0
def handle_users():
    if request.method == "POST":
        data = request.get_json()
        try:
            newUser = Users(**data)
            changed_fields = list(data.keys())
            newUser.save(signal_kwargs={"changed_fields": changed_fields})
            token = newUser.generate_auth_token()
            return jsonify({
                "user:"******"token": token
            })
        except Exception as e:
            return jsonify({"error": str(e)})
Ejemplo n.º 10
0
from time import sleep
get_db()

from models.User import Users
import bcrypt

# try:
#   mike_user = Users(mail="*****@*****.**", password="******", name="PHN_myname")
#   mike_user.save()
#   # mike_user = Users.find_user_by_credentials("*****@*****.**", "newThing23d")
#   print(mike_user.to_json())
# except Exception as e:
#   print("Should work 2", e)

try:
    Users.objects(mail="*****@*****.**").delete()
    mike_user = Users(mail="*****@*****.**",
                      password="******",
                      name="PHN_mongonengine")
    print(mike_user.to_json())
    # import pdb; pdb.set_trace()
    # print(Users.objects(id=mike_user.id))
    mike_user.save(signal_kwargs={"changed_fields": ["password"]})
    print("user Created")
except Exception as e:
    print("Should have Created user", str(e))

try:
    mike_user = Users.find_user_by_credentials("*****@*****.**",
                                               "newThing23d")
    mike_user.remove_all_auth_token()
Ejemplo n.º 11
0
def seed_db():
    from models.User import Users
    from models.Language import Languages
    from models.Watchlist import Watchlist

    faker = Faker()
    users = []
    languages = []
    watchlists = []
    colours = [
        'Red', 'White', 'Yellow', 'Green', 'Gold', 'Silver', 'Purple', 'Teal'
    ]
    list_FNames = [
        'Adam', 'Eve', 'Jada', 'Ryan', 'Alex', 'Myra', 'Amar', 'Jason',
        'Frankie'
    ]
    list_LNames = [
        'Gold', 'Silver', 'Richardson', 'Teller', 'Rickers', 'Sarr', 'Farah',
        'Reed', 'Port'
    ]
    list_languages = [{
        "python": {
            "2020-09-27": 2270.5,
            "2020-09-28": 2271.0,
            "2020-09-29": 2315.0,
            "2020-09-30": 2282.5,
            "2020-10-01": 2345.0,
            "2020-10-02": 2323.5,
            "2021-03-14": 3352.0
        },
        "javascript": {
            "2020-09-27": 1907.0,
            "2020-09-28": 1896.0,
            "2020-09-29": 1947.5,
            "2020-09-30": 1918.0,
            "2020-10-01": 1969.0,
            "2020-10-02": 1942.0,
            "2021-03-14": 2867.5
        },
        "html": {
            "2020-09-27": 1134.0,
            "2020-09-28": 1152.5,
            "2020-09-29": 1202.0,
            "2020-09-30": 1172.5,
            "2020-10-01": 1209.5,
            "2020-10-02": 1196.0,
            "2021-03-14": 1730.5
        },
        "css": {
            "2020-09-27": 899.5,
            "2020-09-28": 906.0,
            "2020-09-29": 928.5,
            "2020-09-30": 923.0,
            "2020-10-01": 952.0,
            "2020-10-02": 947.0,
            "2021-03-14": 1260.5
        },
        "java": {
            "2020-09-27": 2356.0,
            "2020-09-28": 2346.0,
            "2020-09-29": 2393.5,
            "2020-09-30": 2365.0,
            "2020-10-01": 2434.0,
            "2020-10-02": 2400.5,
            "2021-03-14": 3465.5
        },
        "swift": {
            "2020-09-27": 212.0,
            "2020-09-28": 218.5,
            "2020-09-29": 213.5,
            "2020-09-30": 213.5,
            "2020-10-01": 215.5,
            "2020-10-02": 211.5,
            "2021-03-14": 357.5
        }
    }]

    for i in range(9):
        user = Users()
        user.first_name = random.choice(list_FNames)
        user.last_name = random.choice(list_LNames)
        user.username = f"{user.first_name}{i}"
        user.email = f"{user.first_name}{i}@test.com"
        user.password = bcrypt.generate_password_hash(f"password{i}").decode(
            "utf-8")
        user.phone = f"043226447{i}"

        db.session.add(user)
        users.append(user)

    db.session.commit()

    for lang in list_languages:
        for i in lang:
            language = Languages()
            language.name = i
            language.details = lang[i]
            db.session.add(language)
            languages.append(language)

    db.session.commit()

    for person in users:
        for lang in languages:
            user_watchlist = Watchlist()
            user_watchlist.user_id = person.id
            user_watchlist.language_id = lang.id
            db.session.add(user_watchlist)
    db.session.commit()

    print("Tables seeded")