api_user_info.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. curs.execute(db_change("select data from user_set where id = ? and name = 'level'"), [user_name])
  29. db_data = curs.fetchall()
  30. if db_data:
  31. data_result['level'] = db_data[0][0]
  32. else:
  33. data_result['level'] = '0'
  34. curs.execute(db_change("select data from user_set where id = ? and name = 'experience'"), [user_name])
  35. db_data = curs.fetchall()
  36. if db_data:
  37. data_result['exp'] = db_data[0][0]
  38. else:
  39. data_result['exp'] = '0'
  40. # ban part
  41. if ban_check(user_name) == 0:
  42. data_result['ban'] = '0'
  43. else:
  44. data_result['ban'] = {}
  45. regex_ban = 0
  46. curs.execute(db_change("select login, block, end, why from rb where band = 'regex' and ongoing = '1'"))
  47. for db_data in curs.fetchall():
  48. if re.compile(db_data[1]).search(user_name):
  49. regex_ban = 1
  50. data_result['ban']['type'] = 'regex'
  51. if db_data[0] == 'O':
  52. data_result['ban']['login_able'] = '1'
  53. else:
  54. data_result['ban']['login_able'] = '0'
  55. if db_data[2] == '':
  56. data_result['ban']['period'] = '0'
  57. else:
  58. data_result['ban']['period'] = db_data[2]
  59. data_result['ban']['reason'] = db_data[3]
  60. break
  61. if regex_ban == 0:
  62. curs.execute(db_change("select login, block, end, why from rb where block = ? and ongoing = '1'"), [user_name])
  63. db_data = curs.fetchall()
  64. if db_data:
  65. data_result['ban']['type'] = 'normal'
  66. if db_data[0][0] == 'O':
  67. data_result['ban']['login_able'] = '1'
  68. else:
  69. data_result['ban']['login_able'] = '0'
  70. if db_data[0][2] == '':
  71. data_result['ban']['period'] = '0'
  72. else:
  73. data_result['ban']['period'] = db_data[0][2]
  74. data_result['ban']['reason'] = db_data[0][3]
  75. # user document part
  76. curs.execute(db_change("select title from data where title = ?"), ['user:' + user_name])
  77. if curs.fetchall():
  78. data_result['document'] = '1'
  79. else:
  80. data_result['document'] = '0'
  81. # user title part
  82. curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [user_name])
  83. db_data = curs.fetchall()
  84. if db_data:
  85. data_result['user_title'] = db_data[0][0]
  86. else:
  87. data_result['user_title'] = ''
  88. return flask.jsonify({ 'data' : data_result })