link student working
This commit is contained in:
parent
512a69319c
commit
5540ac6d81
4 changed files with 84 additions and 73 deletions
|
|
@ -11,21 +11,11 @@ router.get('/selfservice/api', function (req, res) {
|
|||
// username is the UPN
|
||||
let username = req.user.username;
|
||||
attributes = ['dn', 'memberOf'];
|
||||
directory.queryUser(username, attributes, function(err, user) {
|
||||
if (err) {
|
||||
console.log('Error:', err);
|
||||
}
|
||||
else {
|
||||
console.log('User:', user);
|
||||
response += 'Username: ' + req.user.username + '<br>';
|
||||
response += 'First Name: ' + req.user.first_name + '<br>';
|
||||
response += 'Last Name: ' + req.user.last_name + '<br>';
|
||||
usertype_str_map = ['Unknown', 'Student', 'Parent'];
|
||||
response += 'User Type: ' + usertype_str_map[directory.getUserType(req, res)] + '<br>';
|
||||
response += '<a href="/selfservice/api/logout">Logout</a>';
|
||||
res.send(response);
|
||||
}
|
||||
});
|
||||
response += 'Username: ' + req.user.username + '<br>';
|
||||
response += 'First Name: ' + req.user.first_name + '<br>';
|
||||
response += 'Last Name: ' + req.user.last_name + '<br>';
|
||||
response += '<a href="/selfservice/api/logout">Logout</a>';
|
||||
res.send(response);
|
||||
}
|
||||
else {
|
||||
response += '<a href="/selfservice/api/login">Login</a>';
|
||||
|
|
|
|||
|
|
@ -3,36 +3,39 @@
|
|||
let express = require('express');
|
||||
let router = express.Router();
|
||||
let passport = require('passport');
|
||||
let directory = require('../directory.js');
|
||||
let database = require('../config/database.js');
|
||||
|
||||
// Consume the pairing code
|
||||
// Return the student's UPN then delete the pairing code
|
||||
function consumePairingCode(pairing_code, callback) {
|
||||
let sql = 'SELECT upn FROM ps_pairing_codes WHERE pairing_code = ?';
|
||||
database.query(sql, pairing_code, function (err, result) {
|
||||
if (err) {
|
||||
console.log('Error:', err);
|
||||
return callback(err, null);
|
||||
} else {
|
||||
if (result.length === 0) {
|
||||
return callback(null, null);
|
||||
async function consumePairingCode(pairing_code) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let sql = 'SELECT upn FROM ps_pairing_codes WHERE pairing_code = ?';
|
||||
database.query(sql, pairing_code, function (err, result) {
|
||||
if (err) {
|
||||
console.log('Error:', err);
|
||||
reject(err);
|
||||
} else {
|
||||
let upn = result[0].upn;
|
||||
let sql = 'DELETE FROM ps_pairing_codes WHERE pairing_code = ?';
|
||||
database.query(sql, pairing_code, function (err, result) {
|
||||
if (err) {
|
||||
console.log('Error:', err);
|
||||
} else {
|
||||
console.log('Pairing code consumed');
|
||||
}
|
||||
});
|
||||
return callback(null, upn);
|
||||
if (result.length === 0) {
|
||||
resolve(null);
|
||||
} else {
|
||||
let upn = result[0].upn;
|
||||
let deleteSql = 'DELETE FROM ps_pairing_codes WHERE pairing_code = ?';
|
||||
database.query(deleteSql, pairing_code, function (err, result) {
|
||||
if (err) {
|
||||
console.log('Error:', err);
|
||||
} else {
|
||||
console.log('Pairing code consumed');
|
||||
}
|
||||
});
|
||||
resolve(upn);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
router.get('/parent/:parent_upn/add-student', function (req, res) {
|
||||
router.get('/parent/:parent_upn/add-student', async function (req, res) {
|
||||
if(!req.isAuthenticated()) {
|
||||
return res.status(401).send('Unauthorized');
|
||||
}
|
||||
|
|
@ -52,17 +55,12 @@ router.get('/parent/:parent_upn/add-student', function (req, res) {
|
|||
return res.status(400).send('Bad Request, pairing_code missing');
|
||||
}
|
||||
let student_upn = '';
|
||||
consumePairingCode(pairing_code, function (err, upn) {
|
||||
if (err) {
|
||||
return res.status(500).send('Internal Server Error');
|
||||
}
|
||||
if (upn === null) {
|
||||
return res.status(404).send('Invalid pairing code');
|
||||
}
|
||||
student_upn = upn;
|
||||
res.send('Student added');
|
||||
// Set the LDAP attribute parent to the parent's UPN in the student's LDAP entry
|
||||
});
|
||||
let student = await consumePairingCode(pairing_code);
|
||||
if (!student) {
|
||||
return res.status(404).send('Not Found, pairing_code not found');
|
||||
}
|
||||
await directory.setPrimaryParent(student, parent_upn);
|
||||
res.send('Student added');
|
||||
});
|
||||
|
||||
router.get('/parent/:parent_upn', function (req, res) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue