2du преди 4 години
родител
ревизия
4e68f0afce
променени са 9 файла, в които са добавени 110 реда и са изтрити 99 реда
  1. 37 62
      app.py
  2. 1 1
      route/__init__.py
  3. 5 1
      route/give_admin_groups.py
  4. 2 2
      route/give_delete_admin_group.py
  5. 34 0
      route/list_admin_group.py
  6. 1 4
      route/list_admin_use.py
  7. 0 27
      route/list_give.py
  8. 1 1
      route/main_manager.py
  9. 29 1
      route/tool/func.py

+ 37 - 62
app.py

@@ -123,7 +123,10 @@ create_data['rc'] = ['id', 'title', 'date', 'type']
 create_data['rd'] = ['title', 'sub', 'code', 'date', 'band', 'stop', 'agree', 'acl']
 create_data['user_set'] = ['name', 'id', 'data']
 create_data['topic'] = ['id', 'data', 'date', 'ip', 'block', 'top', 'code']
+
+# 폐지 예정
 create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band', 'login', 'ongoing']
+
 create_data['back'] = ['title', 'link', 'type']
 create_data['other'] = ['name', 'data', 'coverage']
 create_data['alist'] = ['name', 'acl']
@@ -134,7 +137,7 @@ create_data['scan'] = ['user', 'title', 'type']
 create_data['acl'] = ['title', 'data', 'type']
 create_data['html_filter'] = ['html', 'kind', 'plus', 'plus_t']
 create_data['vote'] = ['name', 'id', 'subject', 'data', 'user', 'type', 'acl']
-for i in create_data:
+for create_table in create_data:
     try:
         curs.execute(db_change('select test from ' + i + ' limit 1'))
     except:
@@ -142,46 +145,39 @@ for i in create_data:
             curs.execute(db_change('create table ' + i + '(test longtext)'))
         except:
             curs.execute(db_change("alter table " + i + " add test longtext"))
-
-setup_tool = 0
-try:
-    curs.execute(db_change('select data from other where name = "ver"'))
-    ver_set_data = curs.fetchall()
-    if not ver_set_data:
-        setup_tool = 2
-    else:
-        if int(version_list['beta']['c_ver']) > int(ver_set_data[0][0]):
-            setup_tool = 1
-except:
-    setup_tool = 2
-
-if setup_tool != 0:
-    for create_table in create_data:
-        for create in create_data[create_table]:
+            
+    for create in create_data[create_table]:
+        try:
+            curs.execute(db_change(
+                'select ' + create + ' from ' + create_table + ' limit 1'
+            ))
+        except:
             try:
                 curs.execute(db_change(
-                    'select ' + create + ' from ' + create_table + ' limit 1'
+                    "alter table " + create_table + " add " + create + " longtext default ''"
                 ))
             except:
-                try:
-                    curs.execute(db_change(
-                        "alter table " + create_table + " add " + create + " longtext default ''"
-                    ))
-                except:
-                    curs.execute(db_change(
-                        "alter table " + create_table + " add " + create + " longtext"
-                    ))
-
-    if setup_tool == 1:
+                curs.execute(db_change(
+                    "alter table " + create_table + " add " + create + " longtext"
+                ))
+
+curs.execute(db_change('select data from other where name = "ver"'))
+ver_set_data = curs.fetchall()
+if ver_set_data:
+    if int(version_list['beta']['c_ver']) > int(ver_set_data[0][0]):
+        setup_tool = 'update'
+    else:
+        setup_tool = 'normal'
+else:
+    setup_tool = 'init'
+
+if setup_tool != 'normal':
+    if setup_tool == 'update':
         update(int(ver_set_data[0][0]), set_data)
     else:
         set_init()
 
-curs.execute(db_change('delete from other where name = "ver"'))
-curs.execute(db_change('insert into other (name, data) values ("ver", ?)'), [
-    version_list['beta']['c_ver']
-])
-conn.commit()
+set_init_always(version_list['beta']['c_ver'])
 
 # Init-Route
 logging.basicConfig(level = logging.ERROR)
@@ -204,19 +200,13 @@ app.jinja_env.filters['cut_100'] = cut_100
 app.url_map.converters['everything'] = EverythingConverter
 app.url_map.converters['regex'] = RegexConverter
 
-# Init-DB_Data
-curs.execute(db_change('select name from alist where acl = "owner"'))
-if not curs.fetchall():
-    curs.execute(db_change('insert into alist (name, acl) values ("owner", "owner")'))
-
-if not os.path.exists(load_image_url()):
-    os.makedirs(load_image_url())
-
-if not os.path.exists('views'):
-    os.makedirs('views')
+curs.execute(db_change('select data from other where name = "key"'))
+sql_data = curs.fetchall()
+app.secret_key = sql_data[0][0]
 
 print('----')
 
+# Init-DB_Data
 dislay_set_key = ['Host', 'Port', 'Language', 'Markup', 'Encryption method']
 server_set_key = ['host', 'port', 'language', 'markup', 'encode']
 server_set = {}
