2
0

give_user_fix.py 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from .tool.func import *
  2. def give_user_fix(user_name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. curs.execute(db_change("select data from user_set where id = ? and name = 'pw'"), [user_name])
  6. if not curs.fetchall():
  7. return re_error('/error/2')
  8. if admin_check() != 1:
  9. return re_error('/error/3')
  10. if flask.request.method == 'POST':
  11. select = flask.request.form.get('select', '')
  12. if select == 'password_change':
  13. password = flask.request.form.get('new_password', '')
  14. check_password = flask.request.form.get('password_check', '')
  15. if password == check_password:
  16. hashed = pw_encode(password)
  17. curs.execute(db_change("update user_set set data = ? where id = ? and name = 'pw'"), [
  18. hashed,
  19. user_name
  20. ])
  21. else:
  22. return re_error('/error/20')
  23. elif select == '2fa_password_change':
  24. password = flask.request.form.get('new_password', '')
  25. check_password = flask.request.form.get('password_check', '')
  26. if password == check_password:
  27. hashed = pw_encode(password)
  28. curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [user_name])
  29. if curs.fetchall():
  30. curs.execute(db_change("update user_set set data = ? where name = '2fa_pw' and id = ?"), [hashed, user_name])
  31. else:
  32. curs.execute(db_change("insert into user_set (name, id, data) values ('2fa_pw', ?, ?)"), [user_name, hashed])
  33. else:
  34. return re_error('/error/20')
  35. elif select == '2fa_off':
  36. curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [user_name])
  37. if curs.fetchall():
  38. curs.execute(db_change("update user_set set data = '' where name = '2fa' and id = ?"), [user_name])
  39. conn.commit()
  40. return redirect('/user/' + url_pas(user_name))
  41. else:
  42. return easy_minify(flask.render_template(skin_check(),
  43. imp = [load_lang('user_fix'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  44. data = '''
  45. <form method="post">
  46. <select name="select">
  47. <option value="password_change">''' + load_lang('password_change') + '''</option>
  48. <option value="2fa_password_change">''' + load_lang('2fa_password_change') + '''</option>
  49. <option value="2fa_off">''' + load_lang('2fa_off') + '''</option>
  50. </select>
  51. <hr class="main_hr">
  52. ''' + load_lang('password_change') + ''' | ''' + load_lang('2fa_password_change') + '''
  53. <hr class="main_hr">
  54. <input placeholder="''' + load_lang('new_password') + '''" name="new_password" type="password">
  55. <hr class="main_hr">
  56. <input placeholder="''' + load_lang('password_confirm') + '''" name="password_check" type="password">
  57. <hr class="main_hr">
  58. <button type="submit">''' + load_lang('go') + '''</button>
  59. </form>
  60. ''',
  61. menu = [['manager', load_lang('return')]]
  62. ))