def phone(): """ 手机注册 """ # return "Hello, World!\nReg!" from app_frontend.forms.reg import RegPhoneForm form = RegPhoneForm() # 推荐人赋值 form.user_pid.data = session.get('user_pid', 0) if request.method == 'POST': if form.validate_on_submit(): current_time = datetime.utcnow() # 添加用户注册信息 user_data = { 'reg_ip': get_real_ip(), 'create_time': current_time, 'update_time': current_time, } user_id = add_user(user_data) # 添加用户认证信息 # 手机号码国际化 area_id = form.area_id.data area_code = area_code_map.get(area_id, '86') mobile_iso = '%s%s' % (area_code, form.phone.data) user_auth_data = { 'user_id': user_id, 'type_auth': TYPE_AUTH_PHONE, 'auth_key': mobile_iso, 'auth_secret': md5(form.password.data), 'status_verified': 1, 'create_time': current_time, 'update_time': current_time, } add_user_auth(user_auth_data) # 添加用户基本信息 user_profile_data = { 'user_id': user_id, 'user_pid': form.user_pid.data, 'area_id': form.area_id.data, 'phone': form.phone.data, 'create_time': current_time, 'update_time': current_time, } add_user_profile(user_profile_data) if user_id: flash(u'%s, 恭喜您注册成功' % form.phone.data, 'success') else: flash(u'%s, 很遗憾注册失败' % form.phone.data, 'warning') return redirect(url_for('auth.index')) # 闪现消息 success info warning danger # flash(form.errors, 'warning') # 调试打开 return render_template('reg/phone.html', title='reg', form=form)
def _track_login_s(sender, user, **extra): """ 通过信号处理登录日志 :param sender: :param user: :param extra: :return: """ # 用户通过验证后,记录登入IP login_info = { 'login_ip': get_real_ip(), 'login_time': datetime.utcnow() } edit_user(user.id, login_info)
def login(): """ 后台登录页面 """ # print current_user.__dict__ # return json.dumps(current_user.__dict__) if current_user and current_user.is_authenticated: return redirect(url_for('index')) from app_backend.forms.login import LoginForm form = LoginForm() if request.method == 'POST': if form.validate_on_submit(): from app_backend.api.admin import get_admin_row condition = { 'username': form.account.data, 'password': md5(form.password.data) } admin_info = get_admin_row(**condition) if admin_info is None: flash(u'%s, 登录失败,账号密码错误' % form.account.data, 'warning') return render_template('login.html', title='login', form=form) if admin_info.status_delete == STATUS_DEL_OK: flash(u'%s, 登录失败,账号已被删除' % form.account.data, 'warning') return render_template('login.html', title='login', form=form) # session['logged_in'] = True # 用户通过验证后,记录登入IP from app_backend.api.admin import edit_admin ip_data = { 'login_ip': get_real_ip(), 'login_time': datetime.utcnow() } edit_admin(admin_info.id, ip_data) # 用 login_user 函数来登入他们 from app_backend.api.admin import get_admin_row_by_id login_user(get_admin_row_by_id(admin_info.id), remember=form.remember.data) # 加载权限 # Tell Flask-Principal the identity changed identity_changed.send(app, identity=Identity(admin_info.id, admin_info.role_id)) flash(u'%s, 恭喜,登录成功' % form.account.data, 'success') return redirect(request.args.get('next') or url_for('index')) # flash(form.errors, 'warning') # 调试打开 return render_template('login.html', title='login', form=form)
def setting(): """ 设置 """ # return "Hello, World!\nSetting!" form = UserProfileForm(request.form) if request.method == 'GET': from app_backend.api.user import get_user_row_by_id user_info = get_user_row_by_id(current_user.id) if user_info: form.nickname.data = user_info.nickname form.avatar_url.data = user_info.avatar_url form.email.data = user_info.email form.phone.data = user_info.phone form.birthday.data = user_info.birthday form.create_time.data = user_info.create_time form.update_time.data = user_info.update_time if request.method == 'POST': if form.validate_on_submit(): # todo 判断邮箱是否重复 from app_backend.api.user import edit_user from datetime import datetime user_info = { 'nickname': form.nickname.data, 'avatar_url': form.avatar_url.data, 'email': form.email.data, 'phone': form.phone.data, 'birthday': form.birthday.data, 'update_time': datetime.utcnow(), 'last_ip': get_real_ip(), } result = edit_user(current_user.id, user_info) if result == 1: flash(u'修改成功', 'success') if result == 0: flash(u'修改失败', 'warning') flash(form.errors, 'warning') # 调试打开 flash(u'Hello, %s' % current_user.email, 'info') # 测试打开 return render_template('./setting.html', title='setting', form=form)
def index(): """ 注册 """ # return "Hello, World!\nReg!" from app_frontend.forms.reg import RegForm form = RegForm() # 推荐人赋值 user_pid = session.get('user_pid', 0) if not app.config.get('TEST') and not user_pid: flash(u'没有推荐人,不能注册', 'warning') return redirect('index') form.user_pid.data = user_pid if request.method == 'POST': if form.validate_on_submit(): current_time = datetime.utcnow() # 添加用户注册信息 user_data = { 'create_time': current_time, 'update_time': current_time, 'reg_ip': get_real_ip() } from app_frontend.api.user import add_user user_id = add_user(user_data) # 添加用户认证信息 user_auth_data = { 'user_id': user_id, 'type_auth': TYPE_AUTH_ACCOUNT, 'auth_key': form.account.data, 'auth_secret': md5(form.password.data), 'status_verified': 1, 'create_time': current_time, 'update_time': current_time, } from app_frontend.api.user_auth import add_user_auth add_user_auth(user_auth_data) # 添加用户基本信息 user_profile_data = { 'user_id': user_id, 'user_pid': form.user_pid.data, 'nickname': form.account.data, 'create_time': current_time, 'update_time': current_time, } add_user_profile(user_profile_data) if user_id: # 加入用户注册自动监测锁定队列 q = RabbitDelayQueue(exchange=EXCHANGE_NAME, queue_name='lock_reg_not_active', ttl=LOCK_REG_NOT_ACTIVE_TTL) q.put({ 'user_id': user_id, 'reg_time': current_time.strftime('%Y-%m-%d %H:%M:%S') }) q.close_conn() flash(u'%s, 恭喜您注册成功' % form.account.data, 'success') else: flash(u'%s, 很遗憾注册失败' % form.account.data, 'warning') return redirect(url_for('auth.index')) # 闪现消息 success info warning danger # flash(form.errors, 'warning') # 调试打开 return render_template('reg/index.html', title='reg', form=form)
def email(): """ 邮箱注册 """ # return "Hello, World!\nReg!" from app_frontend.forms.reg import RegEmailForm form = RegEmailForm() # 推荐人赋值 form.user_pid.data = session.get('user_pid', 0) if request.method == 'POST': if form.validate_on_submit(): # 添加用户注册信息 current_time = datetime.utcnow() user_data = { 'create_time': current_time, 'update_time': current_time, 'reg_ip': get_real_ip() } from app_frontend.api.user import add_user user_id = add_user(user_data) # 添加用户认证信息 user_auth_data = { 'user_id': user_id, 'type_auth': TYPE_AUTH_EMAIL, 'auth_key': form.email.data, 'auth_secret': md5(form.password.data) } from app_frontend.api.user_auth import add_user_auth add_user_auth(user_auth_data) # 添加用户基本信息 user_profile_data = { 'user_id': user_id, 'user_pid': form.user_pid.data, 'email': form.email.data, 'create_time': current_time, 'update_time': current_time, } add_user_profile(user_profile_data) if user_id: flash(u'%s, 恭喜您注册成功' % form.email.data, 'success') # todo 发送邮箱校验邮件 # email_validate_content = { # 'mail_from': 'System Support<*****@*****.**>', # 'mail_to': form.email.data, # 'mail_subject': 'verify reg email', # 'mail_html': 'verify reg email address in mailbox' # } # from app_frontend import send_cloud_client # send_email_result = send_cloud_client.mail_send(**email_validate_content) # # 调试邮件发送结果 # if send_email_result.get('result') is False: # flash(send_email_result.get('message'), 'warning') # else: # flash(send_email_result.get('message'), 'success') # https://www.***.com/email/signup/uuid else: flash(u'%s, 很遗憾注册失败' % form.email.data, 'warning') return redirect(url_for('auth.index')) # 闪现消息 success info warning danger # flash(form.errors, 'warning') # 调试打开 return render_template('reg/email.html', title='reg', form=form)