ソースを参照

ACL 설정을 아예 따로 빼버림

Surplus_Up (2DU) 6 年 前
コミット
4f574700a9
3 ファイル変更104 行追加55 行削除
  1. 1 0
      language/en-US.json
  2. 3 2
      language/ko-KR.json
  3. 100 53
      route/setting.py

+ 1 - 0
language/en-US.json

@@ -212,6 +212,7 @@
             "adsense_setting" : "Adsense settings",
             "adsense_enable" : "Adsense enable",
             "skin_setting" : "Skin settings",
+            "main_acl_setting" : "Main ACL settings",
             "_comment_2.2.1_" : "List",
                 "main_setting" : "Main settings",
                 "text_setting" : "Text settings",

+ 3 - 2
language/ko-KR.json

@@ -260,7 +260,7 @@
     "recent_change": "최근 편집",
     "destruction": "취소",
     "count": "기여 횟수",
-    "main_head": "전역 <HEAD>",
+    "main_head": "메인 <HEAD>",
     "recent_ban": "최근 차단",
     "google_app_password": "Google 앱 비밀번호",
     "id_filter_list": "ID 필터 목록",
@@ -314,5 +314,6 @@
     "off" : "끄기",
     "slow_edit" : "연속 편집 제한 시간",
     "public_key" : "공개키",
-    "fast_edit_error" : "편집 속도가 너무 빠릅니다. 제한 (초) : "
+    "fast_edit_error" : "편집 속도가 너무 빠릅니다. 제한 (초) : ",
+    "main_acl_setting" : "메인 ACL 설정"
 }

+ 100 - 53
route/setting.py

@@ -15,10 +15,10 @@ def setting_2(conn, num):
             'robots.txt',
             'Google',
             load_lang('main_bottom_body'),
+            load_lang('main_acl_setting')
         ]
         
         x = 0
-        
         li_data = ''
         
         for li in li_list:
@@ -38,7 +38,6 @@ def setting_2(conn, num):
             3 : 'license', 
             4 : 'upload', 
             5 : 'skin', 
-            6 : 'edit', 
             7 : 'reg', 
             8 : 'ip_view', 
             9 : 'back_up', 
@@ -46,11 +45,8 @@ def setting_2(conn, num):
             11 : 'key', 
             12 : 'update', 
             13 : 'email_have', 
-            14 : 'discussion', 
             15 : 'encode', 
             16 : 'host',
-            17 : 'upload_acl',
-            18 : 'all_view_acl',
             19 : 'slow_edit'
         }
         n_list = {
@@ -59,20 +55,16 @@ def setting_2(conn, num):
             2 : 'FrontPage', 
             3 : 'CC 0', 
             4 : '2', 
-            5 : '', 
-            6 : 'normal', 
+            5 : '',  
             7 : '', 
             8 : '', 
             9 : '0', 
             10 : '3000', 
             11 : 'test', 
             12 : 'stable', 
-            13 : '', 
-            14 : 'normal', 
+            13 : '',  
             15 : 'sha3', 
             16 : '0.0.0.0',
-            17 : '',
-            18 : '',
             19 : '0'
         }
         
@@ -80,8 +72,8 @@ def setting_2(conn, num):
             for i in i_list:
                 curs.execute(db_change("update other set data = ? where name = ?"), [
                     flask.request.form.get(i_list[i], n_list[i]), 
-                    i_list[i]]
-                )
+                    i_list[i]
+                ])
 
             conn.commit()
 
@@ -89,40 +81,27 @@ def setting_2(conn, num):
 
             return redirect('/setting/1')
         else:
-            d_list = []
+            d_list = {}
             
             for i in i_list:
                 curs.execute(db_change('select data from other where name = ?'), [i_list[i]])
                 sql_d = curs.fetchall()
                 if sql_d:
-                    d_list += [sql_d[0][0]]
+                    d_list[i] = sql_d[0][0]
                 else:
                     curs.execute(db_change('insert into other (name, data) values (?, ?)'), [i_list[i], n_list[i]])
                     
