Răsfoiți Sursa

함수로 변경

2DU 9 ani în urmă
părinte
comite
59b1a4ea27
2 a modificat fișierele cu 81 adăugiri și 125 ștergeri
  1. 80 125
      app.py
  2. 1 0
      templates/index.html

+ 80 - 125
app.py

@@ -1331,45 +1331,36 @@ def login():
                 
                 
 @app.route('/check/<name>')
 @app.route('/check/<name>')
 def check(name = None, sub = None, number = None):
 def check(name = None, sub = None, number = None):
-    if(session.get('Now') == True):
-        ip = getip(request)
-        curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
-        rows = curs.fetchall()
-        if(rows):
-            if(rows[0]['acl'] == 'owner' or rows[0]['acl'] == 'admin'):
-                m = re.search('(?:[0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)', name)
-                if(m):
-                    curs.execute("select * from login where ip = '" + pymysql.escape_string(name) + "' order by today desc")
-                    row = curs.fetchall()
-                    if(row):
-                        i = 0
-                        c = ''
-                        while True:
-                            try:
-                                c = c + '<table style="width: 100%;"><tbody><tr><td style="text-align: center;width:33.33%;">' + row[i]['user'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['ip'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['today'] + '</td></tr></tbody></table>'
-                            except:
-                                break
-                            i = i + 1
-                        return render_template('index.html', title = '다중 검사', logo = data['name'], tn = 22, rows = c)
-                else:
-                    curs.execute("select * from login where user = '" + pymysql.escape_string(name) + "' order by today desc")
-                    row = curs.fetchall()
-                    if(row):
-                        i = 0
-                        c = ''
-                        while True:
-                            try:
-                                c = c + '<table style="width: 100%;"><tbody><tr><td style="text-align: center;width:33.33%;">' + row[i]['user'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['ip'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['today'] + '</td></tr></tbody></table>'
-                            except:
-                                break
-                            i = i + 1
-                        return render_template('index.html', title = '다중 검사', logo = data['name'], tn = 22, rows = c)
-            else:
-                return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
+    if(admincheck() == 1):
+        m = re.search('(?:[0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)', name)
+        if(m):
+            curs.execute("select * from login where ip = '" + pymysql.escape_string(name) + "' order by today desc")
+            row = curs.fetchall()
+            if(row):
+                i = 0
+                c = ''
+                while True:
+                    try:
+                        c = c + '<table style="width: 100%;"><tbody><tr><td style="text-align: center;width:33.33%;">' + row[i]['user'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['ip'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['today'] + '</td></tr></tbody></table>'
+                    except:
+                        break
+                    i = i + 1
+                return render_template('index.html', title = '다중 검사', logo = data['name'], tn = 22, rows = c)
         else:
         else:
-            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '계정이 없습니다.')
+            curs.execute("select * from login where user = '" + pymysql.escape_string(name) + "' order by today desc")
+            row = curs.fetchall()
+            if(row):
+                i = 0
+                c = ''
+                while True:
+                    try:
+                        c = c + '<table style="width: 100%;"><tbody><tr><td style="text-align: center;width:33.33%;">' + row[i]['user'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['ip'] + '</td><td style="text-align: center;width:33.33%;">' + row[i]['today'] + '</td></tr></tbody></table>'
+                    except:
+                        break
+                    i = i + 1
+                return render_template('index.html', title = '다중 검사', logo = data['name'], tn = 22, rows = c)
     else:
     else:
-        return render_template('index.html', title = '권한 오류', logo = data['name'], data = '비 로그인 상태 입니다.')
+        return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
 
 
 @app.route('/register', methods=['POST', 'GET'])
 @app.route('/register', methods=['POST', 'GET'])
 def register():
 def register():
@@ -1415,109 +1406,73 @@ def logout():
 @app.route('/ban/<name>', methods=['POST', 'GET'])
 @app.route('/ban/<name>', methods=['POST', 'GET'])
 def ban(name = None):
 def ban(name = None):
     if(request.method == 'POST'):
     if(request.method == 'POST'):
-        if(session.get('Now') == True):
-            ip = getip(request)
-            curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
-            rows = curs.fetchall()
-            if(rows):
-                if(rows[0]['acl'] == 'owner' or rows[0]['acl'] == 'admin'):
-                    curs.execute("select * from ban where block = '" + pymysql.escape_string(name) + "'")
-                    row = curs.fetchall()
-                    if(row):
-                        block(name, '해제', getnow(), ip, '')
-                        curs.execute("delete from ban where block = '" + pymysql.escape_string(name) + "'")
-                    else:
-                        b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)$", name)
-                        if(b):
-                            block(name, request.form["end"], getnow(), ip, request.form["why"])
-                            curs.execute("insert into ban (block, end, why, band) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["end"]) + "', '" + pymysql.escape_string(request.form["why"]) + "', 'O')")
-                        else:
-                            block(name, request.form["end"], getnow(), ip, request.form["why"])
-                            curs.execute("insert into ban (block, end, why, band) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["end"]) + "', '" + pymysql.escape_string(request.form["why"]) + "', '')")
-                    conn.commit()
-                    return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(data['frontpage']) + '" />'
-                else:
-                    return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
+        if(admincheck() == 1):
+            curs.execute("select * from ban where block = '" + pymysql.escape_string(name) + "'")
+            row = curs.fetchall()
+            if(row):
+                block(name, '해제', getnow(), ip, '')
+                curs.execute("delete from ban where block = '" + pymysql.escape_string(name) + "'")
             else:
             else:
-                return render_template('index.html', title = '권한 오류', logo = data['name'], data = '계정이 없습니다.')
+                b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)$", name)
+                if(b):
+                    block(name, request.form["end"], getnow(), ip, request.form["why"])
+                    curs.execute("insert into ban (block, end, why, band) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["end"]) + "', '" + pymysql.escape_string(request.form["why"]) + "', 'O')")
+                else:
+                    block(name, request.form["end"], getnow(), ip, request.form["why"])
+                    curs.execute("insert into ban (block, end, why, band) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["end"]) + "', '" + pymysql.escape_string(request.form["why"]) + "', '')")
+            conn.commit()
+            return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(data['frontpage']) + '" />'
         else:
         else:
-            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '비 로그인 상태 입니다.')
+            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
     else:
     else:
-        if(session.get('Now') == True):
-            ip = getip(request)
-            curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
-            rows = curs.fetchall()
-            if(rows):
-                if(rows[0]['acl'] == 'owner' or rows[0]['acl'] == 'admin'):
-                    curs.execute("select * from ban where block = '" + pymysql.escape_string(name) + "'")
-                    row = curs.fetchall()
-                    if(row):
-                        now = '차단 해제'
-                    else:
-                        b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)$", name)
-                        if(b):
-                            now = '대역 차단'
-                        else:
-                            now = '차단'
-                    return render_template('index.html', title = name, page = parse.quote(name), logo = data['name'], tn = 16, now = now, today = getnow())
-                else:
-                    return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
+        if(admincheck() == 1):
+            curs.execute("select * from ban where block = '" + pymysql.escape_string(name) + "'")
+            row = curs.fetchall()
+            if(row):
+                now = '차단 해제'
             else:
             else:
-                return render_template('index.html', title = '권한 오류', logo = data['name'], data = '계정이 없습니다.')
+                b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)$", name)
+                if(b):
+                    now = '대역 차단'
+                else:
+                    now = '차단'
+            return render_template('index.html', title = name, page = parse.quote(name), logo = data['name'], tn = 16, now = now, today = getnow())
         else:
         else:
-            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '비 로그인 상태 입니다.')
+            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
 
 
 @app.route('/acl/<name>', methods=['POST', 'GET'])
 @app.route('/acl/<name>', methods=['POST', 'GET'])
 def acl(name = None):
 def acl(name = None):
     if(request.method == 'POST'):
     if(request.method == 'POST'):
-        if(session.get('Now') == True):
-            ip = getip(request)
-            curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
-            rows = curs.fetchall()
-            if(rows):
-                if(rows[0]['acl'] == 'owner' or rows[0]['acl'] == 'admin'):
-                    curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-                    row = curs.fetchall()
-                    if(row):
-                        if(request.form["select"] == 'admin'):
-                           curs.execute("update data set acl = 'admin' where title = '" + pymysql.escape_string(name) + "'")
-                        elif(request.form["select"] == 'user'):
-                            curs.execute("update data set acl = 'user' where title = '" + pymysql.escape_string(name) + "'")
-                        else:
-                            curs.execute("update data set acl = '' where title = '" + pymysql.escape_string(name) + "'")
-                        conn.commit()
-                    return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name) + '" />' 
+        if(admincheck() == 1):
+            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+            row = curs.fetchall()
+            if(row):
+                if(request.form["select"] == 'admin'):
+                   curs.execute("update data set acl = 'admin' where title = '" + pymysql.escape_string(name) + "'")
+                elif(request.form["select"] == 'user'):
+                    curs.execute("update data set acl = 'user' where title = '" + pymysql.escape_string(name) + "'")
                 else:
                 else:
-                    return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
-            else:
-                return render_template('index.html', title = '권한 오류', logo = data['name'], data = '계정이 없습니다.')
+                    curs.execute("update data set acl = '' where title = '" + pymysql.escape_string(name) + "'")
+                conn.commit()
+            return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name) + '" />' 
         else:
         else:
-            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '비 로그인 상태 입니다.')
+            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
     else:
     else:
-        if(session.get('Now') == True):
-            ip = getip(request)
-            curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
-            rows = curs.fetchall()
-            if(rows):
-                if(rows[0]['acl'] == 'owner' or rows[0]['acl'] == 'admin'):
-                    curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-                    row = curs.fetchall()
-                    if(row):
-                        if(row[0]['acl'] == 'admin'):
-                            now = '관리자만'
-                        elif(row[0]['acl'] == 'user'):
-                            now = '유저 이상'
-                        else:
-                            now = '일반'
-                        return render_template('index.html', title = name, page = parse.quote(name), logo = data['name'], tn = 19, now = '현재 ACL 상태는 ' + now)
-                    else:
-                        return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name) + '" />' 
+        if(admincheck() == 1):
+            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+            row = curs.fetchall()
+            if(row):
+                if(row[0]['acl'] == 'admin'):
+                    now = '관리자만'
+                elif(row[0]['acl'] == 'user'):
+                    now = '유저 이상'
                 else:
                 else:
