issue #845 fixed

parent e30fb526
...@@ -144,7 +144,7 @@ module.exports = { ...@@ -144,7 +144,7 @@ module.exports = {
else if (stu_sup && !req.token.office) else if (stu_sup && !req.token.office)
student.supervision = 1; // requester is tutor of the studend student.supervision = 1; // requester is tutor of the studend
else if (stu_sup && req.token.office && student.office == req.token.office.id) else if (stu_sup && req.token.office && student.office == req.token.office.id)
student.supervision = 2; // requester is supervisor of student student.supervision = 2; // requester is supervisor of student
if (student.supervision == -1) // should not hace access!!! if (student.supervision == -1) // should not hace access!!!
return res.forbidden("Access to this student should not be granted to you"); return res.forbidden("Access to this student should not be granted to you");
......
...@@ -266,20 +266,14 @@ module.exports = { ...@@ -266,20 +266,14 @@ module.exports = {
// student // student
supervisors: function(id_stu, callback) { supervisors: function(id_stu, callback) {
StuSup.find({id_stu: id_stu}).populate('supervisor').exec(function(err, stuSups) { StuSup.find({id_stu: id_stu}).populate('supervisor').exec(function(err, stuSups) {
var l = [];
if (err || !stuSups || stuSups.length == 0) if (err)
return callback(err, l); return callback(err, []);
if (!stuSups || stuSups.length == 0)
return callback(new Error("No supervisors found"), []);
async.eachSeries(stuSups, var sups = stuSups.map((st) => {return st.supervisor});
function(stuSup, next) { return callback(null, sups);
l.push(stuSup.supervisor);
next();
},
function (err) {
return callback(err, l);
}
);
}); });
}, },
......
...@@ -28,8 +28,11 @@ module.exports = function isSupervisorOfStudentOrIsSupAdmin(req, res, next) { ...@@ -28,8 +28,11 @@ module.exports = function isSupervisorOfStudentOrIsSupAdmin(req, res, next) {
sails.log.debug(`Supervisor ${supervisorId} is assigned to Student ${studentId}`); sails.log.debug(`Supervisor ${supervisorId} is assigned to Student ${studentId}`);
next(); next();
} }
}); })
} }
})
.catch((err) => {
res.json(401, {error: "No student found"})
}); });
} }
}; };
...@@ -8,7 +8,6 @@ var dashboardApp = angular.module('dashboardApp', [ ...@@ -8,7 +8,6 @@ var dashboardApp = angular.module('dashboardApp', [
'dashboardServices', 'dashboardServices',
'dashboardDirectives', 'dashboardDirectives',
'pascalprecht.translate', 'pascalprecht.translate',
'vcRecaptcha',
'ui.bootstrap', 'ui.bootstrap',
'angularFileUpload', 'angularFileUpload',
'angular.filter', 'angular.filter',
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<ul class="nav nav-tabs tabs_student"> <ul class="nav nav-tabs tabs_student"> <!-- 0: admin, 1: tutor, 2: therapist -->
<li role="presentation" ng-class="{'active' : nav.tab == 'collections'}" ng-if="studentData.supervision != 0"> <li role="presentation" ng-class="{'active' : nav.tab == 'collections'}" ng-if="studentData.supervision != 0">
<a href="/app/#/student/{{studentData.id}}/collections" ng-click="nav.tab = ''"><span class="glyphicon glyphicon-th" aria-hidden="true"></span> {{ 'collections' | translate }}</a> <a href="/app/#/student/{{studentData.id}}/collections" ng-click="nav.tab = ''"><span class="glyphicon glyphicon-th" aria-hidden="true"></span> {{ 'collections' | translate }}</a>
</li> </li>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<li role="presentation" ng-class="{'active' : nav.tab == 'reports'}" ng-if="studentData.supervision != 1"> <li role="presentation" ng-class="{'active' : nav.tab == 'reports'}" ng-if="studentData.supervision != 1">
<a href="/app/#/student/{{studentData.id}}/reports" ng-click="nav.tab = 'reports'"><span class="glyphicon glyphicon-file" aria-hidden="true"></span> {{ 'reports' | translate }}</a> <a href="/app/#/student/{{studentData.id}}/reports" ng-click="nav.tab = 'reports'"><span class="glyphicon glyphicon-file" aria-hidden="true"></span> {{ 'reports' | translate }}</a>
</li> </li>
<li role="presentation" ng-class="{'active' : nav.tab == 'setup'}" ng-if="studentData.supervision != 1"> <li role="presentation" ng-class="{'active' : nav.tab == 'setup'}" ng-if="studentData.supervision != 0">
<a href="/app/#/student/{{studentData.id}}/setup" ng-click="nav.tab = 'setup'" <a href="/app/#/student/{{studentData.id}}/setup" ng-click="nav.tab = 'setup'"
><span class="glyphicon glyphicon-cog" aria-hidden="true"></span> {{ 'setup' | translate }}</a> ><span class="glyphicon glyphicon-cog" aria-hidden="true"></span> {{ 'setup' | translate }}</a>
</li> </li>
......
...@@ -7,8 +7,6 @@ module.exports = function (grunt) { ...@@ -7,8 +7,6 @@ module.exports = function (grunt) {
'assets/app/bower_components/angular-ui-router/release/angular-ui-router.js', 'assets/app/bower_components/angular-ui-router/release/angular-ui-router.js',
'assets/app/bower_components/angular-translate/angular-translate.js', 'assets/app/bower_components/angular-translate/angular-translate.js',
'assets/app/bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js', 'assets/app/bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js',
'assets/app/bower_components/angular-re-captcha/angular-re-captcha.js', // TODO: delete after testing angular-recaptcha
'assets/app/bower_components/angular-recaptcha/release/angular-recaptcha.min.js',
'assets/app/bower_components/ng-file-upload/angular-file-upload.js', 'assets/app/bower_components/ng-file-upload/angular-file-upload.js',
'assets/app/bower_components/angular-filter/dist/angular-filter.js', 'assets/app/bower_components/angular-filter/dist/angular-filter.js',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment