api_user_info.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from .tool.func import *
  2. def api_user_info(user_name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. data_result = {}
  6. # name part
  7. data_result['render'] = ip_pas(user_name)
  8. # auth part
  9. curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [user_name])
  10. db_data = curs.fetchall()
  11. if db_data:
  12. if db_data[0][0] != 'user':
  13. curs.execute(db_change("select name from alist where name = ?"), [db_data[0][0]])
  14. if curs.fetchall() or db_data[0][0] in get_default_admin_group():
  15. data_result['auth'] = db_data[0][0]
  16. else:
  17. data_result['auth'] = '1'
  18. else:
  19. data_result['auth'] = '1'
  20. else:
  21. data_result['auth'] = '0'
  22. curs.execute(db_change("select data from user_set where id = ? and name = 'auth_date'"), [user_name])
  23. db_data = curs.fetchall()
  24. if db_data:
  25. data_result['auth_date'] = db_data[0][0]
  26. else:
  27. data_result['auth_date'] = '0'
  28. level_data = level_check(conn, user_name)
  29. data_result['level'] = level_data[0]
  30. data_result['exp'] = level_data[1]
  31. data_result['max_exp'] = level_data[2]
  32. # ban part
  33. ban = ban_check(conn, user_name)
  34. if ban[0] == 0:
  35. data_result['ban'] = '0'
  36. else:
  37. data_result['ban'] = ban
  38. # user document part
  39. curs.execute(db_change("select title from data where title = ?"), ['user:' + user_name])
  40. if curs.fetchall():
  41. data_result['document'] = '1'
  42. else:
  43. data_result['document'] = '0'
  44. # user title part
  45. curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [user_name])
  46. db_data = curs.fetchall()
  47. if db_data:
  48. data_result['user_title'] = db_data[0][0]
  49. else:
  50. data_result['user_title'] = ''
  51. lang_data_list = [
  52. 'user_name',
  53. 'authority',
  54. 'state',
  55. 'member',
  56. 'normal',
  57. 'blocked',
  58. 'type',
  59. 'regex',
  60. 'period',
  61. 'limitless',
  62. 'login_able',
  63. 'why',
  64. 'band_blocked',
  65. 'ip',
  66. 'ban',
  67. 'level',
  68. 'option',
  69. 'edit_request_able',
  70. 'cidr'
  71. ]
  72. lang_data = { for_a : get_lang(conn, for_a) for for_a in lang_data_list }
  73. return flask.jsonify({ 'data' : data_result, 'language' : lang_data })