Jelajahi Sumber

fix url about ban

2du 4 tahun lalu
induk
melakukan
722d441014

+ 7 - 5
app.py

@@ -340,10 +340,12 @@ def give_admin(name = None):
 
 # /auth/give
 # /auth/give/<name>
-@app.route('/ban', methods = ['POST', 'GET'])
-@app.route('/ban/<name>', methods = ['POST', 'GET'])
-def give_user_ban(name = None):
-    return give_user_ban_2(load_db.db_get(), name)
+app.route('/auth/give/ban', methods = ['POST', 'GET'])(give_user_ban)
+app.route('/auth/give/ban/<name>', methods = ['POST', 'GET'])(give_user_ban)
+
+app.route('/auth/give/ban_regex/<everything:name>', methods = ['POST', 'GET'], defaults = { 'ban_type' : 'regex' })(give_user_ban)
+
+# app.route('/auth/give/ban_multiple', methods = ['POST', 'GET'])(give_user_ban_multiple)
 
 # /auth/list
 @app.route('/admin_group')
@@ -419,7 +421,7 @@ app.route('/xref_reset/<everything:name>')(edit_backlink_reset)
 
 app.route('/delete/<everything:name>', methods = ['POST', 'GET'])(edit_delete)
 app.route('/delete_file/<everything:name>', methods = ['POST', 'GET'])(edit_delete_file)
-app.route('/delete_mutiple', methods = ['POST', 'GET'])(edit_delete_mutiple)
+app.route('/delete_multiple', methods = ['POST', 'GET'])(edit_delete_multiple)
 
 app.route('/revert/<int:num>/<everything:name>', methods = ['POST', 'GET'])(edit_revert)
 

+ 1 - 1
route/edit_delete_mutiple.py → route/edit_delete_multiple.py

@@ -1,7 +1,7 @@
 from .tool.func import *
 from . import edit_delete
 
-def edit_delete_mutiple():
+def edit_delete_multiple():
     with get_db_connect() as conn:
         curs = conn.cursor()
 

+ 104 - 99
route/give_user_ban.py

@@ -1,116 +1,121 @@
 from .tool.func import *
 
-def give_user_ban_2(conn, name):
-    curs = conn.cursor()
+def give_user_ban(name = None, ban_type = ''):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
 
-    band = flask.request.args.get('type', '')
-    ip = ip_check()
-    if ban_check(ip = ip, tool = 'login') == 1:
-    	if ip_or_user(ip) == 1 or admin_check('all', None, ip) == 0:
-            return re_error('/ban')
-    else:
-    	if admin_check(1, None, ip) !=1:
-    	    return re_error('/error/3')
+        band = ban_type
+        ip = ip_check()
+        if ban_check(ip = ip, tool = 'login') == 1:
+            if ip_or_user(ip) == 1 or admin_check('all', None, ip) == 0:
+                return re_error('/ban')
+        else:
+            if admin_check(1, None, ip) !=1:
+                return re_error('/error/3')
 
-    if flask.request.method == 'POST':
-        end = flask.request.form.get('second', '0')
-        end = end if end else '0'
-        name = name if name else flask.request.form.get('name', 'test')
-        regex_get = flask.request.form.get('regex', None)
-        login = flask.request.form.get('login', '')
-        why = flask.request.form.get('why', '')
+        if flask.request.method == 'POST':
+            end = flask.request.form.get('second', '0')
+            end = end if end else '0'
+            name = name if name else flask.request.form.get('name', 'test')
+            regex_get = flask.request.form.get('regex', None)
+            login = flask.request.form.get('login', '')
+            why = flask.request.form.get('why', '')
 
-        if regex_get or band != '':
-            type_d = 'regex' if regex_get else band
+            if regex_get or band != '':
+                type_d = 'regex' if regex_get else band
 
-            try:
-                re.compile(name)
-            except:
-                return re_error('/error/23')
-        else:
-            type_d = None
+                try:
+                    re.compile(name)
+                except:
+                    return re_error('/error/23')
+            else:
+                type_d = None
 
