2
0
잉여개발기 (SPDV) 1 жил өмнө
parent
commit
2259279e2c

+ 0 - 1
app.py

@@ -823,7 +823,6 @@ app.route('/setting/body/bottom', defaults = { 'num' : 7 }, methods = ['POST', '
 app.route('/setting_preview/body/bottom', defaults = { 'num' : 7, 'set_preview' : 1 }, methods = ['POST'])(main_setting_head)
 app.route('/setting/robot', methods = ['POST', 'GET'])(main_setting_robot)
 app.route('/setting/external', methods = ['POST', 'GET'])(main_setting_external)
-app.route('/setting/acl', methods = ['POST', 'GET'])(main_setting_acl)
 app.route('/setting/sitemap', methods = ['POST', 'GET'])(main_setting_sitemap)
 app.route('/setting/sitemap_set', methods = ['POST', 'GET'])(main_setting_sitemap_set)
 app.route('/setting/skin_set', methods = ['POST', 'GET'])(main_setting_skin_set)

+ 0 - 1
route/__init__.py

@@ -74,7 +74,6 @@ from route.main_search_deep import main_search_deep
 from route.main_search_goto import main_search_goto
 
 from route.main_setting import main_setting
-from route.main_setting_acl import main_setting_acl
 from route.main_setting_external import main_setting_external
 from route.main_setting_head import main_setting_head
 from route.main_setting_main import main_setting_main

+ 7 - 0
route/give_admin_groups.py

@@ -47,8 +47,15 @@ def give_admin_groups(name = 'test'):
                             [5, '', get_lang(conn, 'view_authority')],
                         [4, 'view', get_lang(conn, 'view_authority')],
                     [3, 'discuss', get_lang(conn, 'discuss_authority')],
+                        [4, 'discuss_view', get_lang(conn, 'discuss_authority')],
                     [3, 'upload', get_lang(conn, 'upload_authority')],
                     [3, 'vote', get_lang(conn, 'vote_authority')],
+                    [3, 'bbs_use', get_lang(conn, 'bbs_authority')],
+                        [4, 'bbs_edit', get_lang(conn, 'bbs_edit_authority')],
+                            [5, '', get_lang(conn, 'bbs_view_authority')],
+                        [4, 'bbs_comment', get_lang(conn, 'bbs_comment_authority')],
+                            [5, '', get_lang(conn, 'bbs_view_authority')],
+                        [4, 'bbs_view', get_lang(conn, 'bbs_view_authority')],
                     [3, 'captcha_one_check_five_pass', get_lang(conn, 'captcha_one_check_five_pass_authority')]
         ]
 

+ 0 - 1
route/main_setting.py

@@ -13,7 +13,6 @@ def main_setting():
             ['sitemap_set', get_lang(conn, 'sitemap_management')],
             ['top_menu', get_lang(conn, 'top_menu_setting')],
             ['skin_set', get_lang(conn, 'main_skin_set_default')],
-            ['acl', get_lang(conn, 'main_acl_setting')],
             ['404_page', get_lang(conn, '404_page_setting')]
         ]
 

+ 0 - 112
route/main_setting_acl.py

