user_info.py 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from .tool.func import *
  2. async def user_info(name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if name == '':
  6. ip = ip_check()
  7. else:
  8. ip = name
  9. login_menu = ''
  10. tool_menu = ''
  11. if name == '':
  12. curs.execute(db_change("select count(*) from user_notice where name = ? and readme = ''"), [ip])
  13. count = curs.fetchall()
  14. if count and count[0][0] != 0:
  15. tool_menu += '<li><a class="opennamu_not_exist_link" href="/alarm">' + await get_lang('alarm') + ' (' + str(count[0][0]) + ')</a></li>'
  16. else:
  17. tool_menu += '<li><a href="/alarm">' + await get_lang('alarm') + '</a></li>'
  18. if ip_or_user(ip) == 0:
  19. login_menu += '''
  20. <li><a href="/logout">''' + await get_lang('logout') + '''</a></li>
  21. <li><a href="/change">''' + await get_lang('user_setting') + '''</a></li>
  22. '''
  23. tool_menu += '<li><a href="/watch_list">' + await get_lang('watchlist') + '</a></li>'
  24. tool_menu += '<li><a href="/star_doc">' + await get_lang('star_doc') + '</a></li>'
  25. tool_menu += '<li><a href="/challenge">' + await get_lang('challenge_and_level_manage') + '</a></li>'
  26. tool_menu += '<li><a href="/acl/user:' + url_pas(ip) + '">' + await get_lang('user_document_acl') + '</a></li>'
  27. else:
  28. login_menu += '''
  29. <li><a href="/login">''' + await get_lang('login') + '''</a></li>
  30. <li><a href="/register">''' + await get_lang('register') + '''</a></li>
  31. <li><a href="/change">''' + await get_lang('user_setting') + '''</a></li>
  32. <li><a href="/login/find">''' + await get_lang('password_search') + '''</a></li>
  33. '''
  34. login_menu = '<h2>' + await get_lang('login') + '</h2><ul>' + login_menu + '</ul>'
  35. tool_menu = '<h2>' + await get_lang('tool') + '</h2><ul>' + tool_menu + '</ul>'
  36. if await acl_check(tool = 'ban_auth') != 1:
  37. curs.execute(db_change("select block from rb where block = ? and ongoing = '1'"), [ip])
  38. ban_name = await get_lang('release') if curs.fetchall() else await get_lang('ban')
  39. admin_menu = '''
  40. <h2>''' + await get_lang('admin') + '''</h2>
  41. <ul>
  42. <li><a href="/auth/ban/''' + url_pas(ip) + '''">''' + ban_name + '''</a></li>
  43. <li><a href="/list/user/check_submit/''' + url_pas(ip) + '''">''' + await get_lang('check') + '''</a></li>
  44. </ul>
  45. '''
  46. else:
  47. admin_menu = ''
  48. return easy_minify(flask.render_template(await skin_check(),
  49. imp = [await get_lang('user_tool'), await wiki_set(), await wiki_custom(), wiki_css([0, 0])],
  50. data = '''
  51. <h2>''' + await get_lang('state') + '''</h2>
  52. <div id="opennamu_get_user_info">''' + html.escape(ip) + '''</div>
  53. ''' + login_menu + '''
  54. ''' + tool_menu + '''
  55. <h2>''' + await get_lang('other') + '''</h2>
  56. <ul>
  57. <li><a href="/record/''' + url_pas(ip) + '''">''' + await get_lang('edit_record') + '''</a></li>
  58. <li><a href="/record/topic/''' + url_pas(ip) + '''">''' + await get_lang('discussion_record') + '''</a></li>
  59. <li><a href="/record/bbs/''' + url_pas(ip) + '''">''' + await get_lang('bbs_record') + '''</a></li>
  60. <li><a href="/record/bbs_comment/''' + url_pas(ip) + '''">''' + await get_lang('bbs_comment_record') + '''</a></li>
  61. <li><a href="/topic/user:''' + url_pas(ip) + '''">''' + await get_lang('user_discussion') + '''</a></li>
  62. <li><a href="/count/''' + url_pas(ip) + '''">''' + await get_lang('count') + '''</a></li>
  63. </ul>
  64. ''' + admin_menu + '''
  65. ''',
  66. menu = [['other', await get_lang('other_tool')]]
  67. ))