Browse Source

아이디 렌더링에서 차단을 더 직관적으로 표현

https://github.com/openNAMU/openNAMU/issues/2095
잉여개발기 2 years ago
parent
commit
4ec2c43693

+ 1 - 1
route/api_user_info.py

@@ -37,7 +37,7 @@ def api_user_info(user_name = ''):
         data_result['max_exp'] = level_data[2]
             
         # ban part
-        if ban_check(user_name) == 0:
+        if ban_check(user_name)[0] == 0:
             data_result['ban'] = '0'
         else:
             data_result['ban'] = {}

+ 1 - 1
route/give_user_ban.py

@@ -6,7 +6,7 @@ def give_user_ban(name = None, ban_type = ''):
 
         ip = ip_check()
         
-        if ban_check(ip = ip, tool = 'login') == 1:
+        if ban_check(ip = ip, tool = 'login')[0] == 1:
             if ip_or_user(ip) == 1 or admin_check('all', None, ip) == 0:
                 return re_error('/ban')
         else:

+ 1 - 1
route/login_login.py

@@ -8,7 +8,7 @@ def login_login_2():
         if ip_or_user(ip) == 0:
             return redirect('/user')
 
-        if ban_check(None, 'login') == 1:
+        if ban_check(None, 'login')[0] == 1:
             return re_error('/ban')
 
         if flask.request.method == 'POST':

+ 1 - 1
route/login_login_2fa.py

@@ -14,7 +14,7 @@ def login_login_2fa_2():
         if ip_or_user(ip) == 0:
             return redirect('/user')
 
-        if ban_check(None, 'login') == 1:
+        if ban_check(None, 'login')[0] == 1:
             return re_error('/ban')
 
         if flask.request.method == 'POST':

+ 1 - 1
route/login_login_2fa_email.py

@@ -14,7 +14,7 @@ def login_login_2fa_email_2():
         if ip_or_user(ip) == 0:
             return redirect('/user')
 
-        if ban_check(None, 'login') == 1:
+        if ban_check(None, 'login')[0] == 1:
             return re_error('/ban')
 
         if flask.request.method == 'POST':

+ 1 - 1
route/login_register.py

@@ -4,7 +4,7 @@ def login_register_2():
     with get_db_connect() as conn:
         curs = conn.cursor()
 
-        if ban_check(None, 'login') == 1:
+        if ban_check(None, 'login')[0] == 1:
             return re_error('/ban')
 
         ip = ip_check()

+ 30 - 22
route/tool/func.py

@@ -1273,7 +1273,7 @@ def wiki_custom():
             email,
             user_name,
             user_admin,
-            str(ban_check()),
+            str(ban_check()[0]),
             user_notice,
             user_acl_list,
             ip,
@@ -1825,9 +1825,9 @@ def acl_check(name = '', tool = '', topic_num = '1'):
 
         ip = ip_check()
         if tool == 'document_edit_request':
-            get_ban = ban_check(ip, 'edit_request')
+            get_ban = ban_check(ip, 'edit_request')[0]
         else:
-            get_ban = ban_check(ip)
+            get_ban = ban_check(ip)[0]
         
         if tool == '' and name != '':
             if acl_check(name, 'render') == 1:
@@ -2086,6 +2086,14 @@ def acl_check(name = '', tool = '', topic_num = '1'):
 
         return 1
 
+def ban_type_check(data):
+    if data == 'O':
+        return '1'
+    elif data == 'E':
+        return '2'
+    else:
+        return ''
+
 def ban_check(ip = None, tool = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
@@ -2094,40 +2102,42 @@ def ban_check(ip = None, tool = ''):
         tool = '' if not tool else tool
 
         if admin_check(None, None, ip) == 1:
-            return 0
+            return [0, '']
 
         curs.execute(db_change("select login, block from rb where band = 'regex' and ongoing = '1'"))
         regex_d = curs.fetchall()
         for test_r in regex_d:
+            ban_type = ban_type_check(test_r[0])
             g_regex = re.compile(test_r[1])
             if g_regex.search(ip):
                 if tool == 'login':
-                    if test_r[0] != 'O':
-                        return 1
+                    if ban_type != '1':
+                        return [1, 'a' + ban_type]
                 elif tool == 'edit_request':
-                    if test_r[0][0] != 'E':
-                        return 1
+                    if ban_type != '2':
+                        return [1, 'a' + ban_type]
                 else:
-                    return 1
+                    return [1, 'a' + ban_type]
 
         curs.execute(db_change("select login from rb where block = ? and band = '' and ongoing = '1'"), [ip])
         ban_d = curs.fetchall()
         if ban_d:
+            ban_type = ban_type_check(ban_d[0][0])
             if tool == 'login':
-                if ban_d[0][0] != 'O':
-                    return 1
+                if ban_type != '1':
+                    return [1, ban_type]
             elif tool == 'edit_request':
-                if ban_d[0][0] != 'E':
-                    return 1
+                if ban_type != '2':
+                    return [1, ban_type]
             else:
-                return 1
+                return [1, ban_type]
 
         curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [ip])
         db_data = curs.fetchall()
         if db_data and db_data[0][0] == 'ban':
