2DU před 9 roky
rodič
revize
bb60158cda
2 změnil soubory, kde provedl 95 přidání a 31 odebrání
  1. 94 30
      app.py
  2. 1 1
      templates/index.html

+ 94 - 30
app.py

@@ -1285,45 +1285,98 @@ def revert(name = None, number = None):
 @app.route('/edit/<path:name>', methods=['POST', 'GET'])
 def edit(name = None):
     if(request.method == 'POST'):
-        curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-        rows = curs.fetchall()
-        if(rows):
+        m = re.search("^사용자:(.*)", name)
+        if(m):
+            g = m.groups()
             ip = getip(request)
-            can = getcan(ip, name)
-            if(can == 1):
-                return '<meta http-equiv="refresh" content="0;url=/ban" />'
+            if(ip == g[0]):
+                if(re.search("\.", g[0])):
+                    return render_template('index.html', title = '사문 오류', logo = data['name'], data = '사문을 사용하려면 로그인 해야 합니다.')
+                else:
+                    curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+                    rows = curs.fetchall()
+                    if(rows):
+                        can = getcan(ip, name)
+                        if(can == 1):
+                            return '<meta http-equiv="refresh" content="0;url=/ban" />'
+                        else:
+                            today = getnow()
+                            leng = getleng(len(rows[0]['data']), len(request.form["content"]))
+                            recent(name, ip, today, request.form["send"], leng)
+                            history(name, request.form["content"], today, ip, request.form["send"], leng)
+                            curs.execute("update data set data = '" + pymysql.escape_string(request.form["content"]) + "' where title = '" + pymysql.escape_string(name) + "'")
+                            conn.commit()
+                    else:
+                        ip = getip(request)
+                        can = getcan(ip, name)
+                        if(can == 1):
+                            return '<meta http-equiv="refresh" content="0;url=/ban" />'
+                        else:
+                            today = getnow()
+                            leng = '+' + str(len(request.form["content"]))
+                            recent(name, ip, today, request.form["send"], leng)
+                            history(name, request.form["content"], today, ip, request.form["send"], leng)
+                            curs.execute("insert into data (title, data, acl) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["content"]) + "', '')")
+                            conn.commit()
+                    return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
             else:
-                today = getnow()
-                leng = getleng(len(rows[0]['data']), len(request.form["content"]))
-                recent(name, ip, today, request.form["send"], leng)
-                history(name, request.form["content"], today, ip, request.form["send"], leng)
-                curs.execute("update data set data = '" + pymysql.escape_string(request.form["content"]) + "' where title = '" + pymysql.escape_string(name) + "'")
-                conn.commit()
+                return render_template('index.html', title = '사문 오류', logo = data['name'], data = '본인 사문이 아닙니다.')
         else:
-            ip = getip(request)
-            can = getcan(ip, name)
-            if(can == 1):
-                return '<meta http-equiv="refresh" content="0;url=/ban" />'
+            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+            rows = curs.fetchall()
+            if(rows):
+                ip = getip(request)
+                can = getcan(ip, name)
+                if(can == 1):
+                    return '<meta http-equiv="refresh" content="0;url=/ban" />'
+                else:
+                    today = getnow()
+                    leng = getleng(len(rows[0]['data']), len(request.form["content"]))
+                    recent(name, ip, today, request.form["send"], leng)
+                    history(name, request.form["content"], today, ip, request.form["send"], leng)
+                    curs.execute("update data set data = '" + pymysql.escape_string(request.form["content"]) + "' where title = '" + pymysql.escape_string(name) + "'")
+                    conn.commit()
             else:
-                today = getnow()
-                leng = '+' + str(len(request.form["content"]))
-                recent(name, ip, today, request.form["send"], leng)
-                history(name, request.form["content"], today, ip, request.form["send"], leng)
-                curs.execute("insert into data (title, data, acl) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["content"]) + "', '')")
-                conn.commit()
-        return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
+                ip = getip(request)
+                can = getcan(ip, name)
+                if(can == 1):
+                    return '<meta http-equiv="refresh" content="0;url=/ban" />'
+                else:
+                    today = getnow()
+                    leng = '+' + str(len(request.form["content"]))
+                    recent(name, ip, today, request.form["send"], leng)
+                    history(name, request.form["content"], today, ip, request.form["send"], leng)
+                    curs.execute("insert into data (title, data, acl) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["content"]) + "', '')")
+                    conn.commit()
+            return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
     else:
         ip = getip(request)
         can = getcan(ip, name)
         if(can == 1):
             return '<meta http-equiv="refresh" content="0;url=/ban" />'
         else:
-            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-            rows = curs.fetchall()
-            if(rows):
-                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2)
+            m = re.search("^사용자:(.*)", name)
+            if(m):
+                g = m.groups()
+                if(ip == g[0]):
+                    if(re.search("\.", g[0])):
+                        return render_template('index.html', title = '사문 오류', logo = data['name'], data = '사문을 사용하려면 로그인 해야 합니다.')
+                    else:
+                        curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+                        rows = curs.fetchall()
+                        if(rows):
+                            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2)
+                        else:
+                            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2)
+                else:
+                    return render_template('index.html', title = '사문 오류', logo = data['name'], data = '본인 사문이 아닙니다.')
             else:
-                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2)
+                curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+                rows = curs.fetchall()
+                if(rows):
+                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2)
+                else:
+                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2)
                 
 @app.route('/preview/<path:name>', methods=['POST'])
 def preview(name = None):
@@ -1341,7 +1394,18 @@ def preview(name = None):
             left = result[0]
         else:
             left = ''
-        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left)
+        m = re.search("^사용자:(.*)", name)
+        if(m):
+            g = m.groups()
+            if(ip == g[0]):
+                if(re.search("\.", g[0])):
+                    return render_template('index.html', title = '사문 오류', logo = data['name'], data = '사문을 사용하려면 로그인 해야 합니다.')
+                else:
+                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left)
+            else:
+                return render_template('index.html', title = '사문 오류', logo = data['name'], data = '본인 사문이 아닙니다.')
+        else:
+            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left)
 
 @app.route('/delete/<path:name>', methods=['POST', 'GET'])
 def delete(name = None):
@@ -1392,7 +1456,7 @@ def move(name = None):
                 curs.execute("select * from history where title = '" + pymysql.escape_string(request.form["title"]) + "'")
                 row = curs.fetchall()
                 if(row):
-                     return render_template('index.html', title = '이동 오류', logo = data['name'], data = '이동 하려는 곳에 문서가 이미 있습니다.')
+                    return render_template('index.html', title = '이동 오류', logo = data['name'], data = '이동 하려는 곳에 문서가 이미 있습니다.')
                 else:
                     recent(name, ip, today, '문서를 <a href="/w/' + pymysql.escape_string(parse.quote(request.form["title"]).replace('/','%2F')) + '">' + pymysql.escape_string(request.form["title"]) + '</a> 문서로 이동 했습니다.', leng)
                     history(name, rows[0]['data'], today, ip, '<a href="/w/' + pymysql.escape_string(parse.quote(name).replace('/','%2F')) + '">' + pymysql.escape_string(name) + '</a> 문서를 <a href="/w/' + pymysql.escape_string(parse.quote(request.form["title"]).replace('/','%2F')) + '">' + pymysql.escape_string(request.form["title"]) + '</a> 문서로 이동 했습니다.', leng)

+ 1 - 1
templates/index.html

@@ -321,7 +321,7 @@
                 <li>대규모도 편하게 접근되게</li>
                 <h2>1.4 (진행중)</h2>
                 <li>관리자 기능 접근성</li>
-                <li>사용자 문서 생성</li>
+                <li>사용자 문서 (완료)</li>
                 <li>파일 문서 생성</li>
                 <li>검색 기능 수정 (완료)</li>
 				<h2>계속</h2>