Explorar o código

https://github.com/openNAMU/openNAMU/issues/2055

잉여개발기 (SPDV) %!s(int64=2) %!d(string=hai) anos
pai
achega
2fbbe8cb65
Modificáronse 7 ficheiros con 50 adicións e 20 borrados
  1. 2 0
      app.py
  2. 1 0
      route/__init__.py
  3. 5 5
      route/main_setting_main.py
  4. 2 0
      route/recent_block.py
  5. 10 14
      route/tool/func.py
  6. 29 0
      route/user_edit_filter.py
  7. 1 1
      version.json

+ 2 - 0
app.py

@@ -589,6 +589,8 @@ app.route('/user/<name>')(user_info)
 
 app.route('/challenge', methods = ['GET', 'POST'])(user_challenge)
 
+app.route('/edit_filter/<name>', methods = ['GET', 'POST'])(user_edit_filter)
+
 app.route('/count')(user_count)
 app.route('/count/<name>')(user_count)
 

+ 1 - 0
route/__init__.py

@@ -140,6 +140,7 @@ from route.user_alarm_delete import user_alarm_delete
 from route.user_challenge import user_challenge
 from route.user_count import user_count
 from route.user_info import user_info
+from route.user_edit_filter import user_edit_filter
 
 from route.user_setting import user_setting
 from route.user_setting_email import user_setting_email_2

+ 5 - 5
route/main_setting_main.py

@@ -153,11 +153,6 @@ def main_setting_main(db_set):
                         <hr class="main_hr">
                         <input type="password" name="key" value="''' + html.escape(d_list[11]) + '''">
                         <hr class="main_hr">
-
-                        <span>''' + load_lang('encryption_method') + '''</span>
-                        <hr class="main_hr">
-                        <select name="encode">''' + encode_select + '''</select>
-                        <hr class="main_hr">
                         
                         <input type="checkbox" name="wiki_access_password_need" ''' + check_box_div[8] + '''> ''' + load_lang('set_wiki_access_password_need') + ''' (''' + load_lang('restart_required') + ''')
                         <hr class="main_hr">
@@ -215,6 +210,11 @@ def main_setting_main(db_set):
                         <span>''' + load_lang('password_min_length') + '''</span> (''' + load_lang('off') + ''' : ''' + load_lang('empty') + ''')
                         <hr class="main_hr">
                         <input name="password_min_length" value="''' + html.escape(d_list[30]) + '''">
+                        <hr class="main_hr">
+
+                        <span>''' + load_lang('encryption_method') + '''</span>
+                        <hr class="main_hr">
+                        <select name="encode">''' + encode_select + '''</select>
 
                         <h3>''' + load_lang('ua') + '''</h3>
                         

+ 2 - 0
route/recent_block.py

@@ -91,6 +91,8 @@ def recent_block_2(name = 'Test', tool = 'all'):
         all_ip = ip_pas([i[1] for i in data_list] + [i[2] for i in data_list])
         for data in data_list:
             why = '<br>' if data[0] == '' else html.escape(data[0])
+            if why == 'edit filter':
+                why = '<a href="/edit_filter/' + url_pas(data[1]) + '">edit filter</a>'
 
             if data[5] == 'regex':
                 ip = data[1]

+ 10 - 14
route/tool/func.py

@@ -1757,9 +1757,7 @@ def get_admin_list(num = None):
         curs = conn.cursor()
         
         if num == 'all':
-            curs.execute(db_change(
-                "select data from user_set where data != 'user' and name = 'acl'"
-            ))
+            curs.execute(db_change("select data from user_set where data != 'user' and name = 'acl'"))
             db_data = curs.fetchall()
             db_data = [db_data_in[0] for db_data_in in db_data] if db_data else []
             
@@ -1768,14 +1766,10 @@ def get_admin_list(num = None):
             check = get_admin_auth_list(num)
             admin_list = []
             
-            curs.execute(db_change(
-                'select name from alist where acl = ?'
-            ), [check])
+            curs.execute(db_change('select name from alist where acl = ?'), [check])
             db_data = curs.fetchall()
             for db_data_in in db_data:
-                curs.execute(db_change(
-                    "select id from user_set where data = ? and name = 'acl'"
-                ), [db_data_in[0]])
+                curs.execute(db_change("select id from user_set where data = ? and name = 'acl'"), [db_data_in[0]])
                 db_data_2 = curs.fetchall()
                 admin_list += [db_data_2_in[0] for db_data_2_in in db_data_2] if db_data_2 else []
                 
@@ -1841,9 +1835,7 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
                 if get_ban == 1:
                     return 1
                     
-                curs.execute(db_change(
-                    "select data from acl where title = ? and type = 'decu'"
-                ), [name])
+                curs.execute(db_change("select data from acl where title = ? and type = 'decu'"), [name])
                 acl_data = curs.fetchall()
                 if acl_data:
                     if acl_data[0][0] == 'all':
@@ -2307,6 +2299,7 @@ def do_edit_filter(data):
     with get_db_connect() as conn:
         curs = conn.cursor()
 
+        ip = ip_check()
         if admin_check(1) != 1:
             curs.execute(db_change("select plus, plus_t from html_filter where kind = 'regex_filter' and plus != ''"))
             for data_list in curs.fetchall():
@@ -2321,9 +2314,12 @@ def do_edit_filter(data):
                         r_time = (time + plus).strftime("%Y-%m-%d %H:%M:%S")
                     else:
                         r_time = '0'
-                
+
+                    curs.execute(db_change('delete from user_set where name = "edit_filter" and id = ?'), [ip])
+                    curs.execute(db_change('insert into user_set (name, id, data) values ("edit_filter", ?, ?)'), [ip, data])
+
                     ban_insert(
-                        ip_check(),
+                        ip,
                         r_time,
                         'edit filter',
                         None,

+ 29 - 0
route/user_edit_filter.py

@@ -0,0 +1,29 @@
+from .tool.func import *
+
+def user_edit_filter(name = ''):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        if admin_check(1, None) != 1:
+            return redirect('/block_log')
+
+        if flask.request.method == 'POST':
+            curs.execute(db_change('delete from user_set where name = "edit_filter" and id = ?'), [name])
+
+            return redirect('/edit_filter/' + url_pas(name))
+        else:
+            curs.execute(db_change('select data from user_set where name = "edit_filter" and id = ?'), [name])
+            db_data = curs.fetchall()
+            p_data = db_data[0][0] if db_data else ''
+            p_data = '<textarea readonly class="opennamu_textarea_500">' + html.escape(p_data) + '</textarea>'
+
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [name, wiki_set(), wiki_custom(), wiki_css(['(' + load_lang('edit_filter') + ')', 0])],
+                data = p_data + '''
+                    <hr class="main_hr">
+                    <form method="post">
+                        <button type="submit">''' + load_lang('delete') + '''</button>
+                    </form>
+                ''',
+                menu = [['block_log', load_lang('return')]]
+            ))

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev1",
+        "r_ver" : "v3.5.0-dev2",
         "c_ver" : "3500374",
         "s_ver" : "3500113"
     }