give_admin.py 2.6 KB

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