-        if type_d:
-            if admin_check(None, 'ban' + (' ' + type_d if type_d else '') + ' (' + name + ')') != 1:
-                return re_error('/error/3')
-        else:
-            if name == ip:
-                if admin_check('all', 'ban (' + name + ')') != 1:
+            if type_d:
+                if admin_check(None, 'ban' + (' ' + type_d if type_d else '') + ' (' + name + ')') != 1:
                     return re_error('/error/3')
             else:
-            	if admin_check(1, 'ban (' + name + ')') != 1:
-                    return re_error('/error/3')
+                if name == ip:
+                    if admin_check('all', 'ban (' + name + ')') != 1:
+                        return re_error('/error/3')
+                else:
+                    if admin_check(1, 'ban (' + name + ')') != 1:
+                        return re_error('/error/3')
 
-        ban_insert(
-            name,
-            end,
-            why,
-            login,
-            ip_check(),
-            type_d
-        )
+            ban_insert(
+                name,
+                end,
+                why,
+                login,
+                ip_check(),
+                type_d
+            )
 
-        return redirect('/block_log')
-    else:
-        curs.execute(db_change("select end, why from rb where block = ? and ongoing = '1' and band = ?"), [name, band])
-        end = curs.fetchall()
-        if end:
-            main_name = name
-            b_now = load_lang('release')
-            now = '(' + b_now + ')'
-            action = 'action="/ban/' + url_pas(name) + ('?type=' + band if band != '' else '') + '"'
+            return redirect('/block_log')
+        else:
+            curs.execute(db_change("select end, why from rb where block = ? and ongoing = '1' and band = ?"), [name, band])
+            end = curs.fetchall()
+            if end:
+                main_name = name
+                b_now = load_lang('release')
+                now = '(' + b_now + ')'
+                
+                if band != '':
+                    action = 'action="/auth/give/ban_regex/' + url_pas(name) + '"'
+                else:
+                    action = 'action="/auth/give/ban/' + url_pas(name) + '"'
 
-            if end[0][0] == '':
-                data = '<ul class="inside_ul"><li>' + load_lang('limitless') + '</li>'
-            else:
-                data = '<ul class="inside_ul"><li>' + load_lang('period') + ' : ' + end[0][0] + '</li>'
+                if end[0][0] == '':
+                    data = '<ul class="inside_ul"><li>' + load_lang('limitless') + '</li>'
+                else:
+                    data = '<ul class="inside_ul"><li>' + load_lang('period') + ' : ' + end[0][0] + '</li>'
 
-            curs.execute(db_change("select block from rb where block = ? and login = 'O' and ongoing = '1'"), [name])
-            if curs.fetchall():
-                data += '<li>' + load_lang('login_able') + '</li>'
+                curs.execute(db_change("select block from rb where block = ? and login = 'O' and ongoing = '1'"), [name])
+                if curs.fetchall():
+                    data += '<li>' + load_lang('login_able') + '</li>'
 
-            if end[0][1] != '':
-                data += '<li>' + load_lang('why') + ' : ' + end[0][1] + '</li></ul><hr class="main_hr">'
+                if end[0][1] != '':
+                    data += '<li>' + load_lang('why') + ' : ' + end[0][1] + '</li></ul><hr class="main_hr">'
+                else:
+                    data += '</ul><hr class="main_hr">'
             else:
