diff --git a/.sequelizerc.example b/.sequelizerc.example new file mode 100644 index 0000000..29a0d14 --- /dev/null +++ b/.sequelizerc.example @@ -0,0 +1,8 @@ +var path = require('path'); + +module.exports = { + 'config': path.resolve('config.json'), + 'migrations-path': path.resolve('lib', 'migrations'), + 'models-path': path.resolve('lib', 'models'), + 'url': 'change this' +} \ No newline at end of file diff --git a/config.json.example b/config.json.example new file mode 100644 index 0000000..22fd5c9 --- /dev/null +++ b/config.json.example @@ -0,0 +1,52 @@ +{ + "development": { + "domain": "localhost", + "db": { + "username": "", + "password": "", + "database": "hackmd", + "host": "localhost", + "port": "3306", + "dialect": "mysql" + } + }, + "production": { + "domain": "localhost", + "db": { + "username": "", + "password": "", + "database": "hackmd", + "host": "localhost", + "port": "5432", + "dialect": "postgres" + }, + "facebook": { + "clientID": "change this", + "clientSecret": "change this" + }, + "twitter": { + "consumerKey": "change this", + "consumerSecret": "change this" + }, + "github": { + "clientID": "change this", + "clientSecret": "change this" + }, + "gitlab": { + "baseURL": "change this", + "clientID": "change this", + "clientSecret": "change this" + }, + "dropbox": { + "clientID": "change this", + "clientSecret": "change this" + }, + "google": { + "clientID": "change this", + "clientSecret": "change this" + }, + "imgur": { + "clientID": "change this" + } + } +} diff --git a/public/js/common.js.example b/public/js/common.js.example new file mode 100644 index 0000000..11c32ac --- /dev/null +++ b/public/js/common.js.example @@ -0,0 +1,95 @@ +//common +var domain = ''; // domain name +var urlpath = ''; // sub url path, like: www.example.com/ +//settings +var debug = false; + +var GOOGLE_API_KEY = ''; +var GOOGLE_CLIENT_ID = ''; + +var DROPBOX_APP_KEY = ''; + +var port = window.location.port; +var serverurl = window.location.protocol + '//' + (domain ? domain : window.location.hostname) + (port ? ':' + port : '') + (urlpath ? '/' + urlpath : ''); +var noteid = urlpath ? window.location.pathname.slice(urlpath.length + 1, window.location.pathname.length).split('/')[1] : window.location.pathname.split('/')[1]; +var noteurl = serverurl + '/' + noteid; + +var version = '0.4.4'; + +var checkAuth = false; +var profile = null; +var lastLoginState = getLoginState(); +var lastUserId = getUserId(); +var loginStateChangeEvent = null; + +function resetCheckAuth() { + checkAuth = false; +} + +function setLoginState(bool, id) { + Cookies.set('loginstate', bool, { + expires: 365 + }); + if (id) { + Cookies.set('userid', id, { + expires: 365 + }); + } else { + Cookies.remove('userid'); + } + lastLoginState = bool; + lastUserId = id; + checkLoginStateChanged(); +} + +function checkLoginStateChanged() { + if (getLoginState() != lastLoginState || getUserId() != lastUserId) { + if(loginStateChangeEvent) + loginStateChangeEvent(); + return true; + } else { + return false; + } +} + +function getLoginState() { + var state = Cookies.get('loginstate'); + return state === "true" || state === true; +} + +function getUserId() { + return Cookies.get('userid'); +} + +function clearLoginState() { + Cookies.remove('loginstate'); +} + +function checkIfAuth(yesCallback, noCallback) { + var cookieLoginState = getLoginState(); + if (checkLoginStateChanged()) + checkAuth = false; + if (!checkAuth || typeof cookieLoginState == 'undefined') { + $.get(serverurl + '/me') + .done(function (data) { + if (data && data.status == 'ok') { + profile = data; + yesCallback(profile); + setLoginState(true, data.id); + } else { + noCallback(); + setLoginState(false); + } + }) + .fail(function () { + noCallback(); + }) + .always(function () { + checkAuth = true; + }); + } else if (cookieLoginState) { + yesCallback(profile); + } else { + noCallback(); + } +} \ No newline at end of file