잉여개발기 (SPDV) 3 лет назад
Родитель
Сommit
74539c1167
6 измененных файлов с 67 добавлено и 37 удалено
  1. 3 0
      lang/en-US.json
  2. 4 1
      lang/ko-KR.json
  3. 1 0
      route/give_acl.py
  4. 10 10
      route/main_func_setting_acl.py
  5. 48 25
      route/tool/func.py
  6. 1 1
      route/view_read.py

+ 3 - 0
lang/en-US.json

@@ -328,11 +328,13 @@
                 "smtp_setting_required" : "Email SMTP setting required",
                 "update_branch" : "Branch to import updates",
                 "slow_edit" : "Continuous edit limit",
+                "slow_edit_acl" : "Continuous edit limit excluded target ACL",
                 "requires_approval" : "Requires approval for register",
                 "approval_question": "Registeration questions",
                 "backup_where" : "Backup location",
                 "ua_get_off" : "Turn off members information collection",
                 "edit_bottom_compulsion" : "Edit reason required",
+                "edit_bottom_compulsion_acl" : "Edit reason required excluded target ACL",
                 "enable_comment_function" : "Using the comment function",
                 "enable_challenge_function" : "Using the challenge function",
                 "tls_method" : "TLS method",
@@ -451,6 +453,7 @@
                 "ban_acl" : "All users include blocked users",
                 "ban_admin_acl" : "Blocked users, administrators, owners",
                 "30_day_acl" : "Members 30 days after sign up, administrators, owners",
+                "90_day_acl" : "Members 90 days after sign up, administrators, owners",
                 "not_all_acl" : "All prohibited",
             "_comment_" : "Set name",
                 "document_acl" : "Document ACL",

+ 4 - 1
lang/ko-KR.json

@@ -462,6 +462,7 @@
     "ban_acl": "전체 사용자 (차단자 포함)",
     "ban_admin_acl": "차단자, 관리자, 소유자",
     "30_day_acl": "가입 후 30일이 지난 가입자, 관리자, 소유자",
+    "90_day_acl": "가입 후 90일이 지난 가입자, 관리자, 소유자",
     "not_all_acl": "전부 금지",
     "document_move_acl": "문서 이동 ACL",
     "document_delete_acl": "문서 삭제 ACL",
@@ -518,5 +519,7 @@
     "image_paste": "이미지 붙여넣기 (컨트롤 C + V로)",
     "monaco_editor": "모나코 에디터",
     "document_set" : "문서 설정",
-    "move_redirect_make" : "리다이렉트 문서 생성 (가능한 경우에만)"
+    "move_redirect_make" : "리다이렉트 문서 생성 (가능한 경우에만)",
+    "slow_edit_acl" : "편집 속도 제한 시간 제외 대상 ACL",
+    "edit_bottom_compulsion_acl": "편집 사유 필수 제외 대상 ACL"
 }

+ 1 - 0
route/give_acl.py

@@ -149,6 +149,7 @@ def give_acl_2(name):
                     <li>30_day : ''' + load_lang('30_day_acl') + '''</li>
                     <li>ban_admin : ''' + load_lang('ban_admin_acl') + '''</li>
                     <li>not_all : ''' + load_lang('not_all_acl') + '''</li>
+                    <li>90_day : ''' + load_lang('90_day_acl') + '''</li>
                 </ul>
                 <hr class="main_hr">
                 <h2>''' + load_lang('markup') + '''</h2>

+ 10 - 10
route/main_func_setting_acl.py

@@ -13,7 +13,9 @@ def main_func_setting_acl():
             6 : 'vote_acl',
             7 : 'document_edit_acl',
             8 : 'document_move_acl',
-            9 : 'document_delete_acl'
+            9 : 'document_delete_acl',
+            10 : 'slow_edit_acl',
+            11 : 'edit_bottom_compulsion_acl'
         }
 
         if flask.request.method == 'POST':
@@ -72,42 +74,40 @@ def main_func_setting_acl():
                         
                         <h2>''' + load_lang('document_acl') + '''</h2>
                         <select ''' + disable + ''' name="edit">''' + acl_div[0] + '''</select>
-                        <hr class="main_hr">
 
                         <h3>''' + load_lang('document_edit_acl') + '''</h3>
                         <select ''' + disable + ''' name="document_edit_acl">''' + acl_div[6] + '''</select>
-                        <hr class="main_hr">
 
                         <h3>''' + load_lang('document_move_acl') + '''</h3>
                         <select ''' + disable + ''' name="document_move_acl">''' + acl_div[7] + '''</select>
-                        <hr class="main_hr">
 
                         <h3>''' + load_lang('document_delete_acl') + '''</h3>
                         <select ''' + disable + ''' name="document_delete_acl">''' + acl_div[8] + '''</select>
-                        <hr class="main_hr">
                         
                         <h2>''' + load_lang('discussion_acl') + '''</h2>
                         <select ''' + disable + ''' name="discussion">''' + acl_div[1] + '''</select>
-                        <hr class="main_hr">
                         
                         <h2>''' + load_lang('upload_acl') + '''</h2>
                         <select ''' + disable + ''' name="upload_acl">''' + acl_div[2] + '''</select>
-                        <hr class="main_hr">
                         
                         <h2>''' + load_lang('view_acl') + '''</h2>
                         <select ''' + disable + ''' name="all_view_acl">''' + acl_div[3] + '''</select>
-                        <hr class="main_hr">
                         
                         <h2>''' + load_lang('many_upload_acl') + '''</h2>
                         <select ''' + disable + ''' name="many_upload_acl">''' + acl_div[4] + '''</select>
-                        <hr class="main_hr">
                         
                         <h2>''' + load_lang('vote_acl') + '''</h2>
                         <select ''' + disable + ''' name="vote_acl">''' + acl_div[5] + '''</select>
