Kaynağa Gözat

fix bug

https://github.com/openNAMU/openNAMU/issues/1776
https://github.com/openNAMU/openNAMU/issues/1774
잉여개발기 (SPDV) 3 yıl önce
ebeveyn
işleme
e8db249324

+ 2 - 0
app.py

@@ -51,6 +51,8 @@ with get_db_connect() as conn:
             except:
                 pass
 
+        conn.select_db(data_db_set['name'])
+
     if setup_tool != 'normal':
         create_data = get_db_table_list()
         for create_table in create_data:

+ 6 - 0
route/bbs_w_post.py

@@ -75,6 +75,9 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
 
                 return redirect('/bbs/w/' + bbs_num_str + '/' + post_num_str + '#comment_' + str(int(id_data) + 1))
             else:
+                if acl_check(bbs_num_str, 'bbs_view') == 1:
+                    return re_error('/ban')
+
                 if do_type == 'preview':
                     text = flask.request.form.get('content', '')
                     text = text.replace('\r', '')
@@ -229,6 +232,9 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                     set_id = re.sub(r'^[0-9]+-[0-9]+-?', '', set_id)
                     return redirect('/bbs/w/' + bbs_num_str + '/' + post_num_str + '#comment_' + set_id + '-' + id_data)
             else:
+                if acl_check(bbs_num_str, 'bbs_view') == 1:
+                    return re_error('/ban')
+                    
                 if do_type == 'preview':
                     text = flask.request.form.get('content', '')
                     text = text.replace('\r', '')

+ 3 - 3
route/main_search_deep.py

@@ -26,7 +26,7 @@ def main_search_deep(name = 'Test', search_type = 'title', num = 1):
         if name_new != '':
             div += ' <a href="/search/1/' + url_pas(name_new) + '">(' + name_new + ')</a>'
 
-        curs.execute(db_change("select title from data where title = ?"), [name])
+        curs.execute(db_change("select title from data where title = ? collate nocase"), [name])
         link_id = '' if curs.fetchall() else 'class="opennamu_not_exist_link"'
 
         div += '''
@@ -40,11 +40,11 @@ def main_search_deep(name = 'Test', search_type = 'title', num = 1):
         '''
 
         if search_type == 'title':
-            curs.execute(db_change("select title from data where title like ? order by title limit ?, 50"),
+            curs.execute(db_change("select title from data where title like ? collate nocase order by title limit ?, 50"),
                 ['%' + name + '%', sql_num]
             )
         else:
-            curs.execute(db_change("select title from data where data like ? order by title limit ?, 50"),
+            curs.execute(db_change("select title from data where data like ? collate nocase order by title limit ?, 50"),
                 ['%' + name + '%', sql_num]
             )
 

+ 4 - 4
route/main_search_goto.py

@@ -9,9 +9,9 @@ def main_search_goto(name = 'Test'):
         else:
             data = name
 
-        curs.execute(db_change("select title from data where title = ?"), [data])
-        t_data = curs.fetchall()
-        if t_data:
-            return redirect('/w/' + url_pas(data))
+        curs.execute(db_change("select title from data where title = ? collate nocase"), [data])
+        db_data = curs.fetchall()
+        if db_data:
+            return redirect('/w/' + url_pas(db_data[0][0]))
         else:
             return redirect('/search/' + url_pas(data))

+ 9 - 1
route/tool/func.py

@@ -174,7 +174,10 @@ class get_db_connect:
             )
             curs = self.conn.cursor()
 
-            self.conn.select_db(self.db_set['name'])
+            try:
+                self.conn.select_db(self.db_set['name'])
+            except:
+                pass
 
         load_conn(self.conn)
         return self.conn
@@ -1754,6 +1757,9 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
     elif tool in ['document_edit', 'document_move', 'document_delete']:
         if acl_check(name, '') == 1:
             return 1
+    elif tool in ['bbs_edit', 'bbs_comment']:
+        if acl_check(name, 'bbs_view') == 1:
+            return 1
     elif tool == 'topic':
         curs.execute(db_change("select title from rd where code = ?"), [topic_num])
         name = curs.fetchall()
@@ -1887,6 +1893,8 @@ def acl_check(name = 'test', tool = '', topic_num = '1'):
                 curs.execute(db_change('select set_data from bbs_set where set_name = "bbs_acl" and set_id = ?'), [name])
 
             num = 'all'
+        elif tool == 'bbs_view':
+            curs.execute(db_change('select set_data from bbs_set where set_name = "bbs_view_acl" and set_id = ?'), [name])
         else:
             # tool == 'render'
             if i == 0:

+ 1 - 0
route/tool/func_tool.py

@@ -25,6 +25,7 @@ def db_change(data):
         data = data.replace('random()', 'rand()')
         data = data.replace('%', '%%')
         data = data.replace('?', '%s')
+        data = data.replace('collate nocase', 'collate utf8mb4_general_ci')
 
     return data
 

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.6-RC3-dev168",
+        "r_ver" : "v3.4.6-RC3-dev170",
         "c_ver" : "3500361",
         "s_ver" : "3500111"
     }