-                    return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
+                    now = '일반'
+                return render_template('index.html', title = name, page = parse.quote(name), logo = data['name'], tn = 19, now = '현재 ACL 상태는 ' + now)
             else:
             else:
-                return render_template('index.html', title = '권한 오류', logo = data['name'], data = '계정이 없습니다.')
+                return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name) + '" />' 
         else:
         else:
-            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '비 로그인 상태 입니다.')
+            return render_template('index.html', title = '권한 오류', logo = data['name'], data = '권한이 모자랍니다.')
 
 
 @app.route('/admin/<name>', methods=['POST', 'GET'])
 @app.route('/admin/<name>', methods=['POST', 'GET'])
 def admin(name = None):
 def admin(name = None):

+ 1 - 0
templates/index.html

@@ -315,6 +315,7 @@
                 <h2>1.3 (진행중)</h2>
                 <h2>1.3 (진행중)</h2>
                 <li>토론 목록 보강</li>
                 <li>토론 목록 보강</li>
                 <li>설계 약간 변경</li>
                 <li>설계 약간 변경</li>
+                <li>비 효율적으로 돌아가던거 수정 (완료)</li>
                 <li>하위 문서 지원</li>
                 <li>하위 문서 지원</li>
                 <li>관리자 기능의 접근성 향상 (완료)</li>
                 <li>관리자 기능의 접근성 향상 (완료)</li>
                 <h2>1.4</h2>
                 <h2>1.4</h2>