| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from .tool.func import *
- def api_user_info(user_name = ''):
- with get_db_connect() as conn:
- curs = conn.cursor()
- data_result = {}
-
- # name part
- data_result['render'] = ip_pas(user_name)
-
- # auth part
- curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [user_name])
- db_data = curs.fetchall()
- if db_data:
- if db_data[0][0] != 'user':
- curs.execute(db_change("select name from alist where name = ?"), [db_data[0][0]])
- if curs.fetchall() or db_data[0][0] in get_default_admin_group():
- data_result['auth'] = db_data[0][0]
- else:
- data_result['auth'] = '1'
- else:
- data_result['auth'] = '1'
- else:
- data_result['auth'] = '0'
- curs.execute(db_change("select data from user_set where id = ? and name = 'auth_date'"), [user_name])
- db_data = curs.fetchall()
- if db_data:
- data_result['auth_date'] = db_data[0][0]
- else:
- data_result['auth_date'] = '0'
- curs.execute(db_change("select data from user_set where id = ? and name = 'level'"), [user_name])
- db_data = curs.fetchall()
- if db_data:
- data_result['level'] = db_data[0][0]
- else:
- data_result['level'] = '0'
- curs.execute(db_change("select data from user_set where id = ? and name = 'experience'"), [user_name])
- db_data = curs.fetchall()
- if db_data:
- data_result['exp'] = db_data[0][0]
- else:
- data_result['exp'] = '0'
-
- # ban part
- if ban_check(user_name) == 0:
- data_result['ban'] = '0'
- else:
- data_result['ban'] = {}
- regex_ban = 0
-
- curs.execute(db_change("select login, block, end, why from rb where band = 'regex' and ongoing = '1'"))
- for db_data in curs.fetchall():
- if re.compile(db_data[1]).search(user_name):
- regex_ban = 1
-
- data_result['ban']['type'] = 'regex'
- if db_data[0] == 'O':
- data_result['ban']['login_able'] = '1'
- else:
- data_result['ban']['login_able'] = '0'
-
- if db_data[2] == '':
- data_result['ban']['period'] = '0'
- else:
- data_result['ban']['period'] = db_data[2]
-
- data_result['ban']['reason'] = db_data[3]
-
- break
-
- if regex_ban == 0:
- curs.execute(db_change("select login, block, end, why from rb where block = ? and ongoing = '1'"), [user_name])
- db_data = curs.fetchall()
- if db_data:
- data_result['ban']['type'] = 'normal'
- if db_data[0][0] == 'O':
- data_result['ban']['login_able'] = '1'
- else:
- data_result['ban']['login_able'] = '0'
-
- if db_data[0][2] == '':
- data_result['ban']['period'] = '0'
- else:
- data_result['ban']['period'] = db_data[0][2]
-
- data_result['ban']['reason'] = db_data[0][3]
-
- # user document part
- curs.execute(db_change("select title from data where title = ?"), ['user:' + user_name])
- if curs.fetchall():
- data_result['document'] = '1'
- else:
- data_result['document'] = '0'
- # user title part
- curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [user_name])
- db_data = curs.fetchall()
- if db_data:
- data_result['user_title'] = db_data[0][0]
- else:
- data_result['user_title'] = ''
-
- return flask.jsonify({ 'data' : data_result })
|