2du hace 4 años
padre
commit
8883ffe975
Se han modificado 7 ficheros con 66 adiciones y 57 borrados
  1. 4 4
      app.py
  2. 1 0
      lang/en-US.json
  3. 1 1
      route/edit.py
  4. 1 0
      route/give_acl.py
  5. 1 1
      route/recent_history_tool.py
  6. 4 2
      route/tool/func.py
  7. 54 49
      route/view_raw.py

+ 4 - 4
app.py

@@ -469,10 +469,10 @@ def view_xref(name = 'Test'):
 def view_xref_this(name = 'Test'):
     return view_xref_2(load_db.db_get(), name, xref_type = '2')
 
-@app.route('/raw/<everything:name>')
-@app.route('/thread/<int:topic_num>/raw/<int:num>')
-def view_raw(name = None, topic_num = None, num = None):
-    return view_raw_2(load_db.db_get(), name, topic_num, num)
+app.route('/raw/<everything:name>')(view_raw_2)
+app.route('/raw/<everything:name>/doc_acl', defaults = { 'doc_acl' : 1 })(view_raw_2)
+app.route('/raw/<everything:name>/doc_rev/<int:num>')(view_raw_2)
+app.route('/thread/<int:topic_num>/raw/<int:num>')(view_raw_2)
 
 @app.route('/diff/<int(signed = True):num_a>/<int(signed = True):num_b>/<everything:name>')
 def view_diff(name = 'Test', num_a = 1, num_b = 1):

+ 1 - 0
lang/en-US.json

@@ -409,6 +409,7 @@
         "enter_html" : "Please enter HTML",
         "exp_edit_conflict" : "Editing conflict occurred",
         "same_ip_exist" : "Same IP exists",
+        "old_page_warring" : "This page is out of date.",
         "_comment_3.1_" : "Error",
             "update_error" : "Auto update is not supported.",
             "inter_error" : "Internal error.",

+ 1 - 1
route/edit.py

@@ -6,7 +6,7 @@ def edit(name = 'Test', name_load = 0, section = 0):
     
         ip = ip_check()
         if acl_check(name) == 1:
-            return re_error('/ban')
+            return redirect('/raw/' + url_pas(name) + '/doc_acl')
         
         curs.execute(db_change("select id from history where title = ? order by id + 0 desc"), [name])
         doc_ver = curs.fetchall()

+ 1 - 0
route/give_acl.py