-                    d_list += [n_list[i]]
+                    d_list[i] = n_list[i]
 
             conn.commit()
             
-            acl_div = ['', '', '', '', '']
-            acl_list = ['normal', 'user', 'admin', 'owner', '50_edit', 'email']
+            acl_div = ['']
             encode_data = ['sha256', 'sha3']
-            for i in range(0, 5):
-                if i == 0:
-                    acl_num = 6
-                elif i == 1:
-                    acl_num = 14
-                elif i == 2:
-                    acl_num = 17
-                elif i == 4:
-                    acl_num = 18
+            for acl_data in encode_data:
+                if acl_data == d_list[15]:
+                    acl_div[0] = '<option value="' + acl_data + '">' + acl_data + '</option>' + acl_div[0]
                 else:
-                    acl_num = 15
-
-                for acl_data in (encode_data if i == 3 else acl_list):
-                    if acl_data == d_list[acl_num]:
-                        acl_div[i] = '<option value="' + acl_data + '">' + acl_data + '</option>' + acl_div[i]
-                    else:
-                        acl_div[i] += '<option value="' + acl_data + '">' + acl_data + '</option>'
+                    acl_div[0] += '<option value="' + acl_data + '">' + acl_data + '</option>'
 
             check_box_div = ['', '', '']
             for i in range(0, 3):
@@ -168,7 +147,7 @@ def setting_2(conn, num):
                         <hr class=\"main_hr\">
                         <input type="text" name="upload" value="''' + html.escape(d_list[4]) + '''">
                         <hr class=\"main_hr\">
-                        <span>''' + load_lang('backup_interval') + ' (' + load_lang('hour') + ' | ' + load_lang('off') + ' : 0 | ' + load_lang('sqlite_only') + ' | ' + load_lang('restart_required') + ''')</span>
+                        <span>''' + load_lang('backup_interval') + ' (' + load_lang('hour') + ') (' + load_lang('off') + ' : 0) (' + load_lang('sqlite_only') + ') (' + load_lang('restart_required') + ''')</span>
                         <hr class=\"main_hr\">
                         <input type="text" name="back_up" value="''' + html.escape(d_list[9]) + '''">
                         <hr class=\"main_hr\">
@@ -176,22 +155,6 @@ def setting_2(conn, num):
                         <hr class=\"main_hr\">
                         <select name="skin">''' + load_skin(d_list[5]) + '''</select>
                         <hr class=\"main_hr\">
-                        <span>''' + load_lang('default_acl') + '</span> <a href="/acl/TEST">(' + load_lang('reference') + ''')</a>
-                        <hr class=\"main_hr\">
-                        <select name="edit">''' + acl_div[0] + '''</select>
-                        <hr class=\"main_hr\">
-                        <span>''' + load_lang('default_discussion_acl') + '''</span>
-                        <hr class=\"main_hr\">
-                        <select name="discussion">''' + acl_div[1] + '''</select>
-                        <hr class=\"main_hr\">
-                        <span>''' + load_lang('upload_acl') + '''</span>
-                        <hr class=\"main_hr\">
-                        <select name="upload_acl">''' + acl_div[2] + '''</select>
-                        <hr class=\"main_hr\">
-                        <span>''' + load_lang('default_view_acl') + '''</span>
-                        <hr class=\"main_hr\">
-                        <select name="all_view_acl">''' + acl_div[4] + '''</select>
-                        <hr class=\"main_hr\">
                         <input type="checkbox" name="reg" ''' + check_box_div[0] + '''> ''' + load_lang('no_register') + '''
                         <hr class=\"main_hr\">
                         <input type="checkbox" name="ip_view" ''' + check_box_div[1] + '''> ''' + load_lang('hide_ip') + '''
@@ -216,9 +179,9 @@ def setting_2(conn, num):
                         <hr class=\"main_hr\">
                         <span>''' + load_lang('encryption_method') + '''</span>
                         <hr class=\"main_hr\">
