main_setting_acl.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. from .tool.func import *
  2. def main_setting_acl():
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. i_list = {
  6. 1 : 'edit',
  7. 2 : 'discussion',
  8. 3 : 'upload_acl',
  9. 4 : 'all_view_acl',
  10. 5 : 'many_upload_acl',
  11. 6 : 'vote_acl',
  12. 7 : 'document_edit_acl',
  13. 8 : 'document_move_acl',
  14. 9 : 'document_delete_acl',
  15. 10 : 'slow_edit_acl',
  16. 11 : 'edit_bottom_compulsion_acl',
  17. 12 : 'recaptcha_pass_acl',
  18. 13 : 'recaptcha_one_check_five_pass_acl',
  19. 14 : 'document_edit_request_acl',
  20. 15 : 'document_make_acl'
  21. }
  22. default_list = {
  23. 12 : 'user'
  24. }
  25. if flask.request.method == 'POST':
  26. if acl_check(tool = 'owner_auth', memo = 'edit_set (acl)') == 1:
  27. return re_error(conn, '/ban')
  28. else:
  29. curs.executemany(db_change("update other set data = ? where name = ?"), [[flask.request.form.get(i_list[for_a], 'normal'), i_list[for_a]] for for_a in i_list])
  30. return redirect(conn, '/setting/acl')
  31. else:
  32. d_list = {}
  33. disable = 'disabled' if acl_check('', 'owner_auth', '', '') == 1 else ''
  34. acl_div = ['' for _ in range(0, len(i_list))]
  35. for for_a in i_list:
  36. curs.execute(db_change('select data from other where name = ?'), [i_list[for_a]])
  37. sql_d = curs.fetchall()
  38. if sql_d:
  39. d_list[for_a] = sql_d[0][0]
  40. else:
  41. default_data = 'normal' if not for_a in default_list else default_list[for_a]
  42. curs.execute(db_change('insert into other (name, data, coverage) values (?, ?, "")'), [i_list[for_a], default_data])
  43. d_list[for_a] = default_data
  44. acl_list = get_acl_list()
  45. for for_a in range(0, len(i_list)):
  46. for data_list in acl_list:
  47. acl_div[for_a] += '<option value="' + data_list + '" ' + ('selected="selected"' if data_list == d_list[for_a + 1] else '') + '>' + (data_list if data_list != '' else 'normal') + '</option>'
  48. return easy_minify(conn, flask.render_template(skin_check(conn),
  49. imp = [get_lang(conn, 'main_acl_setting'), wiki_set(conn), wiki_custom(conn), wiki_css([0, 0])],
  50. data = render_simple_set(conn, '''
  51. <form method="post">
  52. <hr class="main_hr">
  53. <a href="/acl/TEST#exp">(''' + get_lang(conn, 'reference') + ''')</a>
  54. <h2>''' + get_lang(conn, 'document_acl') + '''</h2>
  55. <select ''' + disable + ''' name="edit">''' + acl_div[0] + '''</select>
  56. <h3>''' + get_lang(conn, 'document_make_acl') + '''</h3>
  57. <select ''' + disable + ''' name="document_make_acl">''' + acl_div[14] + '''</select>
  58. <h3>''' + get_lang(conn, 'document_edit_acl') + '''</h3>
  59. <select ''' + disable + ''' name="document_edit_acl">''' + acl_div[6] + '''</select>
  60. <h3>''' + get_lang(conn, 'document_edit_request_acl') + '''</h3>
  61. <select ''' + disable + ''' name="document_edit_request_acl">''' + acl_div[13] + '''</select>
  62. <h3>''' + get_lang(conn, 'document_move_acl') + '''</h3>
  63. <select ''' + disable + ''' name="document_move_acl">''' + acl_div[7] + '''</select>
  64. <h3>''' + get_lang(conn, 'document_delete_acl') + '''</h3>
  65. <select ''' + disable + ''' name="document_delete_acl">''' + acl_div[8] + '''</select>
  66. <h2>''' + get_lang(conn, 'discussion_acl') + '''</h2>
  67. <select ''' + disable + ''' name="discussion">''' + acl_div[1] + '''</select>
  68. <h2>''' + get_lang(conn, 'upload_acl') + '''</h2>
  69. <select ''' + disable + ''' name="upload_acl">''' + acl_div[2] + '''</select>
  70. <h3>''' + get_lang(conn, 'many_upload_acl') + '''</h3>
  71. <select ''' + disable + ''' name="many_upload_acl">''' + acl_div[4] + '''</select>
  72. <h2>''' + get_lang(conn, 'view_acl') + '''</h2>
  73. <select ''' + disable + ''' name="all_view_acl">''' + acl_div[3] + '''</select>
  74. <h2>''' + get_lang(conn, 'vote_acl') + '''</h2>
  75. <select ''' + disable + ''' name="vote_acl">''' + acl_div[5] + '''</select>
  76. <h2>''' + get_lang(conn, 'slow_edit_acl') + '''</h2>
  77. <select ''' + disable + ''' name="slow_edit_acl">''' + acl_div[9] + '''</select>
  78. <h2>''' + get_lang(conn, 'edit_bottom_compulsion_acl') + '''</h2>
  79. <select ''' + disable + ''' name="edit_bottom_compulsion_acl">''' + acl_div[10] + '''</select>
  80. <h2>''' + get_lang(conn, 'recaptcha_pass_acl') + '''</h2>
  81. <select ''' + disable + ''' name="recaptcha_pass_acl">''' + acl_div[11] + '''</select>
  82. <h3>''' + get_lang(conn, 'recaptcha_one_check_five_pass_acl') + '''</h3>
  83. <select ''' + disable + ''' name="recaptcha_one_check_five_pass_acl">''' + acl_div[12] + '''</select>
  84. <hr class="main_hr">
  85. <button id="opennamu_save_button" type="submit">''' + get_lang(conn, 'save') + '''</button>
  86. </form>
  87. '''),
  88. menu = [['setting/main', get_lang(conn, 'return')]]
  89. ))