-            return 1
+            return [1, 'b']
 
-        return 0
+        return [0, '']
 
 def ip_pas(raw_ip, type_data = 0):
     with get_db_connect() as conn:
@@ -2203,11 +2213,9 @@ def ip_pas(raw_ip, type_data = 0):
                     if db_data:
                         ip = db_data[0][0] + ip
 
-                if ban_check(raw_ip) == 1:
-                    ip = '<s>' + ip + '</s>'
-
-                    if ban_check(raw_ip, 'login') == 1:
-                        ip = '<i>' + ip + '</i>'
+                ban = ban_check(raw_ip)
+                if ban[0] == 1:
+                    ip = '<sup>' + ban[1] + '</sup><s>' + ip + '</s>'
 
                 ip = ip + ' <a href="/user/' + url_pas(raw_ip) + '">(' + load_lang('tool') + ')</a>'
 
@@ -2548,7 +2556,7 @@ def re_error(data):
         curs = conn.cursor()
 
         if data == '/ban':
-            if ban_check() == 1:
+            if ban_check()[0] == 1:
                 end = '<div id="opennamu_get_user_info">' + html.escape(ip_check()) + '</div>'
             else:
                 end = '<ul class="opennamu_ul"><li>' + load_lang('authority_error') + '</li></ul>'

+ 3 - 6
route/topic_comment_tool.py

@@ -30,25 +30,22 @@ def topic_comment_tool(topic_num = 1, num = 1):
         '''
 
         if admin_check(3) == 1:
-            curs.execute(db_change("select id from topic where code = ? and id = ? and top = 'O'"), [topic_num, num])
-            top_topic_d = curs.fetchall()
-
             ban += '''
                 <h2>''' + load_lang('admin_tool') + '''</h2>
                 <ul class="opennamu_ul">
                     <li>
                         <a href="/auth/give/ban/''' + url_pas(data[0][1]) + '''">
-                            ''' + (load_lang('release') if ban_check(data[0][1]) == 1 else load_lang('ban')) + '''
+                            ''' + (load_lang('ban') + ' | ' + load_lang('release')) + '''
                         </a>
                     </li>
                     <li>
                         <a href="/thread/''' + topic_num + '''/comment/''' + num + '''/blind">
-                            ''' + (load_lang('hide_release') if data[0][0] == 'O' else load_lang('hide')) + '''
+                            ''' + (load_lang('hide') + ' | ' + load_lang('hide_release')) + '''
                         </a>
                     </li>
                     <li>
                         <a href="/thread/''' + topic_num + '''/comment/''' + num + '''/notice">
-                            ''' + (load_lang('pinned_release') if top_topic_d else load_lang('pinned')) + '''
+                            ''' + (load_lang('pinned') + ' | ' + load_lang('pinned_release')) + '''
                         </a>
                     </li>
                     <li>

+ 1 - 1
route/user_setting_pw.py

@@ -4,7 +4,7 @@ def user_setting_pw():
     with get_db_connect() as conn:
         curs = conn.cursor()
 
-        if ban_check() == 1:
+        if ban_check()[0] == 1:
             return re_error('/ban')
 
         ip = ip_check()

+ 1 - 1
route/user_setting_skin_set_main.py

@@ -111,7 +111,7 @@ def user_setting_skin_set_main():
         curs = conn.cursor()
 
         ip = ip_check()
-        if ban_check(ip) == 1:
+        if ban_check(ip)[0] == 1:
             return re_error('/ban')
             
         set_list = user_setting_skin_set_main_set_list()

+ 1 - 1
route/user_setting_top_menu.py

@@ -5,7 +5,7 @@ def user_setting_top_menu():
         curs = conn.cursor()
 
         ip = ip_check()
-        if ban_check(ip) == 1:
+        if ban_check(ip)[0] == 1:
             return re_error('/ban')
 
         if ip_or_user(ip) == 1:

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev40",
+        "r_ver" : "v3.5.0-dev41",
         "c_ver" : "3500376",
         "s_ver" : "3500113"
     }