main_func_setting_acl.py 4.4 KB

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