@@ -229,7 +219,6 @@ for i in range(len(server_set_key)):
         server_set_val = server_init.init(server_set_key[i])
 
         curs.execute(db_change('insert into other (name, data) values (?, ?)'), [server_set_key[i], server_set_val])
-        conn.commit()
     else:
         server_set_val = server_set_val[0][0]
 
@@ -238,18 +227,6 @@ for i in range(len(server_set_key)):
     server_set[server_set_key[i]] = server_set_val
 
 print('----')
-
-curs.execute(db_change('select data from other where name = "key"'))
-rep_data = curs.fetchall()
-if not rep_data:
-    rep_key = ''.join(random.choice("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") for i in range(16))
-    curs.execute(db_change('insert into other (name, data) values ("key", ?)'), [rep_key])
-else:
-    rep_key = rep_data[0][0]
-
-curs.execute(db_change('select data from other where name = "count_all_title"'))
-if not curs.fetchall():
-    curs.execute(db_change('insert into other (name, data) values ("count_all_title", "0")'))
     
 # Init-DB_care
 if set_data['db_type'] == 'sqlite':
@@ -303,8 +280,6 @@ else:
 
     mysql_dont_off(server_set['port'])
 
-conn.commit()
-
 print('Now running... http://localhost:' + server_set['port'])
 
 if os.path.exists('custom.py'):
@@ -365,9 +340,9 @@ def list_user():
 def list_admin_use():
     return list_admin_use_2(conn)
 
-@app.route('/give_log')
-def list_give():
-    return list_give_2(conn)
+@app.route('/admin_group')
+def list_admin_group():
+    return list_admin_group_2(conn)
 
 @app.route('/please')
 def list_please():
@@ -754,7 +729,7 @@ def main_error_404(e):
     return main_error_404_2(conn)
 
 # End
-app.secret_key = rep_key
+conn.commit()
 
 class NoLoggingWSGIRequestHandler(wsgiref.simple_server.WSGIRequestHandler):
     def log_message(self, format, *args):

+ 1 - 1
route/__init__.py

@@ -27,7 +27,7 @@ from .give_delete_admin_group import *
 from .give_admin import *
 
 # Import-list
-from .list_give import *
+from .list_admin_group import *
 from .list_image_file import *
 from .list_user_topic import *
 from .list_acl import *

+ 5 - 1
route/give_admin_groups.py

@@ -8,6 +8,9 @@ def give_admin_groups_2(conn, name):
     if flask.request.method == 'POST':
         if admin_check(None, 'admin_plus (' + name + ')') != 1:
             return re_error('/error/3')
+        else:
+            if name in ['owner', 'ban']:
+                return re_error('/error/3')
 
         curs.execute(db_change("delete from alist where name = ?"), [name])
         for i in acl_name_list:
@@ -21,6 +24,7 @@ def give_admin_groups_2(conn, name):
         data = ''
         exist_list = ['', '', '', '', '', '', '', '']
         state = 'disabled' if admin_check() != 1 else ''
+        state = 'disabled' if name in get_default_admin_group() else ''
 
         curs.execute(db_change('select acl from alist where name = ?'), [name])
         acl_list = curs.fetchall()
@@ -59,5 +63,5 @@ def give_admin_groups_2(conn, name):
                     <button ''' + state +  ''' type="submit">''' + load_lang('save') + '''</button>
                 </form>
             ''',
-            menu = [['give_log', load_lang('return')]]
+            menu = [['admin_group', load_lang('return')]]
         ))

+ 2 - 2
route/give_delete_admin_group.py

@@ -14,7 +14,7 @@ def give_delete_admin_group_2(conn, name):
 
         conn.commit()
 
-        return redirect('/give_log')
+        return redirect('/admin_group')
     else:
         return easy_minify(flask.render_template(skin_check(),
             imp = [load_lang("delete_admin_group"), wiki_set(), wiki_custom(), wiki_css(['(' + name + ')', 0])],
@@ -23,5 +23,5 @@ def give_delete_admin_group_2(conn, name):
                     <button type=submit>''' + load_lang('start') + '''</button>
                 </form>
             ''',
-            menu = [['give_log', load_lang('return')]]
+            menu = [['admin_group', load_lang('return')]]
         ))  

+ 34 - 0
route/list_admin_group.py

