api_user_info.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. from .tool.func import *
  2. def api_user_info(name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if flask.request.method == 'POST':
  6. try:
  7. data_list = json.loads(flask.request.form.get('title_list', ''))
  8. data_list = list(set(data_list))
  9. except:
  10. data_list = [name]
  11. data_result = {}
  12. for user_name in data_list:
  13. data_result[user_name] = {}
  14. # name part
  15. data_result[user_name]['render'] = ip_pas(user_name)
  16. # auth part
  17. curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [user_name])
  18. db_data = curs.fetchall()
  19. if db_data:
  20. if db_data[0][0] != 'user':
  21. curs.execute(db_change("select name from alist where name = ?"), [db_data[0][0]])
  22. if curs.fetchall() or db_data[0][0] in get_default_admin_group():
  23. data_result[user_name]['auth'] = db_data[0][0]
  24. else:
  25. data_result[user_name]['auth'] = '1'
  26. else:
  27. data_result[user_name]['auth'] = '1'
  28. else:
  29. data_result[user_name]['auth'] = '0'
  30. curs.execute(db_change("select data from user_set where id = ? and name = 'auth_date'"), [user_name])
  31. db_data = curs.fetchall()
  32. if db_data:
  33. data_result[user_name]['auth_date'] = db_data[0][0]
  34. else:
  35. data_result[user_name]['auth_date'] = '0'
  36. curs.execute(db_change("select data from user_set where id = ? and name = 'level'"), [user_name])
  37. db_data = curs.fetchall()
  38. if db_data:
  39. data_result[user_name]['level'] = db_data[0][0]
  40. else:
  41. data_result[user_name]['level'] = '0'
  42. curs.execute(db_change("select data from user_set where id = ? and name = 'experience'"), [user_name])
  43. db_data = curs.fetchall()
  44. if db_data:
  45. data_result[user_name]['exp'] = db_data[0][0]
  46. else:
  47. data_result[user_name]['exp'] = '0'
  48. # ban part
  49. if ban_check(name) == 0:
  50. data_result[user_name]['ban'] = '0'
  51. else:
  52. data_result[user_name]['ban'] = {}
  53. regex_ban = 0
  54. curs.execute(db_change("select login, block, end, why from rb where band = 'regex' and ongoing = '1'"))
  55. for db_data in curs.fetchall():
  56. if re.compile(db_data[1]).search(user_name):
  57. regex_ban = 1
  58. data_result[user_name]['ban']['type'] = 'regex'
  59. if db_data[0] == 'O':
  60. data_result[user_name]['ban']['login_able'] = '1'
  61. else:
  62. data_result[user_name]['ban']['login_able'] = '0'
  63. if db_data[2] == '':
  64. data_result[user_name]['ban']['period'] = '0'
  65. else:
  66. data_result[user_name]['ban']['period'] = db_data[2]
  67. data_result[user_name]['ban']['reason'] = db_data[3]
  68. break
  69. if regex_ban == 0:
  70. curs.execute(db_change("select login, block, end, why from rb where block = ? and ongoing = '1'"), [user_name])
  71. db_data = curs.fetchall()
  72. if db_data:
  73. data_result[user_name]['ban']['type'] = 'normal'
  74. if db_data[0][0] == 'O':
  75. data_result[user_name]['ban']['login_able'] = '1'
  76. else:
  77. data_result[user_name]['ban']['login_able'] = '0'
  78. if db_data[0][2] == '':
  79. data_result[user_name]['ban']['period'] = '0'
  80. else:
  81. data_result[user_name]['ban']['period'] = db_data[0][2]
  82. data_result[user_name]['ban']['reason'] = db_data[0][3]
  83. # user document part
  84. curs.execute(db_change("select title from data where title = ?"), ['user:' + user_name])
  85. if curs.fetchall():
  86. data_result[user_name]['document'] = '1'
  87. else:
  88. data_result[user_name]['document'] = '0'
  89. # user title part
  90. curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [user_name])
  91. db_data = curs.fetchall()
  92. if db_data:
  93. data_result[user_name]['user_title'] = db_data[0][0]
  94. else:
  95. data_result[user_name]['user_title'] = ''
  96. return flask.jsonify(data_result)
  97. else:
  98. return flask.jsonify({})