-                data += '</ul><hr class="main_hr">'
-        else:
-            main_name = load_lang('ban')
-            n_name = '<input placeholder="' + load_lang('name_or_ip_or_regex') + '" value="' + (name if name else '') + '" name="name" type="text"><hr class="main_hr">'
-            regex = '<input type="checkbox" name="regex" ' + ('checked' if band == 'regex' else '') + '> ' + load_lang('regex') + '<hr class="main_hr">'
-            plus = '<input type="checkbox" name="login"> ' + load_lang('login_able') + '<hr class="main_hr">'
-            now = 0
-            b_now = load_lang('ban')
-            action = 'action="/ban"'
-            
-            time_data = [
-                ['86400', load_lang('1_day')],
-                ['432000', load_lang('5_day')],
-                ['2592000', load_lang('30_day')],
-                ['15552000', load_lang('180_day')],
-                ['31104000', load_lang('360_day')],
-                ['0', load_lang('limitless')]
-            ]
-            insert_data = ''
-            for i in time_data:
-                insert_data += '<a href="javascript:insert_v(\'second\', \'' + i[0] + '\')">(' + i[1] + ')</a> '
+                main_name = load_lang('ban')
+                n_name = '<input placeholder="' + load_lang('name_or_ip_or_regex') + '" value="' + (name if name else '') + '" name="name" type="text"><hr class="main_hr">'
+                regex = '<input type="checkbox" name="regex" ' + ('checked' if band == 'regex' else '') + '> ' + load_lang('regex') + '<hr class="main_hr">'
+                plus = '<input type="checkbox" name="login"> ' + load_lang('login_able') + '<hr class="main_hr">'
+                now = 0
+                b_now = load_lang('ban')
+                action = 'action="/auth/give/ban"'
+
+                time_data = [
+                    ['86400', load_lang('1_day')],
+                    ['432000', load_lang('5_day')],
+                    ['2592000', load_lang('30_day')],
+                    ['15552000', load_lang('180_day')],
+                    ['31104000', load_lang('360_day')],
+                    ['0', load_lang('limitless')]
+                ]
+                insert_data = ''
+                for i in time_data:
+                    insert_data += '<a href="javascript:insert_v(\'second\', \'' + i[0] + '\')">(' + i[1] + ')</a> '
 
-            data = n_name + '''
-                ''' + regex + '''
-                <script>function insert_v(name, data) { document.getElementById(name).value = data; }</script>''' + insert_data + '''
-                <hr class="main_hr">
-                <input placeholder="''' + load_lang('ban_period') + ''' (''' + load_lang('second') + ''')" name="second" id="second" type="text">
-                <hr class="main_hr">
-                <input placeholder="''' + load_lang('why') + '''" name="why" type="text">
-                <hr class="main_hr">
-            ''' + plus
+                data = n_name + '''
+                    ''' + regex + '''
+                    <script>function insert_v(name, data) { document.getElementById(name).value = data; }</script>''' + insert_data + '''
+                    <hr class="main_hr">
+                    <input placeholder="''' + load_lang('ban_period') + ''' (''' + load_lang('second') + ''')" name="second" id="second" type="text">
+                    <hr class="main_hr">
+                    <input placeholder="''' + load_lang('why') + '''" name="why" type="text">
+                    <hr class="main_hr">
+                ''' + plus
 
-        return easy_minify(flask.render_template(skin_check(),
-            imp = [main_name, wiki_set(), wiki_custom(), wiki_css([now, 0])],
-            data = '''
-                <form method="post" ''' + action + '''>
-                    ''' + data + '''
-                    <button type="submit">''' + b_now + '''</button>
-                </form>
-            ''',
-            menu = [['manager', load_lang('return')]]
-        ))   
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [main_name, wiki_set(), wiki_custom(), wiki_css([now, 0])],
+                data = '''
+                    <form method="post" ''' + action + '''>
+                        ''' + data + '''
+                        <button type="submit">''' + b_now + '''</button>
+                    </form>
+                ''',
+                menu = [['manager', load_lang('return')]]
+            ))   

+ 4 - 4
route/main_tool_admin.py

@@ -17,7 +17,7 @@ def main_tool_admin(num = 1, add_2 = ''):
         12 : [load_lang('compare_target'), 'check', load_lang('compare_target')],
         13 : [load_lang('document_name'), 'edit', load_lang('load')],
         14 : [load_lang('document_name'), 'star_doc', load_lang('add_star_doc')],
-        15 : [load_lang('name_or_ip_or_regex'), 'ban', load_lang('release')]
+        15 : [load_lang('name_or_ip_or_regex'), 'auth/give/ban', load_lang('release')]
     }
 
     if num == 1:
