user_setting_user_name.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from .tool.func import *
  2. async def user_setting_user_name(user_name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. ip = ip_check()
  6. if user_name != '':
  7. if await acl_check('', 'owner_auth', '', '') == 1:
  8. return await re_error(conn, 3)
  9. else:
  10. ip = user_name
  11. if ip_or_user(ip) == 0:
  12. if flask.request.method == 'POST':
  13. auto_data = ['user_name', flask.request.form.get('new_user_name', '')]
  14. if do_user_name_check(conn, auto_data[1]) == 1:
  15. return await re_error(conn, 8)
  16. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [auto_data[0], ip])
  17. if curs.fetchall():
  18. curs.execute(db_change("update user_set set data = ? where name = ? and id = ?"), [auto_data[1], auto_data[0], ip])
  19. else:
  20. curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), [auto_data[0], ip, auto_data[1]])
  21. if user_name != '':
  22. return redirect(conn, '/change/user_name/' + url_pas(user_name))
  23. else:
  24. return redirect(conn, '/change/user_name')
  25. else:
  26. user_name = ip
  27. curs.execute(db_change("select data from user_set where id = ? and name = 'user_name'"), [ip])
  28. db_data = curs.fetchall()
  29. if db_data and db_data[0][0] != '':
  30. user_name = db_data[0][0]
  31. return easy_minify(flask.render_template(await skin_check(),
  32. imp = [await get_lang('change_user_name'), await wiki_set(), await wiki_custom(), wiki_css([0, 0])],
  33. data = '''
  34. <form method="post">
  35. <input name="new_user_name" placeholder="''' + await get_lang('user_name') + '''" value="''' + html.escape(user_name) + '''">
  36. <hr class="main_hr">
  37. <button id="opennamu_save_button" type="submit">''' + await get_lang('save') + '''</button>
  38. </form>
  39. ''',
  40. menu = [['change', await get_lang('return')]]
  41. ))
  42. else:
  43. return redirect(conn, '/login')