Added a top bar for controlling logging in and logging out.
This commit is contained in:
parent
a7c1c87859
commit
abd175136a
13
auth.js
13
auth.js
|
@ -4,6 +4,7 @@ var https = require('socks5-https-client');
|
|||
|
||||
var crypt = require('./crypt');
|
||||
var config = require('./configuration');
|
||||
var lookup = require('./lookup');
|
||||
|
||||
function get_login(username, password, callback) {
|
||||
var login = qs.stringify({
|
||||
|
@ -59,21 +60,23 @@ function logout(req, res) {
|
|||
|
||||
function is(req, res, next) {
|
||||
var cookies = qs.parse(req.headers.cookie.replace(/\s/g, ''), ';', '=');
|
||||
console.log(cookies);
|
||||
if (!cookies.username || !cookies.password) {next(); return;}
|
||||
|
||||
var username = crypt.decrypt(cookies.username),
|
||||
password = crypt.decrypt(cookies.password);
|
||||
console.log(username, password);
|
||||
|
||||
get_login(username, password, function (legit) {
|
||||
if (legit) {
|
||||
console.log('Username and password were legit');
|
||||
req.headers.username = username;
|
||||
req.query.name = username;
|
||||
lookup.api(req, function (database_entry) {
|
||||
req.headers.user = database_entry.data[0];
|
||||
next();
|
||||
});
|
||||
// req.headers.password = password;
|
||||
}
|
||||
|
||||
else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@ module.exports = function () {
|
|||
],
|
||||
'school_id' : 934,
|
||||
'links' : {
|
||||
'Login': ['#', '#96AA48'],
|
||||
'Magister': ['http://werkman.magister.net', '#0C5489'],
|
||||
'Login': ['http://roosters5.gepro-osi.nl/roosters/rooster.php?school=INSERTYOURSCHOOL_ID', '#CCCC99'],
|
||||
'Magister': ['http://INSERTYOURMAGISTER.magister.net', '#0C5489'],
|
||||
'Mail': ['https://login.microsoftonline.com/', '#C41824']
|
||||
},
|
||||
'spider_timeout' : 1000
|
||||
|
|
|
@ -12,8 +12,7 @@ function get(req, res, next, search) {
|
|||
easter(search) ? search = easter(search).name : null; //Check if there are any eastereggs matching the search query.
|
||||
search = new RegExp(search, 'i'); //Make regular exeption for ignoring the case (Bram vs BRAM) should return the same.
|
||||
|
||||
|
||||
index.find({$or : [{id : search}, {name : search}, {first_name : search}, {last_name : search}]}).toArray(function (err, database_entry) {
|
||||
index.find({$or : [{id : search}, {name : search}, {first_name : search}, {last_name : search}, {username: search}]}).toArray(function (err, database_entry) {
|
||||
if (err) console.warn(err);
|
||||
|
||||
if (database_entry.length == 1) {
|
||||
|
@ -35,7 +34,7 @@ function api(req, callback) {
|
|||
var index = database.collection('index');
|
||||
var query = RegExp(req.query.name, 'i');
|
||||
|
||||
index.find({$or : [{id : query}, {name : query}, {first_name : query}, {last_name : query}]}).toArray(function (err, database_entry) {
|
||||
index.find({$or : [{id : query}, {name : query}, {first_name : query}, {last_name : query}, {username: query}]}).toArray(function (err, database_entry) {
|
||||
if (err) callback({'error': err});
|
||||
else {
|
||||
for (entry of database_entry) {entry.url = make_url(req, entry)}
|
||||
|
|
|
@ -15,19 +15,24 @@ html
|
|||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-46880644-1', 'werkmanrooster.nl');ga('send', 'pageview');ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
|
||||
body
|
||||
div.bar
|
||||
if headers.user
|
||||
ul.left
|
||||
li Hey, #{headers.user.first_name}
|
||||
li |
|
||||
li
|
||||
a(href="/rooster/#{headers.user.id}") Jouw Rooster
|
||||
li
|
||||
a(href=headers.user.url, target="_blank") Andere roostersite
|
||||
|
||||
//- div.motd
|
||||
//- p
|
||||
//- | Hey jongens, het is weer tijd voor een nieuwe versie van Werkmanrooster. <br>
|
||||
//- | Hij is nog niet helemaal af maar het komt allemaal bij elkaar. <br>
|
||||
//- | De volgende dingen zijn niet meer te doen : <br>
|
||||
//- | * Inloggen <br>
|
||||
//- | * Cijfers bekijken <br>
|
||||
//- | * Instellingen veranderen <br>
|
||||
//- | * Useless button <br>
|
||||
//- | Als je wil, vul je een <a href="https://docs.google.com/forms/d/1MBf7ncF8BQc4f7B8EfXZyuvRdIhLYmhgGB2vcdb02gw/viewform?c=0&w=1">enquette</a> waarin je feedback kan achterlaten. <br>
|
||||
//- | Alvast bedankt! <br>
|
||||
//- | -B
|
||||
ul.right
|
||||
li
|
||||
a(href="/logout") Logout
|
||||
|
||||
|
||||
else
|
||||
ul
|
||||
li
|
||||
a(href="/login") Login
|
||||
|
||||
h1#title(class=url == '/' ? 'big' : '') Werkmanrooster
|
||||
span V
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
//- login.jade
|
||||
include header
|
||||
|
||||
form(action="/login", method="post")
|
||||
.login
|
||||
form(action="/login", method="post")
|
||||
div
|
||||
label Username
|
||||
label Gebruikersnaam
|
||||
input(type="text", name="username")
|
||||
div
|
||||
label Password
|
||||
label Wachtwoord
|
||||
input(type="password", name="password")
|
||||
div
|
||||
input(type="submit", value="Log In")
|
||||
|
||||
div=user
|
||||
input(type="submit", value="Log In").button-primary
|
||||
|
|
|
@ -77,10 +77,40 @@ input.search {
|
|||
}
|
||||
|
||||
.bar {
|
||||
height: 10px;
|
||||
height: 20px;
|
||||
width: 100%;
|
||||
background-color: #96aa48;
|
||||
margin-bottom: 50px;
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
display: inline;
|
||||
|
||||
&.right li {
|
||||
float: right;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
margin: 0 7px;
|
||||
font-size: 13px;
|
||||
color: #FFF;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
|
||||
&:hover {
|
||||
color: #DDD;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: #CCC;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
h1#title {
|
||||
|
@ -287,4 +317,10 @@ div.schedule {
|
|||
}
|
||||
}
|
||||
|
||||
.login {
|
||||
margin: 0 auto;
|
||||
width: 200px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@import "mobile";
|
||||
|
|
4
web.js
4
web.js
|
@ -31,10 +31,11 @@ app.get('/', auth.is, function (req, res) {
|
|||
});
|
||||
|
||||
app.get('/login', function (req, res) {
|
||||
res.render('login');
|
||||
res.render('login', req);
|
||||
});
|
||||
|
||||
app.post('/login', auth.login);
|
||||
app.get('/logout', auth.logout);
|
||||
|
||||
app.get('/api/:api', function (req, res, next) { next(); });
|
||||
app.param('api', api);
|
||||
|
@ -43,6 +44,7 @@ app.get('/rooster/:search', function (req, res, next) {
|
|||
next();
|
||||
});
|
||||
|
||||
app.param('search', auth.is);
|
||||
app.param('search', lookup.get);
|
||||
app.param('search', schedule.get);
|
||||
|
||||
|
|
Loading…
Reference in a new issue