Просмотр исходного кода

새 문서 생성 ACL 추가

https://github.com/openNAMU/openNAMU/issues/2216
잉여개발기 (SPDV) 2 лет назад
Родитель
Сommit
23e6b50be9
5 измененных файлов с 24 добавлено и 11 удалено
  1. 8 3
      route/edit.py
  2. 5 5
      route/edit_request.py
  3. 5 1
      route/main_setting_acl.py
  4. 5 1
      route/tool/func.py
  5. 1 1
      version.json

+ 8 - 3
route/edit.py

@@ -135,6 +135,10 @@ def edit(name = 'Test', section = 0, do_type = ''):
         doc_ver = curs.fetchall()
         doc_ver = doc_ver[0][0] if doc_ver else '0'
 
+        if doc_ver == '0':
+            if acl_check(conn, name, 'document_make_acl') == 1:
+                edit_req_mode = 1
+
         curs.execute(db_change("select set_data from data_set where doc_name = ? and doc_rev = ? and set_name = 'edit_request_data'"), [name, doc_ver])
         if curs.fetchall():
             return redirect(conn, '/edit_request_from/' + url_pas(name))
@@ -240,6 +244,9 @@ def edit(name = 'Test', section = 0, do_type = ''):
                     doc_data = content,
                     data_type = 'backlink'
                 )
+                
+                section = (('#edit_load_' + str(section)) if section != '' else '')
+                return redirect(conn, '/w/' + url_pas(name) + section)
             else:
                 curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, ?, 'edit_request_data', ?)"), [name, doc_ver, content])
                 curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, ?, 'edit_request_user', ?)"), [name, doc_ver, ip])
@@ -252,9 +259,7 @@ def edit(name = 'Test', section = 0, do_type = ''):
                 for scan_user in curs.fetchall():
                     add_alarm(conn, scan_user[0], ip, '<a href="/edit_request/' + url_pas(name) + '">' + html.escape(name) + '</a> edit_request')
             
-            section = (('#edit_load_' + str(section)) if section != '' else '')
-            
-            return redirect(conn, '/w/' + url_pas(name) + section)
+                return redirect(conn, '/edit_request_from/' + url_pas(name))
         else:
             editor_top_text = ''
 

+ 5 - 5
route/edit_request.py

@@ -14,6 +14,10 @@ def edit_request(name = 'Test', do_type = ''):
         doc_ver = curs.fetchall()
         doc_ver = doc_ver[0][0] if doc_ver else '0'
 
+        if doc_ver == '0':
+            if acl_check(conn, name, 'document_make_acl') == 1:
+                disabled = "disabled"
+
         curs.execute(db_change("select set_data from data_set where doc_name = ? and doc_rev = ? and set_name = 'edit_request_data'"), [name, doc_ver])
         db_data = curs.fetchall()
         if not db_data:
@@ -38,13 +42,9 @@ def edit_request(name = 'Test', do_type = ''):
         edit_request_leng = db_data[0][0] if db_data else ''
 
         if flask.request.method == 'POST':
-            if acl_check(conn, name, 'document_edit') == 1:
+            if disabled != "":
                 return redirect(conn, '/w/' + url_pas(name))
             
-            curs.execute(db_change("select data from data where title = ?"), [name])
-            db_data = curs.fetchall()
-            o_data = db_data[0][0] if db_data else ''
-            
             curs.execute(db_change("select id from user_set where name = 'watchlist' and data = ?"), [name])
             for scan_user in curs.fetchall():
                 add_alarm(conn, scan_user[0], edit_request_user, '<a href="/w/' + url_pas(name) + '">' + html.escape(name) + '</a>')

+ 5 - 1
route/main_setting_acl.py

@@ -18,7 +18,8 @@ def main_setting_acl():
             11 : 'edit_bottom_compulsion_acl',
             12 : 'recaptcha_pass_acl',
             13 : 'recaptcha_one_check_five_pass_acl',
-            14 : 'document_edit_request_acl'
+            14 : 'document_edit_request_acl',
+            15 : 'document_make_acl'
         }
         default_list = {
             12 : 'user'
@@ -61,6 +62,9 @@ def main_setting_acl():
                         <h2>''' + get_lang(conn, 'document_acl') + '''</h2>
                         <select ''' + disable + ''' name="edit">''' + acl_div[0] + '''</select>
 
+                        <h3>''' + get_lang(conn, 'document_make_acl') + '''</h3>
+                        <select ''' + disable + ''' name="document_make_acl">''' + acl_div[14] + '''</select>
+
                         <h3>''' + get_lang(conn, 'document_edit_acl') + '''</h3>
                         <select ''' + disable + ''' name="document_edit_acl">''' + acl_div[6] + '''</select>
 

+ 5 - 1
route/tool/func.py

@@ -2146,6 +2146,10 @@ def acl_check(conn, name = '', tool = '', topic_num = ''):
             else:
                 curs.execute(db_change('select data from other where name = "document_edit_request_acl"'))
 
+            num = 5
+        elif tool == 'document_make_acl':
+            curs.execute(db_change('select data from other where name = "document_make_acl"'))
+
             num = 5
         else:
             # tool == 'render'
@@ -2247,7 +2251,7 @@ def acl_check(conn, name = '', tool = '', topic_num = ''):
                         if count >= 50:
                             curs.execute(db_change("select data from user_set where id = ? and name = 'date'"), [ip])
                             user_date = curs.fetchall()[0][0]
-                            
+
                             time_1 = datetime.datetime.strptime(user_date, '%Y-%m-%d %H:%M:%S') + datetime.timedelta(days = 30)
                             time_2 = datetime.datetime.strptime(get_time(), '%Y-%m-%d %H:%M:%S')
                             if time_2 > time_1:

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-v145",
+        "r_ver" : "v3.5.0-v146",
         "c_ver" : "20240513",
         "s_ver" : "20240426"
     }