@@ -111,6 +111,7 @@ def give_acl_2(conn, name):
                 <li>before : ''' + load_lang('before_acl') + '''</li>
                 <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>
             </ul>
         '''
 

+ 1 - 1
route/recent_history_tool.py

@@ -8,7 +8,7 @@ def recent_history_tool_2(conn, name, rev):
     data = '' + \
         '<h2>' + load_lang('tool') + '</h2>' + \
         '<ul class="inside_ul">' + \
-            '<li><a href="/raw/' + url_pas(name) + '?num=' + num + '">' + load_lang('raw') + '</a></li>' + \
+            '<li><a href="/raw/' + url_pas(name) + '/doc_rev/' + num + '">' + load_lang('raw') + '</a></li>' + \
     ''
 
     data += '<li><a href="/revert/' + url_pas(name) + '?num=' + num + '">' + load_lang('revert') + ' | r' + num + '</a></li>'

+ 4 - 2
route/tool/func.py

@@ -675,7 +675,7 @@ def get_acl_list(type_d = 'normal'):
     if type_d == 'user':
         return ['', 'user', 'all']
     else:
-        return ['', 'all', 'user', 'admin', 'owner', '50_edit', 'email', 'ban', 'before', '30_day', 'ban_admin']
+        return ['', 'all', 'user', 'admin', 'owner', '50_edit', 'email', 'ban', 'before', '30_day', 'ban_admin', 'not_all']
 
 ## Func-simple-with_DB
 def load_image_url():
@@ -1429,7 +1429,7 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
         if acl_data[0][0] != 'normal':
             if not acl_data[0][0] in ['ban', 'ban_admin'] and get_ban == 1 and tool != 'render':
                 return 1
-
+            
             if acl_data[0][0] in ['all', 'ban']:
                 return 0
             elif acl_data[0][0] == 'user':
@@ -1498,6 +1498,8 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
             elif acl_data[0][0] == 'ban_admin':
                 if admin_check(1) == 1 or get_ban == 1:
                     return 0
+            elif acl_data[0][0] == 'not_all':
+                return 1
 
             return 1
         elif i == (end - 1):

+ 54 - 49
route/view_raw.py

@@ -1,61 +1,66 @@
 from .tool.func import *
 
-def view_raw_2(conn, name, topic_num, num):
-    curs = conn.cursor()
+def view_raw_2(name = None, topic_num = None, num = None, doc_acl = 0):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
 
-    if acl_check(name, 'render') == 1:
-        return re_error('/ban')
+        if acl_check(name, 'render') == 1:
+            return re_error('/ban')
 
-    if topic_num:
-        topic_num = str(topic_num)
+        if topic_num:
+            topic_num = str(topic_num)
 
-    if not num:
-        num = flask.request.args.get('num', None)
         if num:
-            num = number_check(num)
-    else:
-        num = str(num)
+            num = str(num)
 
-    v_name = name
-    sub = ' (' + load_lang('raw') + ')'
+        v_name = name
+        p_data = ''
+        sub = ' (' + load_lang('raw') + ')'
 
-    if not topic_num and num:
-        curs.execute(db_change("select title from history where title = ? and id = ? and hide = 'O'"), [name, num])
-        if curs.fetchall() and admin_check(6) != 1:
-            return re_error('/error/3')
+        if not topic_num and num:
+            curs.execute(db_change("select title from history where title = ? and id = ? and hide = 'O'"), [name, num])
+            if curs.fetchall() and admin_check(6) != 1:
+                return re_error('/error/3')
 
-        curs.execute(db_change("select data from history where title = ? and id = ?"), [name, num])
+            curs.execute(db_change("select data from history where title = ? and id = ?"), [name, num])
 
-        sub += ' (r' + num + ')'
+            sub += ' (r' + num + ')'
 
-        menu = [['history/' + url_pas(name), load_lang('history')]]
-    elif topic_num:
-        if admin_check(6) != 1:
-            curs.execute(db_change("select data from topic where id = ? and code = ? and block = ''"), [num, topic_num])
+            menu = [['history/' + url_pas(name), load_lang('history')]]
+        elif topic_num:
+            if admin_check(6) != 1:
+                curs.execute(db_change("select data from topic where id = ? and code = ? and block = ''"), [num, topic_num])
+            else:
+                curs.execute(db_change("select data from topic where id = ? and code = ?"), [num, topic_num])
+
+            v_name = load_lang('discussion_raw')
+            sub = ' (#' + num + ')'
+
+            menu = [
+                ['thread/' + topic_num + '#' + num, load_lang('discussion')], 
+                ['thread/' + topic_num + '/admin/' + num, load_lang('return')]
+            ]
+        else:
+            curs.execute(db_change("select data from data where title = ?"), [name])
+
+            menu = [['w/' + url_pas(name), load_lang('return')]]
+
+        data = curs.fetchall()
+        if data:
+            p_data += '<textarea readonly rows="25">' + html.escape(data[0][0]) + '</textarea>'
+            
+            if doc_acl == 1:
+                p_data = '' + \
+                    load_lang('authority_error') + \
+                    '<hr class="main_hr">' + \
+                    p_data
+                ''
+                sub = ' (' + load_lang('edit') + ')'
+
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [v_name, wiki_set(), wiki_custom(), wiki_css([sub, 0])],
+                data = p_data,
+                menu = menu
+            ))
         else:
-            curs.execute(db_change("select data from topic where id = ? and code = ?"), [num, topic_num])
-
-        v_name = load_lang('discussion_raw')
-        sub = ' (#' + num + ')'
-
-        menu = [
-            ['thread/' + topic_num + '#' + num, load_lang('discussion')], 
-            ['thread/' + topic_num + '/admin/' + num, load_lang('return')]
-        ]
-    else:
-        curs.execute(db_change("select data from data where title = ?"), [name])
-
-        menu = [['w/' + url_pas(name), load_lang('return')]]
-
-    data = curs.fetchall()
-    if data:
-        p_data = html.escape(data[0][0])
-        p_data = '<textarea readonly rows="25">' + p_data + '</textarea>'
-
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [v_name, wiki_set(), wiki_custom(), wiki_css([sub, 0])],
-            data = p_data,
-            menu = menu
-        ))
-    else:
-        return re_error('/error/3')
+            return re_error('/error/3')