@@ -29,14 +29,14 @@ def main_tool_admin(num = 1, add_2 = ''):
                     <ul class="inside_ul">
                         <li><a href="/manager/2">''' + load_lang('acl_change') + '''</a></li>
                         <li><a href="/manager/3">''' + load_lang('check_user') + '''</a></li>
-                        <li><a href="/ban">''' + load_lang('ban') + '''</a></li>
+                        <li><a href="/auth/give/ban">''' + load_lang('ban') + '''</a></li>
                         <li><a href="/manager/17">''' + load_lang('release') + '''</a></li>
                         <li><a href="/manager/5">''' + load_lang('authorize') + '''</a></li>
                     </ul>
                     <h2>2. ''' + load_lang('owner') + '''</h2>
                     <ul class="inside_ul">
                         <li><a href="/admin_group">''' + load_lang('admin_group_list') + '''</a></li>
-                        <li><a href="/delete_mutiple">''' + load_lang('many_delete') + '''</a></li>
+                        <li><a href="/delete_multiple">''' + load_lang('many_delete') + '''</a></li>
                         <li><a href="/app_submit">''' + load_lang('application_list') + '''</a></li>
                         <li><a href="/api/sitemap.xml">''' + load_lang('get_sitemap') + '''</a></li>
                         <li><a href="/register">''' + load_lang('add_user') + '''</a></li>
@@ -83,7 +83,7 @@ def main_tool_admin(num = 1, add_2 = ''):
             if add_2 != '':
                 return redirect('/' + title_list[num][1] + '/' + url_pas(add_2) + '/doc_from/' + url_pas(add_1))
             elif flask.request.form.get('regex', '') != '':
-                return redirect('/' + title_list[num][1] + '/' + url_pas(add_1) + '?type=regex')
+                return redirect('/auth/give/ban_regex/' + url_pas(add_1))
             else:
                 return redirect('/' + title_list[num][1] + '/' + url_pas(add_1))
         else:

+ 2 - 2
route/recent_block.py

@@ -97,9 +97,9 @@ def recent_block_2(conn, name, tool):
         if data[5] == 'regex':
             ip = data[1]
             if data[6] == '1':
-                ip = '<s>' + ip + '</s> <a href="/ban/' + url_pas(data[1]) + '?type=regex">(' + load_lang('release') + ')</a>'
+                ip = '<s>' + ip + '</s> <a href="/auth/give/ban_regex/' + url_pas(data[1]) + '">(' + load_lang('release') + ')</a>'
             else:
-                ip += ' <a href="/ban/' + url_pas(data[1]) + '?type=regex">(' + load_lang('ban') + ')</a>'
+                ip += ' <a href="/auth/give/ban_regex/' + url_pas(data[1]) + '">(' + load_lang('ban') + ')</a>'
                 
             ip += ' (' + load_lang('regex') + ')'
         else:

+ 1 - 1
route/topic_comment_tool.py

@@ -44,7 +44,7 @@ def topic_comment_tool(topic_num = 1, num = 1):
                 <h2>''' + load_lang('admin_tool') + '''</h2>
                 <ul class="inside_ul">
                     <li>
-                        <a href="/ban/''' + url_pas(data[0][1]) + '''">
+                        <a href="/auth/give/ban/''' + url_pas(data[0][1]) + '''">
                             ''' + (load_lang('release') if user_ban_d else load_lang('ban')) + '''
                         </a>
                     </li>

+ 1 - 1
route/user_info.py

@@ -50,7 +50,7 @@ def user_info(name = ''):
             admin_menu = '''
                 <h2>''' + load_lang('admin') + '''</h2>
                 <ul class="inside_ul">
-                    <li><a href="/ban/''' + url_pas(ip) + '''">''' + ban_name + '''</a></li>
+                    <li><a href="/auth/give/ban/''' + url_pas(ip) + '''">''' + ban_name + '''</a></li>
                     <li><a href="/check/''' + url_pas(ip) + '''">''' + load_lang('check') + '''</a></li>
                 </ul>
             '''