@@ -1,112 +0,0 @@
-from .tool.func import *
-
-def main_setting_acl():
-    with get_db_connect() as conn:
-        curs = conn.cursor()
-
-        i_list = {
-            1 : 'edit',
-            2 : 'discussion',
-            3 : 'upload_acl',
-            4 : 'all_view_acl',
-            5 : 'many_upload_acl',
-            6 : 'vote_acl',
-            7 : 'document_edit_acl',
-            8 : 'document_move_acl',
-            9 : 'document_delete_acl',
-            10 : 'slow_edit_acl',
-            11 : 'edit_bottom_compulsion_acl',
-            12 : 'recaptcha_pass_acl',
-            13 : 'recaptcha_one_check_five_pass_acl',
-            14 : 'document_edit_request_acl',
-            15 : 'document_make_acl'
-        }
-        default_list = {
-            12 : 'user'
-        }
-
-        if flask.request.method == 'POST':
-            if acl_check(tool = 'owner_auth', memo = 'edit_set (acl)') == 1:
-                return re_error(conn, '/ban')
-            else:
-                curs.executemany(db_change("update other set data = ? where name = ?"), [[flask.request.form.get(i_list[for_a], 'normal'), i_list[for_a]] for for_a in i_list])
-
-                return redirect(conn, '/setting/acl')
-        else:
-            d_list = {}
-            disable = 'disabled' if acl_check('', 'owner_auth', '', '') == 1 else ''
-            acl_div = ['' for _ in range(0, len(i_list))]
-
-            for for_a in i_list:
-                curs.execute(db_change('select data from other where name = ?'), [i_list[for_a]])
-                sql_d = curs.fetchall()
-                if sql_d:
-                    d_list[for_a] = sql_d[0][0]
-                else:
-                    default_data = 'normal' if not for_a in default_list else default_list[for_a]
-                    curs.execute(db_change('insert into other (name, data, coverage) values (?, ?, "")'), [i_list[for_a], default_data])
-                    d_list[for_a] = default_data
-
-            acl_list = get_acl_list()
-            for for_a in range(0, len(i_list)):
-                for data_list in acl_list:
-                    acl_div[for_a] += '<option value="' + data_list + '" ' + ('selected="selected"' if data_list == d_list[for_a + 1] else '') + '>' + (data_list if data_list != '' else 'normal') + '</option>'
-
-            return easy_minify(conn, flask.render_template(skin_check(conn),
-                imp = [get_lang(conn, 'main_acl_setting'), wiki_set(conn), wiki_custom(conn), wiki_css([0, 0])],
-                data = render_simple_set(conn, '''
-                    <form method="post">
-                        <hr class="main_hr">
-                        <a href="/acl/TEST#exp">(''' + get_lang(conn, 'reference') + ''')</a>
-                        
-                        <h2>''' + get_lang(conn, 'document_acl') + '''</h2>
-                        <select ''' + disable + ''' name="edit">''' + acl_div[0] + '''</select>
-
-                        <h3>''' + get_lang(conn, 'document_make_acl') + '''</h3>
-                        <select ''' + disable + ''' name="document_make_acl">''' + acl_div[14] + '''</select>
-
-                        <h3>''' + get_lang(conn, 'document_edit_acl') + '''</h3>
-                        <select ''' + disable + ''' name="document_edit_acl">''' + acl_div[6] + '''</select>
-
-                        <h3>''' + get_lang(conn, 'document_edit_request_acl') + '''</h3>
-                        <select ''' + disable + ''' name="document_edit_request_acl">''' + acl_div[13] + '''</select>
-
-                        <h3>''' + get_lang(conn, 'document_move_acl') + '''</h3>
-                        <select ''' + disable + ''' name="document_move_acl">''' + acl_div[7] + '''</select>
-
-                        <h3>''' + get_lang(conn, 'document_delete_acl') + '''</h3>
-                        <select ''' + disable + ''' name="document_delete_acl">''' + acl_div[8] + '''</select>
-                        
-                        <h2>''' + get_lang(conn, 'discussion_acl') + '''</h2>
-                        <select ''' + disable + ''' name="discussion">''' + acl_div[1] + '''</select>
-                        
-                        <h2>''' + get_lang(conn, 'upload_acl') + '''</h2>
-                        <select ''' + disable + ''' name="upload_acl">''' + acl_div[2] + '''</select>
-                        
-                        <h3>''' + get_lang(conn, 'many_upload_acl') + '''</h3>
-                        <select ''' + disable + ''' name="many_upload_acl">''' + acl_div[4] + '''</select>
-                        
-                        <h2>''' + get_lang(conn, 'view_acl') + '''</h2>
-                        <select ''' + disable + ''' name="all_view_acl">''' + acl_div[3] + '''</select>
-                        
-                        <h2>''' + get_lang(conn, 'vote_acl') + '''</h2>
-                        <select ''' + disable + ''' name="vote_acl">''' + acl_div[5] + '''</select>
-
-                        <h2>''' + get_lang(conn, 'slow_edit_acl') + '''</h2>
-                        <select ''' + disable + ''' name="slow_edit_acl">''' + acl_div[9] + '''</select>
-
-                        <h2>''' + get_lang(conn, 'edit_bottom_compulsion_acl') + '''</h2>
-                        <select ''' + disable + ''' name="edit_bottom_compulsion_acl">''' + acl_div[10] + '''</select>
-
-                        <h2>''' + get_lang(conn, 'recaptcha_pass_acl') + '''</h2>
-                        <select ''' + disable + ''' name="recaptcha_pass_acl">''' + acl_div[11] + '''</select>
-
-                        <h3>''' + get_lang(conn, 'recaptcha_one_check_five_pass_acl') + '''</h3>
-                        <select ''' + disable + ''' name="recaptcha_one_check_five_pass_acl">''' + acl_div[12] + '''</select>
-                        
-                        <hr class="main_hr">
-                        <button id="opennamu_save_button" type="submit">''' + get_lang(conn, 'save') + '''</button>
-                    </form>
-                '''),
-                menu = [['setting/main', get_lang(conn, 'return')]]
-            ))

