def account_admin_register(request): if request.method == 'GET': return render(request, 'account_sharing/admin_register.html') else: admin_username = request.POST['admin_username'] admin_password = request.POST['admin_password'] email = request.POST['email'] invitation_code = request.POST['invitation_code'] if specific_utils.check_admin_username_in_db(admin_username): return render(request, 'account_sharing/admin_register.html', context={'warning_text': '用户已存在'}) if specific_utils.check_admin_username_in_awaiting_db(admin_username): return render(request, 'account_sharing/admin_register.html', context={'warning_text': '用户正在审批中'}) if not specific_utils.check_invitation_code(invitation_code): return render(request, 'account_sharing/admin_register.html', context={'warning_text': '邀请码不正确'}) myutils.sql_modify('''insert into account_sharing_admin_register_info (admin_username, admin_password, status, email, register_time) VALUES ("{}","{}","{}","{}","{}")'''.format(admin_username, admin_password, 'waiting', email, myutils.get_now()[:10])) return HttpResponse('注册请求成功,请等待,我们将以邮件形式发送注册状态给您')
def account_admin_change_password(request): admin_username = request.COOKIES.get('admin_username', '') if admin_username: if request.method == 'GET': # admin_info = myutils.sql_query_one(''' # select * from account_sharing_admin_info where admin_username="******"'''.format(admin_username)) return render(request, 'account_sharing/admin_change_password.html', context={'admin_username': admin_username}) if request.method == 'POST': admin_info = myutils.sql_query_one(''' select * from account_sharing_admin_info where admin_username="******"''' .format(admin_username)) admin_password = request.POST['password_old'] if admin_password == admin_info['admin_password']: admin_new_password = request.POST['password_new'] myutils.sql_modify(''' update account_sharing_admin_info set admin_password="******" where admin_username="******" '''.format(admin_new_password, admin_username)) response = render(request, 'account_sharing/admin_login.html', context={'adimn_login_info': '密码修改成功,请重新登陆'}) response.delete_cookie('admin_username') return response else: return render(request, 'account_sharing/admin_change_password.html', context={ 'admin_username': admin_username, 'warning_text': '原密码输入错误!' }) return redirect('account_sharing/admin_login')
def admin_delete_apply(request): if request.COOKIES.get('admin_username', ''): try: apply_id = request.GET['apply_id'] myutils.sql_modify(''' delete from account_sharing_admin_apply_info where apply_id={} '''.format(apply_id)) return HttpResponse('success') except: pass return HttpResponse('fail')
def super_refuse_apply(request): if request.COOKIES.get('super_admin_name', ''): try: apply_id = request.GET['apply_id'] myutils.sql_modify(''' update account_sharing_admin_apply_info set apply_status="refused" where apply_id={} '''.format(apply_id)) return HttpResponse('success') except: pass return HttpResponse('fail')
def super_delete_admin(request): if request.COOKIES.get('super_admin_name', ''): try: uid = request.GET['uid'] myutils.sql_modify( '''delete from account_sharing_admin_info where uid={}'''. format(uid)) return HttpResponse('success') except: pass return HttpResponse('fail')
def super_approve_apply(request): if request.COOKIES.get('super_admin_name', ''): try: apply_id = request.GET['apply_id'] myutils.sql_modify(''' update account_sharing_admin_apply_info set apply_status="approved" where apply_id={} '''.format(apply_id)) apply_sql = \ myutils.sql_query_one('''select apply_sql from account_sharing_admin_apply_info where apply_id={}''' .format(apply_id))['apply_sql'] myutils.sql_modify(apply_sql) return HttpResponse('success') except: pass return HttpResponse('fail')
def super_refuse_register(request): if request.COOKIES.get('super_admin_name', ''): try: register_id = request.GET['register_id'] admin_info = myutils.sql_query_one( '''select * from account_sharing_admin_register_info where register_id={}''' .format(register_id)) admin_username = admin_info['admin_username'] admin_email = admin_info['email'] # TODO : 发送邮件 if not send_email.send_email(admin_email): return HttpResponse('fail') myutils.sql_modify(''' update account_sharing_admin_register_info set status="rejected" where register_id={} '''.format(register_id)) return HttpResponse('success') except: pass return HttpResponse('fail')
def account_admin_delete(request): admin_username = request.COOKIES.get('admin_username', '') if admin_username: aid = request.GET['aid'] apply_sql = 'delete from account_sharing_account_info where aid = {}'.format( aid) account_name = myutils.sql_query_one( '''select account_name from account_sharing_account_info where aid={}''' .format(aid))['account_name'] apply_content = '删除游戏共享账号 {} '.format(account_name) if myutils.sql_query_one(''' select * from account_sharing_admin_apply_info where apply_sql="{}" and apply_status="waiting" '''.format(apply_sql)): return HttpResponse('已存在该请求') else: myutils.sql_modify('''insert into account_sharing_admin_apply_info (apply_time, admin_username, apply_content, apply_sql, apply_status) values ("{}","{}","{}","{}","{}")''' .format(myutils.get_now(), request.COOKIES.get('admin_username'), apply_content, apply_sql, 'waiting')) return HttpResponse('success') else: return HttpResponse('用户信息超时')
def account_admin_add(request): context = dict() if not request.COOKIES.get('admin_username', ''): return redirect('/account_sharing/admin/login') if request.method == 'POST': print(request.POST) account_name = request.POST['account_name'] account_password = request.POST['account_password'] account_expire_time = request.POST['account_expire_time'] account_type = request.POST['account_type'] if account_name and account_password: if myutils.sql_query_one( ''' select * from account_sharing_account_info where account_name="{}"''' .format(account_name)) is None: if myutils.get_now()[:10] < account_expire_time: apply_sql = '''insert into account_sharing_account_info (account_name, account_password, account_start_time, account_expire_time, account_type) values (""{}"",""{}"",""{}"",""{}"",""{}"")'''.format( account_name, account_password, myutils.get_now()[:10], account_expire_time, account_type) apply_content = '新增游戏共享账号 {};账号类型 {}'.format( account_name, account_type) myutils.sql_modify( ''' insert into account_sharing_admin_apply_info (apply_time, admin_username, apply_content, apply_sql, apply_status) values ("{}","{}","{}","{}","{}")''' .format(myutils.get_now(), request.COOKIES.get('admin_username'), apply_content, apply_sql, 'waiting')) return redirect('/account_sharing/admin/login') else: context['warning_text'] = '过期时间应大于当前时间' else: context['warning_text'] = '该账号已存在,如需更变,请删除已有账号后新增' else: context['warning_text'] = '请输入账号密码' return render(request, 'account_sharing/admin_add.html', context=context)
def super_approve_register(request): if request.COOKIES.get('super_admin_name', ''): try: register_id = request.GET['register_id'] admin_info = myutils.sql_query_one( '''select * from account_sharing_admin_register_info where register_id={}''' .format(register_id)) print(admin_info) admin_username = admin_info['admin_username'] admin_password = admin_info['admin_password'] admin_register_time = admin_info['register_time'] admin_email = admin_info['email'] admin_verification_code = ''.join( [str(randint(0, 10)) for _ in range(4)]) admin_info['admin_verification_code'] = admin_verification_code # TODO :发送邮件 if not send_email.send_email(admin_email, admin_info): return HttpResponse('fail') myutils.sql_modify(''' update account_sharing_admin_register_info set status="confirmed" where register_id={} '''.format(register_id)) myutils.sql_modify('''insert into account_sharing_admin_info (admin_username, admin_password, admin_verification_code, admin_register_time, admin_email) VALUES ("{}","{}","{}","{}","{}")'''.format( admin_username, admin_password, admin_verification_code, admin_register_time, admin_email)) uid = myutils.get_uid_by_admin_username(admin_username) publickey, privatekey = rsa_new_keys() with open('files/client/{}.code'.format(admin_username), 'wb') as f: f.write(bytes(privatekey, encoding='utf-8')) myutils.sql_modify(''' insert into account_sharing_admin_rsa (uid, publickey, privatekey) VALUES ({},"{}","{}")'''.format( uid, publickey, privatekey)) return HttpResponse('success') except: pass return HttpResponse('fail')
def add_log(request, apply_time, period, type): if request.COOKIES.get('admin_username', None) is None: return redirect('/account_sharing/admin') # apply_time='2019-08-21 15:20:48' # period='1h' context = dict() have_available, aid = myutils.have_available_account(apply_time, type=type) datetime_now = datetime.now() datetime_period = timedelta(hours=int(period[:-1])) datetime_end = datetime_now + datetime_period if have_available: uid = myutils.get_uid_by_admin_username( request.COOKIES.get('admin_username')) max_account_nb = \ myutils.sql_query_one( ''' select max_account_nb from account_sharing_admin_info where uid={} '''.format(uid))[ 'max_account_nb'] cur = myutils.current_inused_account_number_for_user(uid) print('cur:{},max_account_nb:{}'.format(cur, max_account_nb)) if cur >= max_account_nb: log_text = ' '.join([ 'Apply time :', apply_time, 'Apply period :', period, 'status : fail' ]) context['apply_use_result_info'] = ' '.join( [apply_time, ': 申请失败.', '已达到当前使用账号上限']) context['download_code_url'] = '' else: account_name = \ myutils.sql_query_one( ''' select account_name from account_sharing_account_info where aid={} '''.format(aid))[ 'account_name'] myutils.sql_modify( '''insert into account_sharing_account_history (aid,account_name,apply_time,apply_duration,end_time,uid) values ({},"{}","{}","{}","{}",{})''' .format( aid, account_name, myutils.get_now(), period, datetime_end.__str__()[:19], uid, )) log_text = ' '.join([ 'Apply time :', apply_time, 'Apply period :', period, 'status : success', 'account_name :', account_name ]) context['apply_use_result_info'] = ' '.join([ apply_time, ': 已成功申请', period, '时长', '分配账号为:{}'.format(account_name) ]) # 生成密码文件以及返回文件路径 file_path = myutils.generate_code_file(uid, account_name) context['download_code_url'] = ''' <a href="/download/?file_path={}">点击此处下载密码</a> '''.format(file_path) else: log_text = ' '.join([ 'Apply time :', apply_time, 'Apply period :', period, 'status : fail' ]) context['apply_use_result_info'] = ' '.join([apply_time, ': 申请失败']) context['download_code_url'] = '' print(log_text) Logger().add_log(log_text) # context['verify_status'] = 'success' # context['verify_result'] = '' context['log_content'] = myutils.show_account_status_for_user() return HttpResponse(json.dumps(context), content_type="application/json")
def account_history_delete(request): myutils.sql_modify( 'delete from account_sharing_account_history where id = {}'.format( request.GET['id'])) return HttpResponse('success')