-                        <select name="encode">''' + acl_div[3] + '''</select>
+                        <select name="encode">''' + acl_div[0] + '''</select>
                         <hr class=\"main_hr\">
-                        <span>''' + load_lang('slow_edit') + ' (' + load_lang('second') + ' | ' + load_lang('off') + ''' : 0)</span>
+                        <span>''' + load_lang('slow_edit') + ' (' + load_lang('second') + ') (' + load_lang('off') + ''' : 0)</span>
                         <hr class=\"main_hr\">
                         <input name="''' + i_list[19] + '''" value="''' + html.escape(d_list[19]) + '''">
                         <hr class=\"main_hr\">
@@ -541,5 +504,89 @@ def setting_2(conn, num):
                 ''',
                 menu = [['setting', load_lang('return')]]
             ))
+    elif num == 8:
+        i_list = {
+            6 : 'edit', 
+            14 : 'discussion', 
+            17 : 'upload_acl',
+            18 : 'all_view_acl'
+        }
+        n_list = {
+            6 : 'normal', 
+            14 : 'normal', 
+            17 : 'normal',
+            18 : 'normal'
+        }
+        
+        if flask.request.method == 'POST':
+            for i in i_list:
+                curs.execute(db_change("update other set data = ? where name = ?"), [
+                    flask.request.form.get(i_list[i], n_list[i]), 
+                    i_list[i]
+                ])
+
+            conn.commit()
+
+            admin_check(None, 'edit_set')
+
+            return redirect('/setting/8')
+        else:
+            d_list = {}
+            
+            for i in i_list:
+                curs.execute(db_change('select data from other where name = ?'), [i_list[i]])
+                sql_d = curs.fetchall()
+                if sql_d:
+                    d_list[i] = sql_d[0][0]
+                else:
+                    curs.execute(db_change('insert into other (name, data) values (?, ?)'), [i_list[i], n_list[i]])
+                    
+                    d_list[i] = n_list[i]
+
+            conn.commit()
+            
+            acl_div = ['', '', '', '']
+            acl_list = ['normal', 'user', 'admin', 'owner', '50_edit', 'email']
+            for i in range(0, 4):
+                if i == 0:
+                    acl_num = 6
+                elif i == 1:
+                    acl_num = 14
+                elif i == 2:
+                    acl_num = 17
+                else:
+                    acl_num = 18
+
+                for acl_data in acl_list:
+                    if acl_data == d_list[acl_num]:
+                        acl_div[i] = '<option value="' + acl_data + '">' + acl_data + '</option>' + acl_div[i]
+                    else:
+                        acl_div[i] += '<option value="' + acl_data + '">' + acl_data + '</option>'
+
+            return easy_minify(flask.render_template(skin_check(), 
+                imp = [load_lang('main_acl_setting'), wiki_set(), custom(), other2([0, 0])],
+                data = '''
+                    <form method="post">
+                        <span>''' + load_lang('default_acl') + '</span> <a href="/acl/TEST">(' + load_lang('reference') + ''')</a>
+                        <hr class=\"main_hr\">
+                        <select name="edit">''' + acl_div[0] + '''</select>
+                        <hr class=\"main_hr\">
+                        <span>''' + load_lang('default_discussion_acl') + '''</span>
+                        <hr class=\"main_hr\">
+                        <select name="discussion">''' + acl_div[1] + '''</select>
+                        <hr class=\"main_hr\">
+                        <span>''' + load_lang('upload_acl') + '''</span>
+                        <hr class=\"main_hr\">
+                        <select name="upload_acl">''' + acl_div[2] + '''</select>
+                        <hr class=\"main_hr\">
+                        <span>''' + load_lang('default_view_acl') + '''</span>
+                        <hr class=\"main_hr\">
+                        <select name="all_view_acl">''' + acl_div[3] + '''</select>
+                        <hr class=\"main_hr\">
+                        <button id="save" type="submit">''' + load_lang('save') + '''</button>
+                    </form>
+                ''',
+                menu = [['setting', load_lang('return')]]
+            ))
     else:
         return redirect()