+ 0 - 2
route/view_set.py

@@ -263,8 +263,6 @@ def view_set(name = 'Test', multiple = False):
                 data = '''
                     <form method="post">
                         <script defer src="/views/main_css/js/route/w_set.js''' + cache_v() + '''"></script>
-                        <a href="/setting/acl">(''' + get_lang(conn, 'main_acl_setting') + ''')</a>
-                        <hr class="main_hr">
                         ''' + text_area + '''
                         ''' + render_simple_set(conn, data) + '''
                         ''' + save_button + '''

+ 125 - 154
route_go/route/tool/acl_and_auth.go

@@ -164,7 +164,7 @@ func Check_auth(auth_info map[string]bool) map[string]bool {
 		}
 	}
 
-	ip_default = []string{"document", "discuss", "upload", "vote", "captcha_one_check_five_pass"}
+	ip_default := []string{"document", "discuss", "upload", "vote", "bbs", "captcha_one_check_five_pass"}
 
 	if _, ok := auth_info["ip"]; ok {
 		for _, v := range ip_default {
@@ -172,6 +172,46 @@ func Check_auth(auth_info map[string]bool) map[string]bool {
 		}
 	}
 
+	document_default := []string{"edit", "edit_request", "move", "new_make", "delete"}
+
+	if _, ok := auth_info["document"]; ok {
+		for _, v := range document_default {
+			auth_info[v] = true
+		}
+	}
+
+	check = false
+	for _, v := range document_default {
+		if _, ok := auth_info[v]; ok {
+			check = true
+			break
+		}
+	}
+
+	if check {
+		auth_info["view"] = true
+	}
+
+	bbs_default := []string{"bbs_edit", "bbs_comment"}
+
+	if _, ok := auth_info["bbs_use"]; ok {
+		for _, v := range bbs_default {
+			auth_info[v] = true
+		}
+	}
+
+	check = false
+	for _, v := range bbs_default {
+		if _, ok := auth_info[v]; ok {
+			check = true
+			break
+		}
+	}
+
+	if check {
+		auth_info["bbs_view"] = true
+	}
+
 	return auth_info
 }
 
@@ -347,13 +387,10 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'edit'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["document"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "document_move" {
@@ -377,13 +414,10 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'document_move_acl'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["move"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "document_edit" {
@@ -407,16 +441,13 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'document_edit_acl'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["edit"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
-		} else if tool == "document_edit" {
+		} else if tool == "document_delete" {
 			acl_pass_auth = "acl"
 
 			if for_a == 0 {
@@ -437,13 +468,10 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'document_delete_acl'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["delete"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "topic" {
@@ -484,53 +512,35 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'discussion'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["discuss"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "topic_view" {
 			acl_pass_auth = "topic"
 
-			stmt, err := db.Prepare(DB_change("select set_data from topic_set where thread_code = ? and set_name = 'thread_view_acl'"))
-			if err != nil {
-				log.Fatal(err)
-			}
-			defer stmt.Close()
-
-			err = stmt.QueryRow(topic_number).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["discuss_view"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "upload" {
-			acl_pass_auth = "multiple_upload"
+			acl_pass_auth = "admin_default_feature"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'upload_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["upload"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "many_upload" {
-			acl_pass_auth = "multiple_upload"
+			acl_pass_auth = "admin_default_feature"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'many_upload_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["multiple_upload"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "vote" {
 			acl_pass_auth = "vote_fix"
@@ -557,36 +567,27 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					continue
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'vote_acl'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["vote"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "slow_edit" {
-			acl_pass_auth = "slow_edit_pass"
+			acl_pass_auth = "admin_default_feature"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'slow_edit_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["slow_edit_pass"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "edit_bottom_compulsion" {
-			acl_pass_auth = "edit_bottom_compulsion_pass"
+			acl_pass_auth = "admin_default_feature"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'edit_bottom_compulsion_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["edit_bottom_compulsion_pass"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "bbs_edit" {
 			acl_pass_auth = "bbs"
@@ -637,13 +638,10 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select set_data from bbs_set where set_name = 'bbs_acl_all'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["bbs_edit"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "bbs_comment" {
@@ -695,13 +693,10 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select set_data from bbs_set where set_name = 'bbs_acl_all'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["bbs_comment"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "bbs_view" {
@@ -725,36 +720,27 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select set_data from bbs_set where set_name = 'bbs_view_acl_all'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["bbs_view"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "recaptcha" {
-			acl_pass_auth = "captcha_pass"
+			acl_pass_auth = "admin_default_feature"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'recaptcha_pass_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["captcha_pass"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "recaptcha_five_pass" {
-			acl_pass_auth = "captcha_one_check_five_pass"
+			acl_pass_auth = "admin_default_feature"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'recaptcha_one_check_five_pass_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["captcha_one_check_five_pass"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else if tool == "document_edit_request" {
 			acl_pass_auth = "acl"
@@ -777,25 +763,19 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'document_edit_request_acl'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["edit_request"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		} else if tool == "document_make_acl" {
 			acl_pass_auth = "acl"
 
-			err := db.QueryRow(DB_change("select data from other where name = 'document_make_acl'")).Scan(&acl_data)
-			if err != nil {
-				if err == sql.ErrNoRows {
-					acl_data = ""
-				} else {
-					log.Fatal(err)
-				}
+			if auth_info["new_make"] {
+				acl_data = ""
+			} else {
+				acl_data = "owner"
 			}
 		} else {
 			// tool == "render"
@@ -819,13 +799,10 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 					}
 				}
 			} else {
-				err := db.QueryRow(DB_change("select data from other where name = 'all_view_acl'")).Scan(&acl_data)
-				if err != nil {
-					if err == sql.ErrNoRows {
-						acl_data = ""
-					} else {
-						log.Fatal(err)
-					}
+				if auth_info["view"] {
+					acl_data = ""
+				} else {
+					acl_data = "owner"
 				}
 			}
 		}
@@ -837,13 +814,7 @@ func Check_acl(db *sql.DB, name string, topic_number string, tool string, ip str
 		}
 
 		if acl_data == "" {
-			if tool == "recaptcha" {
-				acl_data = "admin"
-			} else if tool == "slow_edit" || tool == "edit_bottom_compulsion" {
-				acl_data = "not_all"
-			} else {
-				acl_data = "normal"
-			}
+			acl_data = "normal"
 		}
 
 		except_ban_tool_list := []string{"render", "topic_view", "bbs_view"}