+
+                        <h2>''' + load_lang('slow_edit_acl') + '''</h2>
+                        <select ''' + disable + ''' name="slow_edit_acl">''' + acl_div[9] + '''</select>
+
+                        <h2>''' + load_lang('edit_bottom_compulsion_acl') + '''</h2>
+                        <select ''' + disable + ''' name="edit_bottom_compulsion_acl">''' + acl_div[10] + '''</select>
                         
                         <hr class="main_hr">
                         <button id="opennamu_save_button" type="submit">''' + load_lang('save') + '''</button>
                     </form>
                 '''),
-                menu = [['setting', load_lang('return')]]
+                menu = [['setting/main', load_lang('return')]]
             ))

+ 48 - 25
route/tool/func.py

@@ -1837,6 +1837,18 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
                 ))
 
             num = None
+        elif tool == 'slow_edit':
+            curs.execute(db_change(
+                'select data from other where name = "slow_edit_acl"'
+            ))
+
+            num = 'all'
+        elif tool == 'edit_bottom_compulsion':
+            curs.execute(db_change(
+                'select data from other where name = "edit_bottom_compulsion_acl"'
+            ))
+
+            num = 'all'
         else:
             # tool == 'render'
             if i == 0:
@@ -1849,10 +1861,11 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
             num = 5
 
         acl_data = curs.fetchall()
-        if not acl_data:
-            acl_data = [['normal']]
-        elif acl_data and acl_data[0][0] == '':
-            acl_data = [['normal']]
+        if not acl_data or acl_data[0][0] == '':
+            if tool == 'slow_edit' or tool == 'edit_bottom_compulsion':
+                acl_data = [['not_all']]
+            else:
+                acl_data = [['normal']]
 
         except_ban_tool_list = ['render', 'topic_view']
         if acl_data[0][0] != 'normal':
@@ -1891,7 +1904,7 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
                 ), [name, ip])
                 if curs.fetchall():
                     return 0
-            elif acl_data[0][0] == '30_day':
+            elif acl_data[0][0] == '30_day' or acl_data[0][0] == '90_day':
                 if ip_or_user(ip) != 1:
                     if admin_check(num) == 1:
                         return 0
@@ -1901,10 +1914,17 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
                         ), [ip])
                         user_date = curs.fetchall()[0][0]
                         
-                        time_1 = datetime.datetime.strptime(
-                            user_date, 
-                            '%Y-%m-%d %H:%M:%S'
-                        ) + datetime.timedelta(days = 30)
+                        if acl_data[0][0] == '30_day':
+                            time_1 = datetime.datetime.strptime(
+                                user_date, 
+                                '%Y-%m-%d %H:%M:%S'
+                            ) + datetime.timedelta(days = 30)
+                        else:
+                            time_1 = datetime.datetime.strptime(
+                                user_date, 
+                                '%Y-%m-%d %H:%M:%S'
+                            ) + datetime.timedelta(days = 90)
+
                         time_2 = datetime.datetime.strptime(
                             get_time(), 
                             '%Y-%m-%d %H:%M:%S'
@@ -2113,8 +2133,10 @@ def do_edit_send_check(data):
     
     curs.execute(db_change('select data from other where name = "edit_bottom_compulsion"'))
     db_data = curs.fetchall()
-    if db_data and db_data[0][0] != '' and data == '':
-        return 1
+    if db_data and db_data[0][0] != '':
+        if acl_check(None, 'edit_bottom_compulsion') == 1:
+            if data == '':
+                return 1
     
     return 0
 
@@ -2123,21 +2145,22 @@ def do_edit_slow_check():
 
     curs.execute(db_change("select data from other where name = 'slow_edit'"))
     slow_edit = curs.fetchall()
-    if slow_edit and slow_edit[0][0] != '' and admin_check(5) != 1:
-        slow_edit = int(number_check(slow_edit[0][0]))
+    if slow_edit and slow_edit[0][0] != '':
+        if acl_check(None, 'slow_edit') == 1:
+            slow_edit = int(number_check(slow_edit[0][0]))
 
-        curs.execute(db_change(
-            "select date from history where ip = ? order by date desc limit 1"
-        ), [ip_check()])
-        last_edit_data = curs.fetchall()
-        if last_edit_data:
-            last_edit_data = int(re.sub(' |:|-', '', last_edit_data[0][0]))
-            now_edit_data = int((
-                datetime.datetime.now() - datetime.timedelta(seconds = slow_edit)
-            ).strftime("%Y%m%d%H%M%S"))
-
-            if last_edit_data > now_edit_data:
-                return 1
+            curs.execute(db_change(
+                "select date from history where ip = ? order by date desc limit 1"
+            ), [ip_check()])
+            last_edit_data = curs.fetchall()
+            if last_edit_data:
+                last_edit_data = int(re.sub(' |:|-', '', last_edit_data[0][0]))
+                now_edit_data = int((
+                    datetime.datetime.now() - datetime.timedelta(seconds = slow_edit)
+                ).strftime("%Y%m%d%H%M%S"))
+
+                if last_edit_data > now_edit_data:
+                    return 1
 
     return 0
 

+ 1 - 1
route/view_read.py

@@ -215,7 +215,7 @@ def view_read(name = 'Test', doc_rev = '', doc_from = '', do_type = ''):
                         <div id="redirect">
                             <a href="/w_from/''' + url_pas(flask.session['lastest_document']) + '''">''' + flask.session['lastest_document'] + '''</a> ⇨ <b>''' + name + '''</b>
                         </div>
-                        <br>
+                        <hr class="main_hr">
                     ''' + end_data
                     
                 flask.session['lastest_document'] = name