new signin scheme working (issue #825)

parent f0317215
......@@ -15,7 +15,6 @@
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<afterSyncTasks>
......@@ -26,7 +25,7 @@
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
<option name="LIBRARY_PROJECT" value="true" />
<option name="PROJECT_TYPE" value="1" />
</configuration>
</facet>
</component>
......@@ -54,7 +53,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
......@@ -62,7 +60,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
......@@ -70,26 +67,22 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
......@@ -105,16 +98,10 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/typedefs.txt" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 24 Platform" jdkType="Android SDK" />
......@@ -130,7 +117,6 @@
<orderEntry type="library" exported="" name="support-vector-drawable-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-core-utils-24.2.1" level="project" />
<orderEntry type="module" module-name="commonlibrary" exported="" />
<orderEntry type="library" exported="" name="android-android-24" level="project" />
<orderEntry type="library" exported="" name="okhttp-ws-2.3.0" level="project" />
<orderEntry type="library" exported="" name="play-services-base-9.2.1" level="project" />
<orderEntry type="library" exported="" name="socket.io-client-0.5.0" level="project" />
......
......@@ -102,7 +102,8 @@ module.exports = {
*/
getAll: function (req, res) {
Office.find().populate('admin').then(function (offices) {
res.ok(offices);
// return all offices filtering out personal ones
res.ok(offices.filter(o => o.name !== 'no_office'));
})
.catch(function () {
res.serverError();
......
......@@ -71,10 +71,13 @@ module.exports = {
Supervisor.findOneByEmail(email).then(function (supervisor) {
if (!supervisor)
return res.notFound("Supervisor not found")
throw new Error("Supervisor not found")
if (!bcrypt.compareSync(password, supervisor.password))
throw res.unauthorized("Invalid email/password")
throw new Error("Invalid email/password");
if (supervisor.active == 0)
throw new Error("This account has not been activated");
return (supervisor);
......@@ -100,7 +103,7 @@ module.exports = {
}
if (!supervisor.isSupAdmin && !stuSup)
return res.unauthorized("Supervisor without students");
throw new Error("Supervisor without students");
return res.ok({
user: supervisor,
......@@ -109,7 +112,7 @@ module.exports = {
});
})
.catch(function (err) {
return res.serverError("Error when connecting to database");
return res.badRequest(err.message);
});
},
......@@ -140,7 +143,8 @@ module.exports = {
if (err)
return res.badRequest("Invalid token");
Supervisor.findOne(token.id_sup).then(function (supervisor) {
Supervisor.findOne(token.id_sup)
.then(function (supervisor) {
if (!supervisor)
throw new Error("Error when looking for user");
......@@ -156,7 +160,7 @@ module.exports = {
.populate('admin')
.then((off) => {
if (!off)
return res.serverError("Office not found: " + err)
throw new Error("Office not found: ");
var message = sails.__({
phrase: token.role + '_request',
......@@ -165,15 +169,13 @@ module.exports = {
mailService.mailer()
.send({
to: admin.email,
to: off.admin.email,
text: message
})
.then(() => {})
.catch((err) => {});
.catch((err) => {throw err});
})
.catch((err) => {
return res.serverError("Office not found: " + err);
});
.catch((err) => {throw err;});
}
// welcome message is returned
......@@ -192,7 +194,7 @@ module.exports = {
})
.catch(function (err) {
return res.serverError("Error when activating account " + err);
return res.serverError(err.message ? err.message : 'Supervisor not found');
});
});
},
......
......@@ -91,7 +91,7 @@ module.exports = {
},
beforeCreate: function (attrs, next) {
if (attrs.logoUrl)
if (!attrs.logoUrl)
attrs.logoUrl = '/app/img/logo_pictogram.png';
next();
}
......
......@@ -64,7 +64,7 @@
"continue_session": "Resume_session",
"country": "Country",
"country_requested": "Country requested",
"country_office_requested": "Country for office/center is mandatory",
"country_office_requested": "Country for office/center is mandatory",
"create_account": "Create account",
"create_an_account": "Create an account",
"credentials": "Credentials",
......@@ -138,6 +138,7 @@
"highlighted": "Highlighted",
"hours": "hours",
"how_many": "How many?",
"inactive_account": "This account has not been activated. Please, follow the link sent to your email address.",
"input_selection": "How to place a pictogram",
"instruction": "Instruction",
"instruction_begin": "Begin instruction",
......@@ -206,6 +207,7 @@
"no": "No",
"nobegin": "No started",
"no_method": "No method defined",
"no_office": "No office",
"no_subscribed": "No connection to student account",
"no_instruction": "No instruction defined",
"no_students_for_user": "You are not associated to any students. Please ask your office to link your account to a Pictogram student.",
......
......@@ -138,6 +138,7 @@
"highlighted": "Resaltado",
"hours": "horas",
"how_many": "¿Cuántas?",
"inactive_account": "Esta cuenta no ha sido activada. Por favor, siga el enlace de confirmación enviado a su dirección de correo electrónico.",
"input_selection": "Cómo colocar un pictograma",
"instruction": "Instrucción",
"instruction_begin": "Primer intento",
......@@ -205,6 +206,7 @@
"next_sessions": "Sesiones posteriores",
"no": "No",
"no_method": "Método sin definir",
"no_office": "Sin centro",
"no_instruction": "Instrucción sin definir",
"no_students_for_user": "Su cuenta no está asociada a ningún estudiante. Por favor, contacte con su gabinete para enlazar su cuenta a un estudiante.",
"no_space_in_category": "No queda espacio en la categoría",
......
......@@ -83,8 +83,8 @@ function LoginCtrl(
$translate('no_students_for_user').then(function (translation) {
ngToast.warning({ content: translation });
});
} else {
$translate('login_fail').then(function (translation) {
} else if (err.search("not been activated") > 0) {
$translate('inactive_account').then(function (translation) {
ngToast.danger({ content: translation });
});
}
......
......@@ -118,7 +118,7 @@ function SignInCtrl($scope,
}
if ($scope.formdata.role === 'tutor_nooffice') {
$scope.formdata.office.name = $scope.formdata.name + " " + $scope.formdata.surname;
$scope.formdata.office.name = 'no_office';
$scope.formdata.office.address = $scope.formdata.address;
$scope.formdata.office.postalCode = $scope.formdata.postalCode;
$scope.formdata.office.country = $scope.formdata.country;
......
......@@ -224,7 +224,7 @@
<legend translate>office_center</legend>
<select class="form-control" ng-model="formdata.office_idx" ng-required="formdata.role == 'therapist_office' || formdata.role == 'tutor_office'">
<option selected disabled hidden value="-1">{{ 'select_office' | translate }}</option>
<option ng-repeat="office in offices | orderBy: 'name' track by $index" ng-value="$index"> {{ office.name }} {{$index}} {{office.id}}</option>
<option ng-repeat="office in offices | orderBy: 'name' track by $index" ng-value="$index"> {{ office.name }} </option>
</select>
</div>
......
......@@ -35,9 +35,6 @@ dashboardControllers.controller('StudentsCtrl', function StudentsCtrl(
if ($scope.user.office.admin === $scope.user.id) {
$scope.user.isAdmin = true;
}
console.log("currentStudents: " + $scope.user.office.currentStudents);
console.log("maxStudents: " + $scope.user.office.maxStudents);
} else {
$scope.user.office = { name: '' };
}
......
......@@ -5,7 +5,7 @@
//-----------------------
// Supervisor Controller
//-----------------------
dashboardControllers.controller('SupervisorCtrl', function SupervisorCtrl($scope, $window, $location, IOService, $modal) {
dashboardControllers.controller('SupervisorCtrl', function SupervisorCtrl($scope, $window, $location, IOService, $modal, $translate) {
// Restore user data from session
var user = JSON.parse($window.sessionStorage.user);
......@@ -16,6 +16,8 @@ dashboardControllers.controller('SupervisorCtrl', function SupervisorCtrl($scope
$scope.user.surname = user.surname;
$scope.user.pic = user.pic;
$scope.user.office = user.office;
if ($scope.user.office.name == 'no_office')
$scope.user.office.name = $translate.instant('no_office');
$scope.user.lang = user.lang;
$scope.user.isSupAdmin = user.isSupAdmin;
$scope.user.isTutor = user.isTutor;
......
......@@ -5,11 +5,8 @@
//--------------------------
dashboardControllers.controller('SupervisorsCtrl', function SupervisorsCtrl($scope, $window, $http, config, $translate, ngToast) {
// Restore user data from session
var user = JSON.parse($window.sessionStorage.user);
$http
.get(config.backend+'/office/get/' + user.office.id + '/supervisors')
.get(config.backend+'/office/get/' + $scope.user.office.id + '/supervisors')
.success(function(data, status, headers, config) {
$scope.supervisors_list = data;
console.log($scope.supervisors_list);
......
......@@ -5,8 +5,8 @@
"signin_mail": "Para activar su cuenta en Pictogram, haga click en el siguiente enlace:\n",
"change_password_mail": "Para cambiar su contraseña, haga click en el siguiente enlace:\n",
"login": "acceder",
"therapist_office_request {{ name }} {{ email }}": "El terapeuta {{ name }}, con correo electrónico {{ email }}, pide ser asociado a algún estudiante.",
"tutor_office_request {{ name }} {{ email }}": "El tutor {{ name }}, con correo electrónico {{ email }}, pide ser asociado a algún estudiante.",
"therapist_office_request": "El/la terapeuta {{ name }}, con correo electrónico {{ email }}, pide ser asociado a algún estudiante.",
"tutor_office_request": "El/la tutor/a/padre/madre {{ name }}, con correo electrónico {{ email }}, pide ser asociado a algún estudiante.",
"welcome_msg1": "¡Bienvenido a Pictogram, {{ name }}!",
"welcome_msg2": "Su cuenta está ahora activa, por lo que puede"
}
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