give_admin.py 2.3 KB

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