@@ -0,0 +1,34 @@
+from .tool.func import *
+
+def list_admin_group_2(conn):
+    curs = conn.cursor()
+
+    list_data = '<ul class="inside_ul">'
+    org_acl_list = get_default_admin_group()
+
+    curs.execute(db_change("select distinct name from alist order by name asc"))
+    for data in curs.fetchall():            
+        if  admin_check() == 1 and \
+            not data[0] in org_acl_list:
+            delete_admin_group = ' <a href="/delete_admin_group/' + url_pas(data[0]) + '">(' + load_lang("delete") + ')</a>'
+        else:
+            delete_admin_group = ''
+
+        list_data += '' + \
+            '<li>' + \
+                '<a href="/admin_plus/' + url_pas(data[0]) + '">' + data[0] + '</a>' + \
+                delete_admin_group + \
+            '</li>' + \
+        ''
+
+    list_data += '' + \
+        '</ul>' + \
+        '<hr class="main_hr">' + \
+        '<a href="/manager/8">(' + load_lang('add') + ')</a>' + \
+    ''
+
+    return easy_minify(flask.render_template(skin_check(),
+        imp = [load_lang('admin_group_list'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
+        data = list_data,
+        menu = [['manager', load_lang('return')]]
+    ))    

+ 1 - 4
route/list_admin_use.py

@@ -4,10 +4,7 @@ def list_admin_use_2(conn):
     curs = conn.cursor()
 
     num = int(number_check(flask.request.args.get('num', '1')))
-    if num * 50 > 0:
-        sql_num = num * 50 - 50
-    else:
-        sql_num = 0
+    sql_num = (num * 50 - 50) if num * 50 > 0 else 0
 
     if flask.request.method == 'POST':
         return redirect('/admin_log?search=' + flask.request.form.get('search', 'normal'))

+ 0 - 27
route/list_give.py

@@ -1,27 +0,0 @@
-from .tool.func import *
-
-def list_give_2(conn):
-    curs = conn.cursor()
-
-    list_data = '<ul class="inside_ul">'
-    back = ''
-
-    curs.execute(db_change("select distinct name from alist order by name asc"))
-    for data in curs.fetchall():
-        if back != data[0]:
-            back = data[0]
-            
-        if admin_check(None) == 1:
-            delGroupLnk = ' <a href="/delete_admin_group/' + url_pas(data[0]) + '">(' + load_lang("delete") + ')</a>'
-        else:
-            delGroupLnk = ""
-
-        list_data += '<li><a href="/admin_plus/' + url_pas(data[0]) + '">' + data[0] + '</a>' + delGroupLnk + '</li>'
-
-    list_data += '</ul><hr class=\"main_hr\"><a href="/manager/8">(' + load_lang('add') + ')</a>'
-
-    return easy_minify(flask.render_template(skin_check(),
-        imp = [load_lang('admin_group_list'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
-        data = list_data,
-        menu = [['manager', load_lang('return')]]
-    ))    

+ 1 - 1
route/main_manager.py

@@ -37,7 +37,7 @@ def main_manager_2(conn, num, r_ver):
                 <br>
                 <h2>''' + load_lang('owner') + '''</h2>
                 <ul class="inside_ul">
-                    <li><a href="/give_log">''' + load_lang('admin_group_list') + '''</a></li>
+                    <li><a href="/admin_group">''' + load_lang('admin_group_list') + '''</a></li>
                     <li><a href="/many_delete">''' + load_lang('many_delete') + '''</a></li>
                     <li><a href="/applications">''' + load_lang('application_list') + '''</a></li>
                     <li><a href="/api/sitemap.xml">''' + load_lang('get_sitemap') + '''</a></li>

+ 29 - 1
route/tool/func.py

@@ -217,7 +217,8 @@ def update(ver_num, set_data):
                 curs.execute(db_change("update other set data = '' where name = 'recaptcha'"))
                 curs.execute(db_change("update other set data = '' where name = 'sec_re'"))
     
-    if ver_num < 3172800 and set_data['db_type'] == 'mysql':
+    if  ver_num < 3172800 and \
+        set_data['db_type'] == 'mysql':
         get_data_mysql = json.loads(open('data/mysql.json', encoding = 'utf8').read())
         
         with open('data/mysql.json', 'w') as f:
@@ -385,6 +386,18 @@ def update(ver_num, set_data):
 
     print('Update completed')
 
+def set_init_always(ver_num):
+    curs.execute(db_change('delete from other where name = "ver"'))
+    curs.execute(db_change('insert into other (name, data) values ("ver", ?)'), [ver_num])
+    
+    curs.execute(db_change('delete from alist where name = "owner"'))
+    curs.execute(db_change('insert into alist (name, acl) values ("owner", "owner")'))
+
+    if not os.path.exists(load_image_url()):
+        os.makedirs(load_image_url())
+    
+    conn.commit()
+    
 def set_init():
     # 초기값 설정 함수    
     curs.execute(db_change("select html from html_filter where kind = 'email'"))
@@ -414,8 +427,23 @@ def set_init():
             curs.execute(db_change(
                 "insert into other (name, data) values (?, ?)"
             ), [i[0], i[1]])
+            
+    curs.execute(db_change('select data from other where name = "key"'))
+    rep_data = curs.fetchall()
+    if not rep_data:
+        rep_key = ''.join(random.choice("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") for i in range(64))
+        curs.execute(db_change('insert into other (name, data) values ("key", ?)'), [rep_key])
+
+    curs.execute(db_change('select data from other where name = "count_all_title"'))
+    if not curs.fetchall():
+        curs.execute(db_change('insert into other (name, data) values ("count_all_title", "0")'))
+        
+    conn.commit()
 
 # Func-simple
+def get_default_admin_group():
+    return ['owner', 'ban']
+
 def load_image_url():
     curs.execute(db_change('select data from other where name = "image_where"'))
     image_where = curs.fetchall()