1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #controllers/login.py import os, config, lib, uuid from pytz import timezone from datetime import datetime from bottle import route, template, request, response, redirect from models import userdb, postdb, categorydb def checkLogin(username, password): if (username = = 'Guest' ) and (password = = 'password' ): return True elif userdb.check(username,password): return True else : return False def getTimeZone(): khtz = timezone( 'Asia/Phnom_Penh' ) date = datetime.now().astimezone(tz = khtz).strftime( '%d-%m-%Y' ) time = datetime.now().astimezone(tz = khtz).strftime( '%H:%M:%S' ) return (date, time) @route ( '/signup' , method = "POST" ) def signup(): username = request.forms.get( 'fusername' ) password = request.forms.get( 'fpassword' ) rights = request.forms.get( 'frights' ) email = request.forms.get( 'femail' ) userdb.insert(username, password, rights, email) redirect( '/login' ) @route ( '/upload' ) def upload(): return template( 'dashboard/upload' , data = config.kargs) @route ( '/upload' , method = 'POST' ) def saveFile(): upload = request.files.get( 'fupload' ) name, ext = os.path.splitext(upload.filename) if ext not in ( '.png' , '.jpg' , '.jpeg' ): return 'File extension not allowed.' upload.filename = str (uuid.uuid4(). int ) + ext ROOT_DIR = os.path.dirname(os.path.abspath( "config.py" )) savePath = ROOT_DIR + "/public/images/uploads/" config.kargs[ 'uploadUrl' ] = "/static/images/uploads/" + upload.filename upload.save(savePath) return template( 'dashboard/uploadurl' , data = config.kargs) @route ( '/login' , method = "POST" ) def user(): username = request.forms.get( 'fusername' ) password = request.forms.get( 'fpassword' ) if checkLogin(username, password): response.set_cookie( "logged-in" , username, secret = config.kargs[ 'secretKey' ]) redirect( '/login' ) @route ( '/login' ) def login(): user = userdb.createTable() username = request.get_cookie( "logged-in" , secret = config.kargs[ 'secretKey' ]) if not user: return template( 'dashboard/signup' , data = config.kargs) elif username: config.kargs[ 'author' ] = username config.kargs[ 'blogTitle' ] = "ទំព័រគ្រប់គ្រង" config.kargs[ 'datetime' ] = getTimeZone() config.kargs[ 'posts' ] = postdb.select(config.kargs[ 'dashboardPostLimit' ]) config.kargs[ 'categories' ] = categorydb.select(amount = "all" ) config.kargs[ 'thumbs' ] = lib.getPostThumbs(config.kargs[ 'posts' ]) config.kargs[ 'page' ] = 1 return template( 'dashboard/home' , data = config.kargs) else : return template( 'login' , data = config.kargs) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!--views/dashboard/upload.tpl--> <!DOCTYPE html> < html > < head > < meta charset = "UTF-8" /> < meta name = "viewport" content = "width=device-width, initial-scale=1.0" /> < title >{{data['blogTitle']}}</ title > < link href = "/static/styles/upload.css" rel = "stylesheet" ></ link > < link href = "/static/images/site_logo.png" rel = "icon" ></ link > < link href = "/static/fonts/setup.css" rel = "stylesheet" ></ link > </ head > < body > < form id = 'upload' action = "/upload" method = "POST" enctype = "multipart/form-data" > < a >ជ្រើសរើសឯកសារៈ</ a >< input type = "file" name = "fupload" /> < a ></ a >< input type = 'submit' value = "ចំលងទុកក្នុងគេហទំព័រ" /> </ form > </ body > </ html > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <!--views/dashboard/uploadurl.tpl--> <!DOCTYPE html> < html > < head > < meta charset = "UTF-8" /> < meta name = "viewport" content = "width=device-width, initial-scale=1.0" /> < title >{{data['blogTitle']}}</ title > < script src = "/static/scripts/jQuery.js" ></ script > < link href = "/static/styles/upload.css" rel = "stylesheet" ></ link > < link href = "/static/images/site_logo.png" rel = "icon" ></ link > < link href = "/static/fonts/setup.css" rel = "stylesheet" ></ link > </ head > < body > < div id = "upload" > < input id = "copy" type = "button" value = "ចំលងតំណរភ្ជាប់" />< input class = "url" type = "text" value = "{{data['uploadUrl']}}" /> < script > $('#copy').click(function(){ $(this).siblings('input.url').select(); document.execCommand("copy"); window.close(); }); </ script > </ div > </ body > </ html > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /*public/css/login.css*/ body{ background : lightgrey; position : relative ; } #upload{ width : 500px ; background : lavender; margin : 30px auto ; padding : 10px ; display : grid; grid-template-columns: 140px auto ; grid-gap: 10px ; font : 14px / 1.5 OdorMeanChey; position : absolute ; left : 50% ; transform: translate( -50% , 0 ); } #upload input{ padding : 10px ; } #upload input[type=file]{ border : 1px solid black ; } #upload input[type=button], #upload input[type=submit]{ font : 14px / 1.5 OdorMeanChey; } #upload a{ text-align : right ; padding : 10px 0 ; } @media only screen and ( max-width : 600px ){ #upload{ grid-template-columns: 100% ; width : 100% ; } #upload a{ text-align : left ; padding : 0 ; } } |
GitHub: https://github.com/Sokhavuth/kwblog
Heroku: https://khmerweb-kwblog.herokuapp.com/