give_auth.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from .tool.func import *
  2. def give_auth(name):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. owner_auth = admin_check()
  6. admin_auth = admin_check(7)
  7. curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [name])
  8. user_acl = curs.fetchall()
  9. if not user_acl:
  10. return re_error('/error/2')
  11. else:
  12. user_acl = user_acl[0][0]
  13. if owner_auth != 1:
  14. curs.execute(db_change('select name from alist where name = ? and acl = "owner"'), [user_acl])
  15. if curs.fetchall():
  16. return re_error('/error/3')
  17. if ip_check() == name:
  18. return re_error('/error/3')
  19. if flask.request.method == 'POST':
  20. if admin_check(7, 'admin (' + name + ')') != 1:
  21. return re_error('/error/3')
  22. if flask.request.form.get('select', 'X') == 'X':
  23. select_data = 'user'
  24. else:
  25. select_data = flask.request.form.get('select', 'X')
  26. curs.execute(db_change('select name from alist where name = ? and acl = "owner"'), [select_data])
  27. if owner_auth != 1 and curs.fetchall():
  28. return re_error('/error/3')
  29. curs.execute(db_change("update user_set set data = ? where id = ? and name = 'acl'"), [
  30. select_data,
  31. name
  32. ])
  33. conn.commit()
  34. return redirect('/auth/give/' + url_pas(name))
  35. else:
  36. if admin_auth != 1:
  37. return re_error('/error/3')
  38. div = '<option value="X">' + load_lang('normal') + '</option>'
  39. curs.execute(db_change('select distinct name from alist order by name asc'))
  40. for data in curs.fetchall():
  41. if user_acl == data[0]:
  42. div = '<option value="' + data[0] + '">' + data[0] + '</option>' + div
  43. else:
  44. div += '<option value="' + data[0] + '">' + data[0] + '</option>'
  45. return easy_minify(flask.render_template(skin_check(),
  46. imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('authorize') + ')', 0])],
  47. data = '''
  48. <form method="post">
  49. <select name="select">''' + div + '''</select>
  50. <hr class="main_hr">
  51. <button type="submit">''' + load_lang('save') + '''</button>
  52. </form>
  53. ''',
  54. menu = [['manager', load_lang('return')]]
  55. ))