diff --git a/README.md b/README.md
index 4a568dabdd..799790019f 100644
--- a/README.md
+++ b/README.md
@@ -23,22 +23,14 @@ Short setup version:
1. Clone directory into local folder
2. Go into the cloned folder and enter `npm install`
-3. Install nodemon and gulp globally by entering `npm install -g nodemon gulp`
## Run
1. Start the [schul-cloud server](https://github.com/hpi-schul-cloud/schulcloud-server)
2. Go into project folder
-3. Run `gulp watch` to run gulp
-4. Set the ENV-variable `TZ=Europe/Berlin` (for windows use `set TZ=Europe/Berlin`). You can also set the variables `SC_TITLE=HPI Schul-Cloud` if you want.
-5. run `npm run watch` to boot the application
+5. run `npm run dev` to boot the application
6. go to `http://localhost:3100`
-**Alternative with browser-sync**
-
-1. run `gulp watch-reload` to run gulp with browser sync. It also starts the node-client-server.
-2. go to `http://localhost:7000`
-
For connecting to the [SchulCloud Calendar-Service](https://github.com/hpi-schul-cloud/schulcloud-calendar) you have to set `export CALENDAR_SERVICE_ENABLED=true`.
For connecting to the [SchulCloud Notification-Service](https://github.com/hpi-schul-cloud/node-notification-service) you have to set `export NOTIFICATION_SERVICE_ENABLED=true`.
diff --git a/helpers/authentication.js b/helpers/authentication.js
index 854287989a..f7760bc81a 100644
--- a/helpers/authentication.js
+++ b/helpers/authentication.js
@@ -311,6 +311,10 @@ const mapErrorToTranslationKey = (error) => {
return 'login.text.multipleUsersFound';
case 'USER_ACCOUNT_DEACTIVATED':
return 'login.text.userAccountDeactivated';
+ case 'EXTERNAL_USER_ROLE_UNKNOWN':
+ return 'login.text.externalUserRoleUnknown';
+ case 'SCHOOL_MISSING':
+ return 'login.text.unprocessableData';
default:
return 'login.text.loginFailed';
}
diff --git a/helpers/handlebars/middleware.js b/helpers/handlebars/middleware.js
index 76a3084471..2c50c52041 100644
--- a/helpers/handlebars/middleware.js
+++ b/helpers/handlebars/middleware.js
@@ -9,6 +9,7 @@ const {
ALERT_STATUS_URL,
SC_THEME,
} = require('../../config/global');
+const { permission } = require('process');
const makeActive = (items, currentUrl) => {
currentUrl += '/';
@@ -181,6 +182,7 @@ module.exports = (req, res, next) => {
testId: 'Rooms',
icon: 'account-supervisor-circle-outline',
link: '/rooms',
+ permission: 'ROOM_CREATE',
});
}
diff --git a/locales/de.json b/locales/de.json
index 22ae8f8630..c525ae1a99 100644
--- a/locales/de.json
+++ b/locales/de.json
@@ -1250,7 +1250,6 @@
},
"text": {
"announcementBrb": "Neu bei bettermarks: Fertige Unterrichtseinheiten jetzt für Klasse 5 bis 8 und neue Übungs- und Testaufgaben für Jahrgangsstufe 4 bis 13!
Hier finden Sie unsere Kursbeispiele/Themenvorschläge für die Schul-Cloud Brandenburg: einsehen, auswählen und als eigenen Kurs importieren!",
- "announcement": "Nehmen Sie an unserer Zufriedenheitsumfrage teil und helfen Sie uns, die Cloud zu verbessern. Hier geht’s zur Befragung.",
"emptyHomeworksInfo": "Keine gestellten Aufgaben. Du findest alle Aufgaben im Aufgaben-Bereich.",
"emptyNewsInfo": "Bisher gibt es keine News.",
"graded": "Bewertet",
@@ -2597,7 +2596,9 @@
"schoolInMigration": "Deine Schule wechselt gerade das Anmeldesystem zu {{systemName}}. Bevor Du Dich über {{systemName}} anmelden kannst, musst Du Deinen Account umziehen. Melde Dich dazu mit Deinem alten System an.",
"userNotFoundAfterProvisioning": "Login fehlgeschlagen. Entweder ist die Schule noch nicht zu {{systemName}} umgezogen oder die Erstellung neuer Nutzer in der {{shortTitle}} ist für die Schule nicht aktiv. Bitte wenden Sie sich an Ihren Schuladministrator.",
"multipleUsersFound": "Dieser moin.schule-Benutzer kann nicht eindeutig einem Account in der Niedersächsischen Bildungscloud zugeordnet werden. Bitte Support benachrichtigen!",
- "userAccountDeactivated": "Ihr Konto wurde deaktiviert. Bitte wenden Sie sich an Ihren Schuladministrator."
+ "userAccountDeactivated": "Ihr Konto wurde deaktiviert. Bitte wenden Sie sich an Ihren Schuladministrator.",
+ "externalUserRoleUnknown": "Konto mit einer unbekannten Nutzer-Rolle kann nicht angemeldet werden. Bitte an Schuladministrator wenden.",
+ "unprocessableData": "Die Daten des Anmeldesystems konnten nicht vollständig verarbeitet werden. Bitte erneut versuchen oder den Support kontaktieren."
}
},
"messenger": {
diff --git a/locales/en.json b/locales/en.json
index 459a04f9d8..9c47be1549 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -1250,7 +1250,6 @@
},
"text": {
"announcementBrb": "New at bettermarks: Ready-made teaching units now for grades 5 to 8 and new exercises and tests for grades 4 to 13!
Here you can find our course examples/topic suggestions for the Brandenburg School Cloud: view, select and import as your own course!",
- "announcement": "Take part in our satisfaction survey and help us to improve the cloud. Click here to go to the survey (exclusively in German language).",
"emptyHomeworksInfo": "No assigned tasks. You can find all tasks in the tasks area.",
"emptyNewsInfo": "So far there is no news.",
"graded": "Graded",
@@ -2597,7 +2596,9 @@
"schoolInMigration": "Your school is in the process of changing the login system to {{systemName}}. Before you can log in via {{systemName}}, you have to move your account. To do this, log in with your old system.",
"userNotFoundAfterProvisioning": "Login failed. Either the school hasn't moved to {{systemName}} yet or the creation of new users in the {{shortTitle}} is not active for the school. Please contact your school administrator.",
"multipleUsersFound": "This moin.schule user cannot be clearly assigned to an account in the Niedersächsische Bildungscloud. Please contact support!",
- "userAccountDeactivated": "Your account has been deactivated. Please contact your school administrator."
+ "userAccountDeactivated": "Your account has been deactivated. Please contact your school administrator.",
+ "externalUserRoleUnknown": "Account with an unknown user role cannot be logged in. Please contact school administrator.",
+ "unprocessableData": "The login system data could not be fully processed. Please try again or contact support."
}
},
"messenger": {
diff --git a/locales/es.json b/locales/es.json
index 3c79f69d26..b44063823e 100644
--- a/locales/es.json
+++ b/locales/es.json
@@ -1250,7 +1250,6 @@
},
"text": {
"announcementBrb": "Nuevo en bettermarks: Unidades didácticas preparadas ahora para los cursos 5º a 8º y nuevos ejercicios y tests para los cursos 4º a 13º!
Aquí puede encontrar nuestros ejemplos de cursos/sugerencias de temas para la Nube Escolar de Brandenburgo: ¡visualícelos, selecciónelos e impórtelos como su propio curso!",
- "announcement": "Participe en nuestra encuesta de satisfacción y ayúdenos a mejorar la nube. Haga clic aquí para acceder a la encuesta (exclusivamente en alemán).",
"emptyHomeworksInfo": "No hay tareas asignadas. Puedes encontrarar todas las tareas en el área de tareas.",
"emptyNewsInfo": "Hasta el momento no hay noticias.",
"graded": "Calificado",
@@ -2597,7 +2596,9 @@
"schoolInMigration": "Su escuela está en proceso de cambiar el sistema de registro a {{systemName}}. Antes de que pueda iniciar sesión a través de {{systemName}}, debe mover su cuenta. Para hacer esto, inicie sesión con su antiguo sistema.",
"userNotFoundAfterProvisioning": "Error de inicio de sesion. La escuela aún no se ha mudado a {{systemName}} o la creación de nuevos usuarios en {{shortTitle}} no está activa para la escuela. Comuníquese con el administrador de su escuela.",
"multipleUsersFound": "Este usuario de moin.schule no puede ser asignado claramente a una cuenta en la Niedersächsische Bildungscloud. Póngase en contacto con el servicio de asistencia.",
- "userAccountDeactivated": "Su cuenta ha sido desactivada. Comuníquese con el administrador de su escuela."
+ "userAccountDeactivated": "Su cuenta ha sido desactivada. Comuníquese con el administrador de su escuela.",
+ "externalUserRoleUnknown": "No se puede iniciar sesión en una cuenta con una función de usuario desconocida. Comuníquese con el administrador de la escuela.",
+ "unprocessableData": "Los datos del sistema de registro no se pudieron procesar en su totalidad. Inténtelo de nuevo o comuníquese con el soporte."
}
},
"messenger": {
diff --git a/locales/uk.json b/locales/uk.json
index 7cbab54ba3..cb7e18abf4 100644
--- a/locales/uk.json
+++ b/locales/uk.json
@@ -10,7 +10,6 @@
},
"text": {
"announcementBrb": "Нове на bettermarks: Готові навчальні блоки для 5-8 класів та нові вправи і тести для 4-13 класів!
Тут ви можете знайти приклади наших курсів/пропозиції тем для Бранденбурзької шкільної хмари: переглядайте, обирайте та імпортуйте як свій власний курс!",
- "announcement": "Візьміть участь у нашому опитуванні та допоможіть нам покращити хмару. Натисніть тут, щоб пройти опитування (виключно німецькою мовою).",
"notFound": "Активних записів не знайдено.",
"emptyHomeworksInfo": "Усі домашні завдання показуються в розділі домашніх завдань.",
"emptyNewsInfo": "Немає останніх новин. Перегляньте розділ новин, щоб бути в курсі.",
@@ -1837,7 +1836,9 @@
"schoolInMigration": "Ваша школа перебуває в процесі зміни системи реєстрації на {{systemName}}. Перш ніж ви зможете увійти через {{systemName}}, вам потрібно перемістити свій обліковий запис. Для цього увійдіть у свою стару систему.",
"userNotFoundAfterProvisioning": "Помилка логіну. Або школа ще не переїхала до {{systemName}}, або створення нових користувачів у {{shortTitle}} неактивне для школи. Будь ласка, зверніться до адміністратора школи.",
"multipleUsersFound": "Цей користувач moin.schule не може бути чітко прив'язаний до облікового запису в Niedersächsische Bildungscloud. Будь ласка, зверніться до служби підтримки!",
- "userAccountDeactivated": "Ваш обліковий запис було деактивовано. Будь ласка, зверніться до адміністратора школи."
+ "userAccountDeactivated": "Ваш обліковий запис було деактивовано. Будь ласка, зверніться до адміністратора школи.",
+ "externalUserRoleUnknown": "Неможливо ввійти в обліковий запис із невідомою роллю користувача. Будь ласка, зверніться до адміністратора школи.",
+ "unprocessableData": "Не вдалося повністю обробити дані системи реєстрації. Спробуйте ще раз або зверніться до служби підтримки."
},
"separatorExternalLogin": {
"text": {
diff --git a/nodemon.json b/nodemon.json
deleted file mode 100644
index 312a6178c4..0000000000
--- a/nodemon.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "ignore": [
- ".git",
- "node_modules/**/node_modules"
- ],
- "watch": [
- "build",
- "views",
- "theme",
- "controllers",
- "helpers",
- "locales",
- "config",
- "app.js",
- "api.js"
- ],
- "exec": "node ./bin/www",
- "ext": "js, hbs, json",
- "delay": "2000"
-}
diff --git a/package-lock.json b/package-lock.json
index ef78373992..e0a1067ac6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -152,7 +152,6 @@
"imagemin-lint-staged": "^0.5.1",
"lint-staged": "^10.5.4",
"mocha": "^10.1.0",
- "nodemon": "^2.0.20",
"nyc": "^15.1.0",
"postcss-css-variables": "^0.13.0",
"pump": "^1.0.2",
diff --git a/package.json b/package.json
index e486d325b5..32c52cd789 100644
--- a/package.json
+++ b/package.json
@@ -2,11 +2,9 @@
"name": "schulcloud-client",
"scripts": {
"start": "node --unhandled-rejections=warn ./bin/www",
- "watch": "nodemon --config nodemon.json",
- "debug": "nodemon --inspect=9310 --config nodemon.json",
- "debug:container": "nodemon --inspect=0.0.0.0:9310 --config nodemon.json",
+ "watch": "node --watch ./bin/www",
+ "debug": "node --inspect=9310 --watch ./bin/www",
"lint": "eslint --ext .json --fix . && eslint ./controllers ./helpers ./test/mocha ./api.js ./app.js ./locales --ext .js --ext .json --fix",
- "startd": "echo 'Do you mean 'npm run watch'?'",
"mocha": "cross-env NODE_ENV=test mocha test/mocha/ --exit --recursive",
"build": "gulp clear && cross-env NODE_OPTIONS=--openssl-legacy-provider gulp",
"dev": "gulp clear && cross-env NODE_OPTIONS=--openssl-legacy-provider gulp watch-reload",
@@ -173,7 +171,6 @@
"imagemin-lint-staged": "^0.5.1",
"lint-staged": "^10.5.4",
"mocha": "^10.1.0",
- "nodemon": "^2.0.20",
"nyc": "^15.1.0",
"postcss-css-variables": "^0.13.0",
"pump": "^1.0.2",