2
0

main_func_setting_acl.py 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from .tool.func import *
  2. def main_func_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. }
  13. if flask.request.method == 'POST':
  14. if admin_check(None, 'edit_set (acl)') != 1:
  15. return re_error('/ban')
  16. else:
  17. for i in i_list:
  18. curs.execute(db_change("update other set data = ? where name = ?"), [
  19. flask.request.form.get(i_list[i], 'normal'),
  20. i_list[i]
  21. ])
  22. conn.commit()
  23. return redirect('/setting/acl')
  24. else:
  25. d_list = {}
  26. if admin_check() != 1:
  27. disable = 'disabled'
  28. else:
  29. disable = ''
  30. for i in i_list:
  31. curs.execute(db_change('select data from other where name = ?'), [i_list[i]])
  32. sql_d = curs.fetchall()
  33. if sql_d:
  34. d_list[i] = sql_d[0][0]
  35. else:
  36. curs.execute(db_change('insert into other (name, data) values (?, ?)'), [i_list[i], 'normal'])
  37. d_list[i] = 'normal'
  38. conn.commit()
  39. acl_div = []
  40. for i in range(0, len(i_list)):
  41. acl_div += ['']
  42. acl_list = get_acl_list()
  43. for i in range(0, len(i_list)):
  44. for data_list in acl_list:
  45. if data_list == d_list[i + 1]:
  46. check = 'selected="selected"'
  47. else:
  48. check = ''
  49. acl_div[i] += '<option value="' + data_list + '" ' + check + '>' + (data_list if data_list != '' else 'normal') + '</option>'
  50. return easy_minify(flask.render_template(skin_check(),
  51. imp = [load_lang('main_acl_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  52. data = '''
  53. <form method="post">
  54. <a href="/acl/TEST#exp">(''' + load_lang('reference') + ''')</a>
  55. <hr class="main_hr">
  56. <span>''' + load_lang('document_acl') + '''</span>
  57. <hr class="main_hr">
  58. <select ''' + disable + ''' name="edit">''' + acl_div[0] + '''</select>
  59. <hr class="main_hr">
  60. <span>''' + load_lang('discussion_acl') + '''</span>
  61. <hr class="main_hr">
  62. <select ''' + disable + ''' name="discussion">''' + acl_div[1] + '''</select>
  63. <hr class="main_hr">
  64. <span>''' + load_lang('upload_acl') + '''</span>
  65. <hr class="main_hr">
  66. <select ''' + disable + ''' name="upload_acl">''' + acl_div[2] + '''</select>
  67. <hr class="main_hr">
  68. <span>''' + load_lang('view_acl') + '''</span>
  69. <hr class="main_hr">
  70. <select ''' + disable + ''' name="all_view_acl">''' + acl_div[3] + '''</select>
  71. <hr class="main_hr">
  72. <span>''' + load_lang('many_upload_acl') + '''</span>
  73. <hr class="main_hr">
  74. <select ''' + disable + ''' name="many_upload_acl">''' + acl_div[4] + '''</select>
  75. <hr class="main_hr">
  76. <span>''' + load_lang('vote_acl') + '''</span>
  77. <hr class="main_hr">
  78. <select ''' + disable + ''' name="vote_acl">''' + acl_div[5] + '''</select>
  79. <hr class="main_hr">
  80. <button id="save" type="submit">''' + load_lang('save') + '''</button>
  81. </form>
  82. ''',
  83. menu = [['setting', load_lang('return')]]
  84. ))