Compare commits

...

252 commits

Author SHA1 Message Date
anhefti
0187f3a4a5 preparing for release 2.0.0 2024-09-02 14:47:14 +02:00
anhefti
d3ad1b64d0 preparing for release 2.0.0 2024-09-02 14:45:58 +02:00
anhefti
0019d948f6 preparing for release 2.0.0 2024-09-02 12:14:31 +02:00
anhefti
e56605f405 preparing for release 2.0.0 2024-09-02 12:08:35 +02:00
anhefti
ebb6f8f1b3 preparing for release 2.0 test run feature 2024-09-02 11:48:36 +02:00
anhefti
48b04b0679 preparing for release 2.0 test run feature 2024-08-29 16:24:31 +02:00
anhefti
cc77c03961 preparing for release 2.0 test run feature 2024-08-29 16:13:32 +02:00
anhefti
b3e47772d4 preparing for release 2.0 test run feature 2024-08-29 15:00:01 +02:00
anhefti
b03bd6e3f7 preparing for release 2.0 fixed image refs 2024-08-29 14:38:37 +02:00
anhefti
0244b775fd preparing for release 2.0 fixed image refs 2024-08-29 14:34:57 +02:00
anhefti
f4ac677ae6 preparing for release 2.0 fixed image refs 2024-08-29 14:29:17 +02:00
anhefti
018e9f3f7b preparing for release 2.0 docu 2024-08-29 14:14:57 +02:00
anhefti
9e25ee7c9a preparing for release 2.0 2024-08-29 08:05:20 +02:00
anhefti
cc27f9dd1d preparing for release 2.0 2024-08-29 07:57:29 +02:00
Nadim Ritter
c6999e79c3 proctoring docu add line breask 2024-08-28 14:56:45 +02:00
Nadim Ritter
047758cb9f correct typos in proctoring docu 2024-08-28 14:29:30 +02:00
NadimETH
cb20f6feb5
Merge pull request #136 from SafeExamBrowser/docu
Docu
2024-08-28 13:24:19 +02:00
Nadim Ritter
7f7ac3e378 Merge branch 'dev-2.0' of github.com:SafeExamBrowser/seb-server into docu 2024-08-28 13:23:17 +02:00
anhefti
081b9943e9 SEBSERV-574 fixed text 2024-08-27 13:36:08 +02:00
anhefti
9e70b39400 SEBSERV-574 2024-08-26 13:54:13 +02:00
anhefti
a7aedc58dc fixed some minor text issue 2024-08-22 11:50:16 +02:00
anhefti
ed48fad27c SEBSERV-581 fixed (skip for none LMS Exams) 2024-08-21 12:07:31 +02:00
anhefti
9e5a0085b3 SEBSERV-580 fixed by skip active testing for Exam without LMS 2024-08-21 10:52:09 +02:00
anhefti
bb0df16a56 SEBSERV-574 on access denied check if admin and show hinted message 2024-08-20 11:22:55 +02:00
anhefti
2d5baeba1c SEBSERV-578 fixed by skip full integration testing for pure Moodle core 2024-08-20 10:28:39 +02:00
Nadim Ritter
54ec29d647 Merge branch 'dev-2.0' of github.com:SafeExamBrowser/seb-server into docu 2024-08-16 16:17:26 +02:00
Nadim Ritter
ccae9fa780 docu progress & new images 2024-08-16 16:16:38 +02:00
Nadim Ritter
203575a35f progress in docu & new images 2024-08-14 10:12:42 +02:00
anhefti
f632cc9750 SEBSERV-570 fixed, skip full integration test for plugin version 1 2024-08-13 10:40:03 +02:00
anhefti
d5ccc0f093 SEBSERV-572 fixed, added new property setting sebserver.webservice.autologin.url 2024-08-13 10:40:03 +02:00
Nadim Ritter
f88335b17c add http to screen proctoring url 2024-08-08 16:52:06 +02:00
Nadim Ritter
b962b24492 change screen proctoring url to ps-webservice 2024-08-08 16:25:07 +02:00
Nadim Ritter
7406bc5ad4 Merge branch 'dev-2.0' of github.com:SafeExamBrowser/seb-server into docu 2024-08-06 08:42:36 +02:00
Nadim Ritter
dff1a051e9 remove print outs 2024-08-05 11:02:49 +02:00
Nadim Ritter
13eda2eda4 docu upload screenshots & create screen proctoring docu 2024-07-25 11:21:59 +02:00
Nadim Ritter
98ea35f118 add screen proctoring page 2024-07-23 10:06:55 +02:00
Nadim Ritter
deac21f4ba rename redirect to gallery-view 2024-07-22 14:13:50 +02:00
Nadim Ritter
1cb0242507 better logging for lastname bug 2024-07-19 11:34:45 +02:00
anhefti
f4ccd16425 SEBSERV-569 fixed, regression due to code cleanup 2024-07-18 14:18:29 +02:00
anhefti
b0e8e11d26 SEBSERV-569 fixed, regression due to code cleanup 2024-07-18 14:18:10 +02:00
anhefti
3166152c90 SEBSERV-541 column width now sticks to user session 2024-07-18 13:44:54 +02:00
anhefti
6c4902db02 improve logging for Moodle user Details 2024-07-18 12:00:22 +02:00
anhefti
93858944d8 SEBSERV-560 only master needs to update groups 2024-07-18 07:23:42 +02:00
anhefti
1ef1052275 SEBSERV-568 fixed 2024-07-17 15:37:53 +02:00
anhefti
95c2057dad improved sps group number update 2024-07-17 14:28:27 +02:00
anhefti
4cd498d29e SEBSERV-566 fixed, update SPS session 2024-07-16 16:25:02 +02:00
anhefti
e70a209217 SEBSERV-560 SEBSERV-563 implementation 2024-07-16 14:15:25 +02:00
anhefti
303b3ac548 SEBSERV-560 SEBSERV-563 implementation 2024-07-16 09:38:29 +02:00
anhefti
f2f8a561a8 SEBSERV-565 added new Status Filter for Ready status 2024-07-11 15:41:08 +02:00
anhefti
413fb96240 SEBSERV-564 fixed for Moodle 2024-07-11 11:02:32 +02:00
anhefti
c3a03719c9 Merge branch 'master' into development 2024-07-09 17:13:40 +02:00
Andreas Hefti
48bdf5e2cd
Merge pull request #132 from SafeExamBrowser/dependabot/pip/docs/urllib3-1.26.19
Bump urllib3 from 1.26.13 to 1.26.19 in /docs
2024-07-09 17:06:37 +02:00
anhefti
b7fb95a1c3 SEBSERV-562 DB migration charset utf8mb4 2024-07-09 15:30:04 +02:00
anhefti
fc6e5be155 code cleanup and better logging 2024-07-09 13:30:57 +02:00
anhefti
9ad13ffe3f code cleanup 2024-07-04 16:31:00 +02:00
anhefti
fb8df62f59 SEBSERV-419 implementation and local testing 2024-07-04 15:29:43 +02:00
anhefti
16b2c8deb4 SEBSERV-559 and SEBSERV-552 2024-07-03 16:29:00 +02:00
anhefti
c0ead99e2b SEBSERV-419 2024-07-02 13:43:07 +02:00
anhefti
900bbfe5f4 SEBSERV-555 use "0" for no template selection 2024-07-01 13:40:51 +02:00
anhefti
ee89d2a24e SEBSERV-556 fixed notify exam template deletion to moodle 2024-07-01 12:23:31 +02:00
anhefti
b0617803f1 SEBSERV-555 should be fixed, testing on ralph 2024-07-01 11:32:38 +02:00
Andreas Hefti
2f260212ae
Merge pull request #135 from SafeExamBrowser/SEBSP-131
Sebsp 131
2024-07-01 09:11:43 +02:00
anhefti
41ce1bc268 SEBSERV-419 implementation 2024-06-27 16:21:14 +02:00
Nadim Ritter
4b0f88d0b6 SEBSP-131 replace fullname with lastname and firstname + fix test 2024-06-27 16:02:26 +02:00
Nadim Ritter
1831de1437 SEBSP-131 fix broken test 2024-06-27 13:25:30 +02:00
Nadim Ritter
31924877ee SEBSP-131 use lastname + firstname instead of fullname in moodle 2024-06-27 13:13:43 +02:00
anhefti
8539da1879 fixed localization in monitoring indicator 2024-06-26 14:32:38 +02:00
anhefti
66b2eebf1d fixed some list mismatches due to read access + code cleanup 2024-06-26 14:14:24 +02:00
anhefti
6cc2f7b84b check right privileges batch actions and code cleanup 2024-06-26 12:59:48 +02:00
anhefti
01bd5c5558 SEBSERV-418 removed SEB config upload to Moodle and call set_exam_data on change instead 2024-06-26 10:57:18 +02:00
anhefti
d291e21543 fixed build 2024-06-26 09:14:33 +02:00
anhefti
644f0a4cd1 fixed Moodle file upload 2024-06-26 09:11:14 +02:00
anhefti
b33998be07 fixed file upload to moodle 2024-06-25 17:02:49 +02:00
anhefti
7fbf49397c SEBSERV-552 fixed SPS exam creation and update 2024-06-25 16:50:40 +02:00
anhefti
27542a2293 SEBSERV-553 fixed file upload 2024-06-25 14:47:45 +02:00
anhefti
07bbf6c49b SEBSERV-553 fixed file upload 2024-06-25 14:43:47 +02:00
anhefti
abe8bcd4d3 SEBSERV-553 fixed show quit link and improved logging 2024-06-25 13:54:15 +02:00
anhefti
65e717349b SEBSERV-553 fixed show quit link and improved logging 2024-06-25 10:47:38 +02:00
anhefti
0b21baac24 SEBSERV-553 fixed show quit link and improved logging 2024-06-25 10:31:11 +02:00
anhefti
b808d65f53 SEBSERV-553 fixed show quit link and improved logging 2024-06-25 10:20:27 +02:00
anhefti
8b30771021 SEBSERV-553 fixed show quit link and improved logging 2024-06-25 09:59:13 +02:00
anhefti
485273d05e fixed build 2024-06-24 13:46:25 +02:00
anhefti
a6b9554c76 fixed build 2024-06-24 13:35:41 +02:00
anhefti
99bf2f25da SEBSERV-549 fixed. was introduced by fix of SEBSERV-515 + code cleanup 2024-06-24 13:23:19 +02:00
anhefti
d528f66afa Merge remote-tracking branch 'origin/development' into development 2024-06-24 13:13:11 +02:00
anhefti
38fb5e06a0 Merge branch 'dev-1.6' into development
# Conflicts:
#	pom.xml
2024-06-24 11:47:40 +02:00
anhefti
967f6792dc SEBSERV-549 fixed. was introduced by fix of SEBSERV-515 2024-06-24 11:46:43 +02:00
NadimETH
a72a88e4ef
Merge pull request #133 from SafeExamBrowser/SEBSP-143
Sebsp 143
2024-06-21 12:49:58 +02:00
anhefti
45969934c3 SEBSERV-417 fix teacher account selection for supporter 2024-06-20 10:41:18 +02:00
anhefti
ce168094cf SEBSERV-417 fix check full integration 2024-06-20 10:11:27 +02:00
anhefti
68be1b4322 SEBSERV-417 fix check full integration 2024-06-20 09:56:40 +02:00
anhefti
b4907fcda9 SEBSERV-417 fix check full integration available and fix Exam Config change apply 2024-06-20 09:40:28 +02:00
anhefti
e0952da7f3 SEBSERV-417 fix autologin 2024-06-19 16:48:06 +02:00
anhefti
a31e001f69 SEBSERV-417 fix autologin 2024-06-19 16:38:30 +02:00
anhefti
1a5bb6ff7d SEBSERV-417 fixed screen proctoring re-init plus autologin 2024-06-19 16:25:36 +02:00
Nadim Ritter
a8bcaa53e5 SEBSP-143 add utf8 encoding to body encoding function 2024-06-19 16:11:36 +02:00
anhefti
9d93826a35 SEBSERV-417 testing 2024-06-19 14:19:13 +02:00
anhefti
a8185095f2 SEBSERV-417 testing 2024-06-19 14:10:07 +02:00
anhefti
bcb28b0945 fixed bean dependencies for gui 2024-06-19 13:47:15 +02:00
anhefti
34ad7b5177 SEBSERV-417 apply exam_data and connection config after 2024-06-19 13:23:13 +02:00
anhefti
df78a6a2a4 SEBSERV-417 apply exam_data before SEB restriction 2024-06-19 12:58:17 +02:00
anhefti
8238361910 SEBSERV-417 apply exam_data before SEB restriction 2024-06-19 12:17:12 +02:00
Nadim Ritter
ae37a8cf12 Merge branch 'development' of github.com:SafeExamBrowser/seb-server into SEBSP-143 2024-06-19 10:07:43 +02:00
anhefti
fbe7781be1 SEBSERV-417 add rollback of exam import on partial import 2024-06-18 17:14:53 +02:00
anhefti
4dc8064f88 SEBSERV-417 add rollback of exam import on partial import 2024-06-18 13:52:21 +02:00
anhefti
374ea4fee5 SEBSERV-417 testing 2024-06-18 13:34:26 +02:00
Nadim Ritter
0fbdec95d3 SEBSP-143 add utf8 url encoding for screen proctoring 2024-06-18 13:17:50 +02:00
anhefti
438453dfe9 SEBSERV-417 do not send error to Moodle on Exam deletion request when Exam already has been deleted 2024-06-18 11:46:52 +02:00
anhefti
bf7204660d SEBSERV-417 do not deactivate teacher account (might be used by others) 2024-06-18 10:57:41 +02:00
anhefti
27c5cff6f5 SEBSERV-417 fixed predicate 2024-06-18 10:37:41 +02:00
anhefti
3e426ce2cc SEBSERV-417 show teacher for supporter selection 2024-06-18 10:26:29 +02:00
anhefti
6de875b29c SEBSERV-417 added get exam data from Moodle on exam import and fixed teacher account for different exams 2024-06-18 09:46:07 +02:00
dependabot[bot]
e48a1d5885
Bump urllib3 from 1.26.13 to 1.26.19 in /docs
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.13 to 1.26.19.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.19/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.13...1.26.19)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 00:02:30 +00:00
anhefti
b6e3772dcd SEBSERV-417 removed debug code 2024-06-13 15:24:21 +02:00
anhefti
8155d155c0 SEBSERV-417 and SEBSP-111 2024-06-13 13:11:08 +02:00
anhefti
c161e3c5ef SEBSERV-417 and SEBSP-111 2024-06-12 15:36:35 +02:00
anhefti
3a5129f796 SEBSERV-417 try fix corrupt Moodle data 2024-06-12 09:42:14 +02:00
anhefti
1ef62af9a5 SEBSERV-417 try fix corrupt Moodle data 2024-06-12 09:15:34 +02:00
anhefti
7a3e3a2492 SEBSERV-417 try fix corrupt Moodle data 2024-06-12 08:51:07 +02:00
anhefti
6a81b3f717 SEBSERV-417 try fix corrupt Moodle data 2024-06-12 08:43:58 +02:00
anhefti
9bf843e4fa SEBSERV-417 fixed SEB Restriction 2024-06-11 16:13:21 +02:00
anhefti
c4dc211cb6 SEBSERV-417 improved error and waning handling and logging 2024-06-11 13:13:02 +02:00
anhefti
dc98f451fa SEBSERV-417 improved error and waning handling and logging 2024-06-06 13:59:21 +02:00
anhefti
07391430c4 SEBSERV-417 improved error and waning handling and logging 2024-06-06 13:50:07 +02:00
anhefti
05d6cdaf21 fixed exam update additional quiz attributes 2024-06-06 12:09:22 +02:00
Andreas Hefti
0dd70f3ff4
Merge pull request #128 from SafeExamBrowser/pw-bug
pw-bug comment if on additional attributes for exam
2024-06-06 11:37:23 +02:00
Nadim Ritter
7c99ae04e7 pw-bug comment if on additional attributes for exam 2024-06-06 11:14:23 +02:00
anhefti
f9de99d9bc SEBSERV-417 adapt Moodle API calls, error handling and fixes 2024-06-06 10:19:01 +02:00
anhefti
012b0e2f99 Merge remote-tracking branch 'origin/rel-1.6.1' into development
# Conflicts:
#	pom.xml
2024-06-05 09:26:05 +02:00
anhefti
00e8366fda Merge remote-tracking branch 'origin/rel-1.6.1' 2024-06-05 09:21:04 +02:00
anhefti
37f5cf9ea9 Prepare for next patch release 1.6.2 2024-06-05 09:18:49 +02:00
anhefti
db4411c52e SEBSERV-417 new Moodle POST API calls 2024-06-05 08:44:46 +02:00
Andreas Hefti
17400023f3
Merge pull request #127 from SafeExamBrowser/logging
add date to logging config
2024-06-04 13:15:33 +02:00
Nadim Ritter
4b1b6ebefa add date to logging config 2024-06-04 12:51:30 +02:00
anhefti
7ec942e264 SEBSERV-417 fixed broken build 2024-06-04 11:46:57 +02:00
anhefti
fc7ac4c4e0 SEBSERV-417 better connection init 2024-06-04 09:43:09 +02:00
anhefti
b1e4f50a1a debugging 2024-06-04 08:27:18 +02:00
anhefti
a90f358bd5 fixed ignore TLS verification for demo setup 2024-06-03 13:49:39 +02:00
anhefti
908665ddcc SEBSERV-418 finished implementation for teacher account and login 2024-05-30 16:33:58 +02:00
anhefti
1d332fc579 SEBSP-129 and SEBSERV-418 2024-05-29 12:05:20 +02:00
anhefti
41b056edce SEBSP-129 and SEBSERV-418 2024-05-29 09:39:30 +02:00
anhefti
9618b942fb SEBSERV-418 2024-05-22 13:32:30 +02:00
anhefti
1ae00cc4ab SEBSP-119 and SEBSP-111 2024-05-16 10:50:36 +02:00
anhefti
3501c5de05 SEBSERV-417 finished first part 2024-05-08 14:29:53 +02:00
anhefti
4b675bc717 SEBSERV-527 2024-05-02 12:52:57 +02:00
anhefti
91212c65be Merge branch 'dev-1.6' into development 2024-05-02 12:02:03 +02:00
anhefti
ff89864b19 SEBSERV-417 create delete exam from Moodle 2024-05-02 11:39:41 +02:00
anhefti
c0919ce0cf SEBSERV-417 Exam Template enhancements 2024-04-24 15:43:35 +02:00
anhefti
f8bba38f4d Changed OpenOLAT to OLAT Documentation 2024-04-22 11:08:33 +02:00
anhefti
4a98dfcfa1 Merge remote-tracking branch 'origin/development' into development 2024-04-22 10:56:34 +02:00
anhefti
568113003d SEBSERV-417 access token for Moodle 2024-04-22 10:56:21 +02:00
Andreas Hefti
43acb3d3d5
Merge pull request #117 from olatorg/rename-openolat-to-olat
Rename Open Olat to OLAT
2024-04-22 10:54:55 +02:00
Christian Schweizer
b1d255c88e Rename Open Olat to OLAT 2024-04-22 09:48:57 +02:00
anhefti
6e2feafc5a SEBSERV-417 access token for Moodle 2024-04-18 16:12:09 +02:00
anhefti
0f27ef0f38 SEBSERV-417 and data migration 2024-04-18 09:56:40 +02:00
anhefti
e023a8ec31 SEBSERV-417 and data migration 2024-04-17 12:01:22 +02:00
anhefti
9162899683 Merge branch 'dev-1.6' into development 2024-04-15 08:47:41 +02:00
anhefti
5cc7624f73 SEBSERV-417 impl still in progress 2024-04-15 08:46:55 +02:00
anhefti
a81447601b changed version from 1.7 to 2.0 2024-04-11 09:05:39 +02:00
anhefti
3cd4cbb0c0 SEBSP-120 code gen for 2.0 and first migration SEBSERV-534 2024-04-11 08:34:56 +02:00
anhefti
0a2bf98c96 SEBSP-120 code gen for 2.0 and first migration SEBSERV-534 2024-04-11 08:12:07 +02:00
anhefti
c1b62b45cc SEBSP-120 code gen for 2.0 2024-04-09 13:51:11 +02:00
anhefti
d09bc1f95c SEBSERV-417 skeleton 2024-04-09 13:41:42 +02:00
Andreas Hefti
e9285c375a
Merge pull request #115 from lucaboesch/ipaddresssebversionosname
Amend "IP Address,SEB Version, OSName" order.
2024-04-08 09:21:28 +02:00
Luca Bösch
12fe3950d7 Amend "IP Address,SEB Version, OSName" order. 2024-04-05 13:06:28 +02:00
anhefti
1c0cf3285b Merge branch 'dev-1.6' into development 2024-04-04 16:28:36 +02:00
anhefti
0fb7b7019e remove code cov 2024-04-04 08:13:18 +02:00
anhefti
3cdff1b4ac remove code cov 2024-04-04 08:12:27 +02:00
anhefti
845e29ed17 Merge branch 'SEBSERV-417' into development 2024-04-04 08:07:36 +02:00
anhefti
b15221753a fixed reporting for Java 17 2024-04-03 16:09:08 +02:00
Nadim Ritter
ee6a46907c SEBSLI-9 change record 'UsernamePasswordView' to class 2024-04-03 15:41:14 +02:00
anhefti
ad6908dc8c SEBSERV-417 architecture setup 2024-04-03 15:37:51 +02:00
anhefti
36c84b894f fix docu 2024-04-02 14:39:44 +02:00
NadimETH
afb2685664
Merge pull request #112 from SafeExamBrowser/SEBSLI-9
Sebsli 9
2024-04-02 11:08:51 +02:00
anhefti
1657824285 fix build 2024-03-28 16:05:47 +01:00
anhefti
f8d70c4ab7 fix build 2024-03-28 15:58:24 +01:00
anhefti
7103e721b5 Merge branch 'dev-1.6' into development
# Conflicts:
#	pom.xml
2024-03-28 15:51:06 +01:00
anhefti
e5f7321e4b fix readme 2024-03-28 15:30:40 +01:00
anhefti
fbb97ba42a fix readme 2024-03-28 15:29:24 +01:00
NadimETH
db2d19b6ec
SEBSLI-9 update version in build file 2024-03-26 16:59:54 +01:00
Nadim Ritter
114313e207 Merge branch 'development' of github.com:SafeExamBrowser/seb-server into SEBSLI-9 2024-03-26 16:55:41 +01:00
Nadim Ritter
0b00724b26 SEBSLI-9 code clean-up and improvements 2024-03-26 16:39:33 +01:00
anhefti
68d367d1fb Merge branch 'dev-1.6' into development 2024-03-26 09:50:20 +01:00
anhefti
a1660de341 merged development 2024-03-21 10:13:08 +01:00
Nadim Ritter
ed9e86436b SEBSLI-9 store admin pw in db + expose endpoint in ssl mode + remove admin pw after pw change 2024-03-20 16:04:00 +01:00
anhefti
67b223ad02 Merge remote-tracking branch 'origin/dev-1.6' into development 2024-03-20 11:31:30 +01:00
anhefti
a492605458 CI fix cleanup 2024-03-20 09:07:57 +01:00
anhefti
08af91cd49 CI fix cleanup 2024-03-20 09:01:47 +01:00
anhefti
d3052dea87 CI fix cleanup 2024-03-20 08:57:34 +01:00
anhefti
ffc09ddc75 CI fix cleanup 2024-03-20 08:51:27 +01:00
anhefti
a40b65ea00 Fixed CI pipelenie + codecov token 2024-03-20 08:45:03 +01:00
anhefti
d20883c2fd Fixed some Spring security related warnings and converted http.ignore paths to http...permitAll configs where possible 2024-03-20 08:44:26 +01:00
Nadim Ritter
32fc2817d4 SEBSLI-9 move init event below admin account create event 2024-03-18 13:57:42 +01:00
anhefti
9e82fac386 code cleanup 2024-03-18 13:16:09 +01:00
Nadim Ritter
4a97e8d32c SEBSLI-9 comment out creation of connection config 2024-03-15 15:49:57 +01:00
Nadim Ritter
7594a03de5 SEBSLI-9 new light init class 2024-03-15 13:42:04 +01:00
Nadim Ritter
2670d57351 Merge branch 'development' of github.com:SafeExamBrowser/seb-server into SEBSLI-9 2024-03-14 09:19:46 +01:00
anhefti
a5ed8a1850 Merge remote-tracking branch 'origin/dev-1.6' into development 2024-03-13 16:28:37 +01:00
anhefti
9d423649c4 Merge remote-tracking branch 'origin/dev-1.6' into development 2024-03-13 15:52:29 +01:00
anhefti
7f8106e3c3 code cleanup 2024-03-13 13:52:55 +01:00
anhefti
2611f4f464 code cleanup 2024-03-13 13:45:38 +01:00
Nadim Ritter
c110d7aec4 Merge branch 'dev-1.6' of github.com:SafeExamBrowser/seb-server into development 2024-03-13 13:10:06 +01:00
anhefti
912ec31716 Merge remote-tracking branch 'origin/dev-1.6' into development 2024-03-12 16:32:25 +01:00
anhefti
1998f4dc2c Merge remote-tracking branch 'origin/dev-1.6' into development 2024-03-12 15:25:41 +01:00
anhefti
843b051597 Merge remote-tracking branch 'origin/dev-1.6' into development
# Conflicts:
#	src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/AttributeMapping.java
2024-03-11 16:27:33 +01:00
anhefti
4cfc666029 update pom Version to 1.7-SNAPSHOT 2024-03-11 15:48:59 +01:00
anhefti
4fe5ebea69 SEBSERV-455 for 1.7 and 1.6 2024-03-11 15:48:04 +01:00
anhefti
dc3b94c328 Merge branch 'downgrade_exam_config' into development
# Conflicts:
#	src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/AttributeMapping.java
#	src/main/resources/config/application-dev-ws.properties
2024-03-11 15:36:16 +01:00
anhefti
ae4b60e3e8 fix cleanup task 2024-03-06 13:01:36 +01:00
anhefti
25cdffbbb0 fix cleanup task 2024-03-06 12:55:55 +01:00
anhefti
640e398d49 Merge remote-tracking branch 'origin/development' into development 2024-03-06 12:09:42 +01:00
anhefti
3b123ff698 fix cleanup task 2024-03-06 12:09:34 +01:00
Andreas Hefti
d8c464be90
Merge pull request #110 from SafeExamBrowser/SEBSERV-508
SEBSERV-508 change base image to eclipse-temurin:17-jre
2024-03-06 11:52:01 +01:00
anhefti
c1a10d564a remove double maven build for reporting 2024-03-05 13:21:34 +01:00
anhefti
52247e8a56 remove double maven build for reporting 2024-03-05 13:16:59 +01:00
anhefti
0ccc5d2164 remove double maven build for reporting 2024-03-05 12:58:51 +01:00
anhefti
3940dcb280 remove double maven build for reporting 2024-03-05 12:50:24 +01:00
anhefti
04ad9da947 fixed maven for reporting 2024-03-05 11:26:53 +01:00
anhefti
3b96c11324 fixed maven for reporting 2024-03-05 10:37:28 +01:00
anhefti
8e115d26d0 remove spotbugs (seems not be existing anymore) 2024-03-05 10:20:35 +01:00
anhefti
350d679300 remove spotbugs (seems not be existing anymore) 2024-03-05 10:09:13 +01:00
anhefti
87a7e11530 fixed let_reporting to 17 2024-03-05 09:59:32 +01:00
anhefti
acc4532ff4 fixed let_reporting 2024-03-05 09:49:19 +01:00
Nadim Ritter
ed68a5c74f SEBSLI-9 reset build yaml to development state 2024-03-05 09:33:28 +01:00
anhefti
4fc5f6fe95 Jenkins test 2024-03-05 09:24:35 +01:00
anhefti
e76d558e48 Jenkins test 2024-03-05 08:52:52 +01:00
anhefti
4ec0cc7aa6 Jenkins test 2024-03-05 08:18:53 +01:00
NadimETH
cd7c759b58
use correct version tag in build yaml 2024-03-04 17:37:35 +01:00
NadimETH
8f8ede317c
upgrade to java 17 in build yaml 2024-03-04 17:34:53 +01:00
anhefti
015806db5b test new Jenkinsfile and switch integration test port to 8888 2024-03-04 16:41:18 +01:00
anhefti
26406b4fdb test new Jenkinsfile 2024-03-04 16:15:46 +01:00
anhefti
d4fd49da9d test new Jenkinsfile 2024-03-04 16:11:44 +01:00
anhefti
543498c0c7 test new Jenkinsfile 2024-03-04 16:10:45 +01:00
anhefti
2c23b4e07d test new Jenkinsfile 2024-03-04 16:09:58 +01:00
anhefti
dfe593836d test new Jenkinsfile 2024-03-04 16:08:32 +01:00
anhefti
284109c77c test new Jenkinsfile 2024-03-04 16:00:06 +01:00
anhefti
69f5ae1d8f test new Jenkinsfile 2024-03-04 15:57:19 +01:00
anhefti
7d466f8151 test new Jenkinsfile 2024-03-04 15:56:17 +01:00
anhefti
0ca2622319 test new Jenkinsfile 2024-03-04 15:49:55 +01:00
anhefti
704578853c test new Jenkinsfile 2024-03-04 15:47:45 +01:00
anhefti
05d4dd11f1 test new Jenkinsfile 2024-03-04 15:46:26 +01:00
anhefti
d30188f01e test new Jenkinsfile 2024-03-04 15:45:25 +01:00
anhefti
4b264abee6 test new Jenkinsfile 2024-03-04 15:42:48 +01:00
anhefti
21f1708ac0 test new Jenkinsfile 2024-03-04 15:41:47 +01:00
anhefti
5667bc8000 test new Jenkinsfile 2024-03-04 15:40:17 +01:00
anhefti
807e4daf8f test new Jenkinsfile 2024-03-04 15:34:16 +01:00
NadimETH
675ae47e04
change base image to eclipse-temurin:17-jre 2024-03-04 15:22:24 +01:00
anhefti
6f97900447 Merge branch 'dev-1.6' into development 2024-03-04 13:24:28 +01:00
Nadim Ritter
f3a34ab06f Merge branch 'development' of github.com:SafeExamBrowser/seb-server into SEBSLI-9 2024-02-29 16:56:28 +01:00
anhefti
01f37cc3a6 Merge remote-tracking branch 'origin/master' into development 2024-02-29 13:13:53 +01:00
anhefti
93b450fa67 github actions update 2024-02-28 16:23:56 +01:00
Nadim Ritter
cecce64ba0 SEBSLI-9 create new endpoint for light setup to stream exam config 2024-02-21 16:10:59 +01:00
398 changed files with 11043 additions and 4879 deletions

View file

@ -16,89 +16,50 @@ jobs:
maven-build-reporting:
runs-on: ubuntu-latest
steps:
-
name: Checkout repository
uses: actions/checkout@v3
-
name: Set up JDK 8
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
-
name: Cache Maven packages
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
-
name: Build with Maven
run: mvn clean install -e -P let_reporting
-
name: Reporting
uses: codecov/codecov-action@v3
with:
flags: unittests
name: SEB Server Build
fail_ci_if_error: false
verbose: false
maven-build-docker:
needs: maven-build-reporting
# Run only on tagging
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
-
name: Get short SHA
uses: benjlevesque/short-sha@v2.1
- name: Get short SHA
uses: benjlevesque/short-sha@v3.0
id: short-sha
-
name: Store short SHA as environment variable
- name: Store short SHA as environment variable
run: echo $SHA
env:
env:
SHA: ${{ steps.short-sha.outputs.sha }}
-
name: Set env
- name: Set env
run: echo "TAG_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
name: Test tag name
- name: Test tag name
run: |
echo $TAG_NAME
echo ${{ env.TAG_NAME }}
-
name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
-
name: Set up JDK 17
uses: actions/setup-java@v3
name: Build Test Reporting
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
-
name: Cache Maven packages
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
-
name: Build with Maven
run: mvn clean install -Dmaven.test.skip=true -Dsebserver-version="${{ env.TAG_NAME }}-${{ env.SHA }}"
env:
sebserver-version: ${{ env.TAG_NAME }}-${{ env.SHA }}
-
name: Simplify package name
run: mvn clean install -e -P let_reporting -Dsebserver-version="${{ env.TAG_NAME }}-${{ env.SHA }}"
env:
sebserver-version: ${{ env.TAG_NAME }}-${{ env.SHA }}
- name: Simplify package name
run: mv target/seb-server-${{ env.TAG_NAME }}-${{ env.SHA }}.jar target/seb-server.jar
-
uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: Package
path: target/seb-server.jar
docker-build:
needs: maven-build-docker
needs: maven-build-reporting
# Run only on tagging
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
@ -120,10 +81,10 @@ jobs:
echo ${{ env.TAG_NAME }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3.2.0
-
name: Login to DockerHub
uses: docker/login-action@v2
@ -132,7 +93,7 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Install the cosign tool except on PR
# https://github.com/sigstore/cosign-installer
@ -142,7 +103,7 @@ jobs:
uses: sigstore/cosign-installer@main
-
name: Download a single artifact
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: Package
-
@ -178,13 +139,13 @@ jobs:
TAGS: ${{ steps.meta.outputs.tags }}
cleanup:
needs: docker-build
# Run only on tagging
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
needs: [maven-build-reporting, docker-build]
if: |
always()
runs-on: ubuntu-latest
steps:
-
name: Delete Artifacts
uses: geekyeggo/delete-artifact@v2
uses: geekyeggo/delete-artifact@v5
with:
name: Package

10
Jenkinsfile vendored
View file

@ -14,16 +14,16 @@ pipeline {
stages {
stage('Maven build') {
steps {
withMaven(maven: 'Maven', options: [findbugsPublisher(disabled: true)]) {
withMaven(maven: 'Maven3.9.6') {
sh "mvn clean install -e -P let_reporting"
}
}
}
stage('Reporting') {
steps {
withMaven(maven: 'Maven', options: [findbugsPublisher(disabled: true)]) {
sh "mvn --batch-mode -V -U -e -P let_reporting pmd:pmd pmd:cpd findbugs:findbugs spotbugs:spotbugs"
withMaven(maven: 'Maven3.9.6') {
sh "mvn --batch-mode -V -U -e -P let_reporting pmd:pmd pmd:cpd spotbugs:spotbugs"
}
}
}
@ -50,6 +50,6 @@ pipeline {
}
triggers {
pollSCM('H/5 * * * *')
}
}
}

View file

@ -5,8 +5,6 @@ Safe Exam Browser (SEB) Server
:target: https://github.com/SafeExamBrowser/seb-server/actions
.. image:: https://readthedocs.org/projects/seb-server/badge/?version=latest
:target: https://seb-server.readthedocs.io/en/latest/?badge=latest
.. image:: https://codecov.io/gh/SafeExamBrowser/seb-server/branch/master/graph/badge.svg
:target: https://codecov.io/gh/SafeExamBrowser/seb-server
.. image:: https://img.shields.io/github/languages/code-size/SafeExamBrowser/seb-server
:target: https://github.com/SafeExamBrowser/seb-server
@ -48,52 +46,36 @@ a more automated and secure setup for high-stake exams.
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-1.5/docs/images/setup_1.png
SEB Server Version 1.6 is out
SEB Server Version 2.0 is out
-------------------------------
With the new SEB Server release, SEB Server makes a major version change from 1.x to 2.x. This is mainly because of the new
Screen Proctoring feature for SEB integrated into SEB Server and the removal of live proctoring with Zoom and Jitsi Meet
that is no longer available for SEB Server version 2.x.
For a migration from a running SEB Server setup with version 1.x to new major version 2.0, please also read the `migration guide <https://seb-server-setup.readthedocs.io/en/latest/major-migration.html>`_.
New Features:
- Connection Configuration: New possibility to select existing Exams for a Connection Configuration.
- Exam: New Possibility to create an exam without LMS/Assessment Tool integration but with direct SEB link.
- Exam Configuration: Batch Delete Action.
- Exam Configuration: Added new SEB Settings from actual SEB Versions.
- Exam: Possibility to apply SEB Settings quit-passwords within the Exam Import or creation of an Exam.
- Monitoring: Two new Filter for ASK and SEB Client Version check.
- Monitoring: IP Changes of SEB clients during active session are not prevented but logged now with SEB logs.
- Screen Proctoring with SEB and SEB Server. Can be enabled and configured for an Exam. SEB takes and sends screen shots plus Metadata to SEB Server. With monitoring and search functionality.
- Moodle Integration: SEB Server Exam creation from Moodle site with new SEB Server Moodle Plugin 2.0.
- Moodle Integration: Auto Login to SEB Server monitoring for Moodle Teacher with dedicated privileges. Comes with Moodle Plugin 2.0
- Exam Test Run. There is now the possibility to apply an test run for an Exam that is in coming up status. Exam is then in "Running" like state and SEB clients can connect as well as supporter can monitor the exam.
Improvements:
- SEB Server Setup: Default Time-Zone also globally configurable besides per user.
- Exam Configuration Import: No import of hashed password any more. Preset hashed password form imported files gets deleted or reset.
- Configuration Template: Lists contains more entries, better usability.
- Exam: New force delete functionality if an Exam cannot be deleted regularly (mostly caused by LMS Setup disconnection).
- Exam: Added confirmation dialogue on Indicator deletion attempt.
- SEB Server: Log improvements.
- User Account: Possibility to setup SEB Server to set newly registered Users inactive for better control of user registration.
- User Access: Define and Implement new SEB Server feature concept that will provide dedicated user role privileges in the future.
- Improvement of user ID resolution and handshake completion for SEB connecting with SEB-Server. SEB client now sent as much client information as possible and finish up the SEB Server handshake more quickly.
- Connection Configuration Improve (or remove) Date Filter.
- DB Migration Table charset fix for all tables, set to "utf8mb4_general"
- New SEB Settings in SEB Server GUI for version 2.0
- Table sort direction selection and table column length selection stick to User Session
Bugfixes:
- Exam: fixed, LMS/Assessment Tool data update end-time cannot be reset to null.
- SEB Client Connection: Fixed handshake finishing for SEBs that got missing during handshake. SEB Server invalidates unfinished handshakes now.
- Exam - SEB Restriction Details: Additional BEK is not sent to Moodle immediately.
- LMS Integration: OLAT Integration seems to not work correctly with new OLAT version any-more.
- LMS Integration: SEB Lock is not applied, when importing exam using a template.
- LMS Integration: Semicolon in short name of a course in Moodle leads to error message when importing an exam.
- LMS Lookup: Illegal Thread Access Error on LMS Lookup Page.
- Monitoring: ASK: List of sent ASK per SEB Client sometimes shows empty rows.
- Monitoring: SEB Version check caching issue .
- Monitoring: Low page load on sorted SEB connection table for finished or archived exams.
- Monitoring: Monitoring table selection stick to actual selection when updating.
- Forms: Password plaintext view: special chars are masked incorrectly.
- Configuration Template: Wrong deletions on SEB Server update with migration.
Docker-Image:
Exact release version: docker pull anhefti/seb-server:v1.6.0 (sha256:878f411ee3df84019f2b167ad4fd29ecad77c90063b2ced4e16e69edab74805e)
Stable minor version: docker pull anhefti/seb-server:v1.6-stable
- Missing Pending Notification Page Update in Monitoring Detail view
- Importing an exam without template throws error
- LMS name resolving sometimes gets "null" values for names
- New Ready State is not involved within the Filter numbers
- Page of ASK Grants in Exam has table selection action problems
- Sorting of start and end-date in Assessment Tool Lookup not working as expected
- Running Exam without LMS is greyed out without reason
SEB - SEB Server Compatibility
@ -102,24 +84,14 @@ SEB - SEB Server Compatibility
The table below shows available and upcoming SEB client versions that has SEB Server integration support and are compatible with particular
SEB Server versions. There is an entry for each platform with a beta or testing release date and an official release date.
**SEB Server Version 1.6.X**
**SEB Server Version 2.0.x**
.. csv-table::
:header: "Platform / OS", "Release Version"
"SEB Client for iOS", "3.3.2"
"SEB Client for Mac", "3.3.2"
"SEB Client for Windows", "3.7.0"
**SEB Server Version 1.5.X**
.. csv-table::
:header: "Platform / OS", "Beta/RC Version", "Release Version"
"SEB Client for iOS", "ASK: 3.3", "3.1 (ASK: 3.3)"
"SEB Client for Mac", "ASK: 3.3pre", "3.1 (Zoom: 3.2/ASK: 3.3)"
"SEB Client for Windows", "--", "3.5.0 "
"SEB Client for iOS", "3.4 (3.3.3 without screen proctoring)"
"SEB Client for Mac", "3.4"
"SEB Client for Windows", "3.8"
Install SEB Server
------------------

View file

@ -1,15 +0,0 @@
coverage:
precision: 2
round: down
range: "30..70"
status:
project:
default:
threshold: 5%
patch: off
github_checks:
annotations: false
fixes:
-"::seb-server/"

View file

@ -1,4 +1,4 @@
FROM openjdk:17-jdk-slim
FROM eclipse-temurin:17-jre
ENV SERVER_PORT="8080"
ENV JMX_PORT=
@ -38,4 +38,4 @@ CMD if [ "x${JMX_PORT}" = "x" ] ; \
--spring.config.location=file:/sebserver/config/spring/,classpath:/config/; \
fi
EXPOSE $SERVER_PORT $JMX_PORT
EXPOSE $SERVER_PORT $JMX_PORT

View file

@ -39,7 +39,7 @@ This are usually password protected certificates in different file-formats. SEB
.. image:: images/certificates/cert_list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/certificates/cert_list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/certificates/cert_list.png
Use Cases

View file

@ -16,7 +16,7 @@ a specific template by name for example.
.. image:: images/config_templates/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/list.png
To create a new exam configuration template, use the "Add Configuration Template" action from the right action pane. You will see the creation form
with a name and description for the new template. At least a unique name is mandatory, and the description is optional.
@ -32,7 +32,7 @@ SEB Server. The name of an attribute is composed of the internal attribute name
.. image:: images/config_templates/templateView.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/templateView.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/templateView.png
The type of the attribute defines the input field type and cannot be changed in any way. The view defines the tab on which the settings attribute is placed.
And the group defines the named group where a settings attribute belongs to.
@ -59,7 +59,7 @@ use the "View Configuration Template" action from the right action pane.
.. image:: images/config_templates/templateAttribute.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/templateAttribute.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/templateAttribute.png
Back in the exam configuration template view you are able to create a new SEB exam configuration directly from this template by using the "Create Exam Configuration"
action from the right action pane. The application will present you a creation dialog within a pop-up where you can define a name and description for the
@ -67,7 +67,7 @@ new SEB exam configuration. At least a unique name is mandatory.
.. image:: images/config_templates/createConfig.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/createConfig.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/createConfig.png
After defining a name and description for the new SEB exam configuration you can click on "OK" to do so, and the application will show you the new created
SEB exam configuration in the usual place.

View file

@ -34,7 +34,7 @@ of the "Configuration" section on the menu on the left hand side.
.. image:: images/connection_config/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/connection_config/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/connection_config/list.png
The list shows the name, the date of creation and the status of the connection configurations in a column. With SEB Server administrator role
also an institution column is shown because a SEB Server administrator is able to see all connection configurations of all institutions.
@ -46,7 +46,7 @@ or remove selection to hide all fallback related attributes.
.. image:: images/connection_config/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/connection_config/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/connection_config/new.png
Short description of all attributes of a connection configuration:
@ -113,7 +113,7 @@ these exams with the multi selector. It is also possible to filter the list by t
.. image:: images/connection_config/examSelection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/connection_config/examSelection.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/connection_config/examSelection.png

View file

@ -23,7 +23,7 @@ indicators for monitoring as well as defining details of the SEB restriction if
.. image:: images/exam/examNotReady.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examNotReady.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examNotReady.png
At the beginning of the page - if there is no note - you see all the details of the exam.
@ -70,7 +70,7 @@ the pop-up shows the description and the status of the selected configuration.
.. image:: images/exam/addExamConfig.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/addExamConfig.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/addExamConfig.png
There is also the possibility to encrypt the SEB exam configuration by a password. This is done before the SEB configuration is send to a connecting
SEB client. Since in the most cases the SEB client connections are over HTTPS / TSL there is already a good protection in place and an
@ -85,7 +85,7 @@ The new action "Edit Encryption Password" can be used to open up the original ap
.. image:: images/exam/editEncryptionPassword.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/editEncryptionPassword.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/editEncryptionPassword.png
.. note::
If you need to use the same SEB exam configuration for different exams, you can just make a copy of a SEB exam configuration that is already used
@ -101,7 +101,7 @@ the SEB restriction details with the generated Config-Key. See :ref:`sebRestrict
.. image:: images/exam/examConfig.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examConfig.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examConfig.png
To just generate the Config-Key for testing purposes or to manually apply it on an LMS/Assessment Tool without the automated SEB restriction feature you can
use the "Export Config-Key" action to generate the key. The Config-Key is presented by a pop-up and can be selected and copied to the clip-board.
@ -170,7 +170,7 @@ section in the monitoring view.
.. image:: images/exam/archiveExamsFilter.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/archiveExamsFilter.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/archiveExamsFilter.png
This is also a good use-case if you want to remove an LMS/Assessment Tool and LMS/Assessment Tool Setup but still want to be able to access the exams data on the SEB Server.
In this case you can archive all exams from that LMS/Assessment Tool Setup before deactivating or deleting the respective LMS/Assessment Tool Setup.
@ -196,7 +196,7 @@ If you have "Exam Administrator" privileges you are able to entirely delete an e
.. image:: images/exam/deleteExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/deleteExam.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/deleteExam.png
- Within the delete exam dialog you see a list of a dependencies that also will be deleted. Please check them carefully before deletion.
- Use the below action to either delete the exam or cancel the action and go back to the exam view.

View file

@ -24,7 +24,7 @@ for this feature.
.. image:: images/exam/examASK.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASK.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASK.png
Within this settings page you can enable or disable the feature any time also during a running exam. On the exam page you can see if the feature is enabled
when the shield-icon is not strike-through.
@ -36,7 +36,7 @@ ASK for the same build.
.. image:: images/exam/examASKedit.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKedit.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKedit.png
In the following list you can see all APK that has been sent to the SEB Server by connected SEB clients. For a particular ASK you can also see
how many SEB Clients has been sent this ASK and has the same signature.
@ -47,7 +47,7 @@ below. You can give a name for the grant and save the grant by using "OK" action
.. image:: images/exam/examASKgrant.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKgrant.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKgrant.png
You see all granted ASKs within the second list with the ASK hash and the name that was given on grant. All explicitly granted ASKs from that list are
considered trusted for the exam. And future SEB client connection that connects with one of the ASKs from this list are granted. All SEB clients that
@ -65,7 +65,7 @@ SEB connections are marked red and with the tag "- ASK Grant Denied" after the s
.. image:: images/exam/examASKMonitoring1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKMonitoring1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKMonitoring1.png
In the detail view of a SEB client connection you can see this too and you are able to apply a grant for a denied APK afterwards by using the
"Grant App Signature Key" action from the right action pane. This will open a pop-up with the ASK hash and an input field for the name of the
@ -73,11 +73,11 @@ grant.
.. image:: images/exam/examASKMonitoring2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKMonitoring2.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKMonitoring2.png
.. image:: images/exam/examASKMonitoring3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKMonitoring3.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKMonitoring3.png
After you have granted a unknown ASK, the grant is also applied to the respective SEB connection and to all following SEB connections that

View file

@ -33,7 +33,7 @@ Client groups are located on an Exam setup page after the indicators at the end
.. image:: images/exam/examClientgroupAdd.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupAdd.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupAdd.png
To add a new SEB Client Group use the respective action from the right action pane. You will be presented with the SEB Client Group edit page
where you are able to give the new SEB Client Group a name and choose a type of the client group that you want to create.
@ -45,7 +45,7 @@ the group type. With the additional, specific inputs, the SEB Client Group can b
.. image:: images/exam/examClientgroupIP.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupIP.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupIP.png
For the IP range group type you can give a valid IP range defined with a start IP address and an end IP address. This two inputs are mandatory
and must be valid IPv4 addresses. The range must be a valid range and will be inclusive on the IP match (range-start >= IP <= range-end).
@ -54,7 +54,7 @@ For the SEB OS grouping type you have to choose the OS type from the given types
.. image:: images/exam/examClientgroupWin.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupWin.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupWin.png
If you have finished up your SEB Client Group definition you can save it with the "Save" action from the right action pane or cancel the modifications and
go back to the Exam page. You will see your created SEB Client Groups within its respective section on the Exam page and are able to edit them again, or delete
@ -62,7 +62,7 @@ a certain SEB Client group from the list.
.. image:: images/exam/examClientgroups.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroups.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroups.png
Monitoring with SEB Client Groups
---------------------------------
@ -73,7 +73,7 @@ depending on what group(s) a particular SEB applies to.
.. image:: images/exam/examClientgroupMonitoring1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupMonitoring1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupMonitoring1.png
With the "Client Group Filter" on the right action pane, you are able to show/hide individual groups. With this filtering you can adapt your monitoring view
for specialized monitoring view, to only see SEB client connection from one particular room for example or of one particular client OS.
@ -86,4 +86,4 @@ for specialized monitoring view, to only see SEB client connection from one part
.. image:: images/exam/examClientgroupMonitoring2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupMonitoring2.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupMonitoring2.png

View file

@ -26,7 +26,7 @@ filter use the clear symbol right to the lens symbol. See :ref:`gui-label` for m
.. image:: images/exam_config/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/list.png
To view details of a specific exam configuration either double-click on a list entry or select a list entry and use the "View Exam Configuration"
action from the right action pane. In the detail view all general settings are shown and also a list of exams that uses this exam configuration.
@ -46,7 +46,7 @@ is assigned to an exam, the status changes automatically to "In Use" and the SEB
.. image:: images/exam_config/view.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/view.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/view.png
An exam configuration has a general settings part (like other domain objects has within SEB Server) that defines the name, description and status
of the exam configuration that are used to maintain the exam configurations SEB Server internally. And an exam configuration has, separated from
@ -64,7 +64,7 @@ while also publish them to exams that uses this exam configuration.
.. image:: images/exam_config/settings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/settings.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/settings.png
.. note::
Changes in SEB settings must be published to be available on exports, exams, or other uses. Before publishing they are not
@ -93,7 +93,7 @@ of the exam configuration. The key will be presented by a pop-up dialog where it
.. image:: images/exam_config/config_key.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/config_key.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/config_key.png
Batch Actions
@ -110,7 +110,7 @@ For list multi-selection documentation see :ref:`List Multi-Selection <listmulti
.. image:: images/exam_config/batch-actions.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/batch-actions.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/batch-actions.png
@ -121,7 +121,7 @@ With this batch action you are able to change the state of all selected exam con
.. image:: images/exam_config/batch-actions_statechange.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/batch-actions_statechange.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/batch-actions_statechange.png
Within the batch-action pop-up you can see how many exam configurations you have selected for the action. Now you are able to select the target state
to where you would like to change all selected exam configurations state to. Then you can apply the batch action with "Change State" or cancel the batch-action.
@ -131,7 +131,7 @@ has been applied and how many has failed.
.. image:: images/exam_config/batch-actions_statechange_finished.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/batch-actions_statechange_finished.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/batch-actions_statechange_finished.png
**Reset To Template Settings**

View file

@ -20,7 +20,7 @@ are able to filter and sort the list as usual to find to right course for import
.. image:: images/exam/lmsExamLookup.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/lmsExamLookup.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/lmsExamLookup.png
You can view more details of a course by double-click on the specific list entry or by selecting the list entry and click the "Show LMS/Assessment Tool Exam Details"
action form the action pane on the right hand side. The application will open a pop-up with available detail information of the course.
@ -33,7 +33,7 @@ are available and fetched or not.
.. image:: images/exam/lmsExamLookupLate.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/lmsExamLookupLate.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/lmsExamLookupLate.png
To import a course as an exam find the specific course on the list by using the filter and select the list entry. Use the "Import As Exam" action
from the action pane on the right hand side.
@ -63,7 +63,7 @@ Initially choose a type for the exam - "Exam Type" - that is currently only used
.. image:: images/exam/importExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/importExam.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/importExam.png
Furthermore you can select and apply all exam supporter that shall be able to see and support this exam while running. To do so, click in the
input field of the attribute "Exam Supporter" to see a drop down list of all available users for selection. To filter the drop down list, start
@ -78,7 +78,7 @@ for monitoring the exam later on.
.. image:: images/exam/examReady.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examReady.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examReady.png
How all this different aspects of the exam are defined and prepared is part of the next chapters.

View file

@ -9,7 +9,7 @@ add some other indicators to the exam to be able to get notified while monitorin
.. image:: images/exam/examIndicators.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examIndicators.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examIndicators.png
To add a new indicator to the exam you can use the "Add Indicator" action from the right action pane. In the indicator edit page you are able to give the
new indicator a name. This name will be displayed in the SEB client connection table on monitoring section as column name for the column of this
@ -18,7 +18,7 @@ If you have selected one indicator type, a description will be shown just below
.. image:: images/exam/editIndicator.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/editIndicator.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/editIndicator.png
The type of indicators are pre-defined within the SEB Server and restricts the number of available indicators that can be used. Currently following
indicators are supported:

View file

@ -9,14 +9,14 @@ once unreachable exam, the respective exam would change back to normal and is no
.. image:: images/exam/examList.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examList.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examList.png
Sometimes an entire LMS/Assessment Tool is not available and a lot of exams are grayed. In this case you can use the new filter "Show/Hide Missing Exams" from the
action pane on the right to filter out this exams from the list.
.. image:: images/exam/examListHideMissing.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examListHideMissing.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examListHideMissing.png
To get more information about what is missing for an exam that is marked in red, just open the exam by select and use "View Exam" or by double-click
on the list entry. In the Exam view page you will see a warning message pointing out all the missing things to setup the exam.
@ -34,7 +34,7 @@ you want to archive or delete, select the respective batch action on the right a
.. image:: images/exam/examBatchArchive.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examBatchArchive.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examBatchArchive.png
You see your selection again within a list on the pop-up and when ready you can start the batch action and apply it to every selected exam
that is in a valid state to apply the action.

View file

@ -1,151 +0,0 @@
.. _sebProctoringSettings-label:
Live Proctoring (Deprecated)
========================
.. attention::
Deprecation Note:
The SEB Server live proctoring integration with Zoom and Jitsi Meet is deprecated in SEB Server 1.6.
The upcoming version of SEB Server, targeted for August 2024, will remove the live proctoring integration with Zoom and Jitsi Meet.
Live proctoring is experimental feature of SEB and SEB Server. The feature is fully optional and not enabled by default.
The main goal of the live proctoring feature is to support the integration
of an external meeting service like Jitsi Meet or Zoom for example, within a SEB and SEB Server setup for an exam.
In this scenario a SEB client is able to join a meeting and send audio and video data to the meeting where a proctor can watch the students during
an exam within this meeting(s). The role of SEB Server in this scenario is mainly to bind a particular meeting service and automatically create
meeting rooms, instruct connected SEB clients to join a certain meeting room. SEB Server can also instruct SEB clients to participate in the meeting by
allowing connected SEB clients to receive audio and video as well as enabling chat functionality.
.. note::
This feature is still in a prototype state and not all functionality might work as expected. Basically the meeting features
are given or restricted by the meeting service that is used and the API and GUI that is given by that meeting service client
To be able to use the integrated live proctoring feature with SEB and SEB Server you need an external meeting service that can be used by the SEB Server to automatically create meetings.
If this feature is enabled, you are able to setup a live proctoring service for a specified exam that can be used in the monitoring later on while the exam is running and SEB clients are connected.
Currently supported meeting services are:
- `Jitsi Meet <https://jitsi.org/jitsi-meet/>`_ with JWT token authentication enabled.
- `Zoom meeting service <https://zoom.us/>`_ with an account plan that fits your need and supports the `Zoom API and Client SDKs <https://marketplace.zoom.us/docs/sdk/native-sdks/developer-accounts>`_.
To bind and setup a live proctoring service in SEB Server for an exam, go to the view page of the exam and use the "Proctoring Settings" action on the right action pane to open up the proctoring settings dialog.
.. image:: images/exam/proctoringSettingsJITSI.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/proctoringSettingsJITSI.png
Within the proctoring settings dialog you are able to switch the service on and off by using the "Proctoring enabled" checkbox. You also see if the proctoring service is enabled within
the action icon that is either an eye when active or a slashed eye when not active.
To define and bind a service you have to choose a service type from the available service types. And you need to give the API access credentials like "Application Key" and "Secret" for
the external meeting service. SEB Server will then try to connect to the meeting service with these credentials to automatically create meetings/rooms for proctoring.
Within the "Collecting Room Size" field you can define the number of maximal participants that shall be collected within one proctoring room. SEB Server will automatically
create these collecting rooms while SEB clients are connecting to the running exam in the monitoring view.
.. note::
If you choose Zoom as your proctoring service and you also want to conduct your exam with Mac and/or iOS SEB Clients you will also need a Zoom SDK-Key and -Secret since SEB Mac/iOS uses Zoom SDK for proctoring integration.
Scroll down the Proctoring Settings window to see more settings for SEB Server based proctoring features:
.. image:: images/exam/proctoringSettings2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/proctoringSettings2.png
- Use Zoom App-Client: Enable this setting to use a Zoom App/Desktop client for the origin proctoring room. This needs an existing Zoom Desktop App installation on the proctor's desktop.
- Broadcasting Feature: Enable this to see the broadcasting features buttons in the opened proctoring windows. E.g. "Enable/Disable Audio" and "Enable/Disable Video" buttons.
- Chat Feature: Enable this to see the "Enable/Disable Chat" feature buttons in the opened proctoring windows.
- One to One Room: Enable this to see the One to One Room feature button during an exam monitoring within a SEB Client detail view
- Town-Hall Room: Enable this to see the Town-Hall Room feature button in the exam monitoring view
To read more about this proctoring features, please have a look at `Exam Monitoring <https://seb-server.readthedocs.io/en/latest/monitoring.html#live-proctoring>`_.
After you have all the settings done, use "OK" to confirm the settings. SEB Server will then try to connect to the meeting service with the given settings and check the access.
.. note::
Once a proctoring service is integrated for an exam, it is currently not possible to switch it to another service anymore.
This is because different services needs different meeting reference data on SEB Server and there is no conversion supported.
In the future we will make it possible to at least delete an already existing proctoring setup and to start from scratch.
The SEB client settings for proctoring can be found in the "Exam Configuration" "SEB Settings". There is a new tab with the name "Proctoring" where all SEB settings for proctoring are available.
These settings are directly used by a SEB client that supports the proctoring feature. SEB will initialize with this settings when connecting to SEB Server and also will use this settings as default settings during an exam.
.. image:: images/exam/proctoringSEBSettings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/proctoringSEBSettings.png
Since SEB Server version 1.2 there is also an Zoom service section that let you define the default SEB settings for a Zoom proctoring setup.
Please be aware that not all of the settings are functioning yet. Please refer to the settings tool-tip to get a actual description of
a particular SEB feature setting
**Jitsi Meet**
To setup and configure a Jitsi Meet service for testing you can refer to the `Docker installation documentation <https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker>`_
.. note::
The Jitsi Meet integration works only with JWT authentication. Please refer to the above documentation for how to setup JWT authentication.
.. image:: images/exam/proctoringSettingsJITSI.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/proctoringSettingsJITSI.png
**Zoom**
.. image:: images/exam/proctoringSettingsZoom.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/proctoringSettingsZoom.png
To integrate Zoom meetings as a live proctoring service within SEB Server you need to have an appropriate Zoom account with API and SDK access.
`Zoom API and Client SDKs <https://marketplace.zoom.us/docs/sdk/native-sdks/developer-accounts>`_.
Then you need to setup the Zoom account to run with JWT apps as described:
- Login into your Zoom account and use "App Marketplace" to setup an API app account
.. image:: images/exam/zoom1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom1.png
- Within the Zoom Marketplace use "Develop" and select "Build App".
.. image:: images/exam/zoom2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom2.png
.. image:: images/exam/zoom3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom3.png
- Choose "MeetingSDK" fist to create a meeting SDK app that is been used SEB to connect to Zoom meetings.
- Follow the instructions to create the API account and use the "SDK Key" and "SDK Secret" within the setup in SEB Server proctoring settings
.. image:: images/exam/zoom4.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom4.png
- Then choose the "Server-toServer OAuth" to create a API access for SEB Server to connect to Zoom service API. This is needed on SEB Server do create and maintain users and meetings
- Follow the instructions to create the "Server-toServer OAuth" app on the page and make sure you have and set needed privileges as shown below.
.. image:: images/exam/zoomauth1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoomauth1.png
.. image:: images/exam/zoomauth2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoomauth2.png
.. image:: images/exam/zoomauth3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoomauth3.png
Reset Rooms
-----------
This functionality is new since SEB Server version 1.5 and allows you to reset already created but collecting rooms for an exam. This action is only
available if you already have collecting rooms for an running exam and if there is no active SEB client connected to the exam. Then you can reset your
proctoring rooms with this actions and also do some proctoring settings changes.
.. image:: images/exam/proctoringSettingsZoom.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/proctoringSettingsZoom.png

View file

@ -27,14 +27,14 @@ The quit password can be set on Exam creation or import:
.. image:: images/exam/quitPasswordImport.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/quitPasswordImport.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/quitPasswordImport.png
As well as in the Exam edit view:
.. image:: images/exam/quitPasswordEdit.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/quitPasswordEdit.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/quitPasswordEdit.png
If the Exam was created from an LMS/Assessment Tool with SEB Server integration that allows to send the quit-password

View file

@ -11,7 +11,7 @@ In the exam details page you will see two action related to the SEB restriction
.. image:: images/exam/sebRestriction.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/sebRestriction.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/sebRestriction.png
Use the "Apply SEB Lock" on an exam that has not already locked the course for SEB on the LMS/Assessment Tool to do apply the restriction and lock the course or quiz
for SEB access only. This will call the SEB course restriction API on the LMS/Assessment Tool and will send all information to lock the course on the LMS/Assessment Tool.
@ -28,7 +28,7 @@ comma separated list if needed.
.. image:: images/exam/sebRestrictionDetails.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/sebRestrictionDetails.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/sebRestrictionDetails.png
**SEB restriction on Open edX**

View file

@ -17,7 +17,7 @@ and also shows which one is the default for the institution.
.. image:: images/exam_template/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/list.png
.. note::
The "Default Template" flag indicates the one exam template that is the default template for an institution. This just means that this template
@ -32,7 +32,7 @@ SEB Server will then present you the exam template creation view on that some in
.. image:: images/exam_template/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/new.png
- **Name** The name of the exam template to identify it in the list/library
- **Description** A short description ideally describing the purpose of the exam template
@ -46,7 +46,7 @@ view that looks similar to the exam administration view.
.. image:: images/exam_template/view.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/view.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/view.png
Here you can edit the settings done before by using the "Edit Exam Template" action form the right action pane.
You can also delete an exam template entirely by using the "Delete Exam Template" action from the right action pane.
@ -54,14 +54,9 @@ And you are able to add/edit/remove monitoring indicators for the exam template
.. image:: images/exam_template/indicator.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/indicator.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/indicator.png
There are also proctoring settings available since SEB Server version 1.4 for the exam template. They just have the same settings and
look like the ones on the Exam and will get copied for an exam imported with the respective template that defines the proctoring settings.
.. image:: images/exam_template/proctoringSettings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/proctoringSettings.png
TODO Screen Proctoring Settings
Import Exam with Template
@ -72,7 +67,7 @@ use the "Import as Exam" action for a LMS/Assessment Tool exam that you want to
.. image:: images/exam_template/select1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/select1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/select1.png
Now there is a new selector field named "Exam Template" where you can choose the exam template to use on import. When you select one the template attributes
like "Exam Type" or "Exam Supporter" are automatically applied from the template settings. You are still able to edit the settings e.g. add more or remove supporter.

30
docs/exam_testrun.rst Normal file
View file

@ -0,0 +1,30 @@
Exam Test-Run (New)
--------------------------------
With the new SEB Server version 2.0 there is a new feature Test-Run for none running / upcoming exams. Since upcoming
Exams on SEB Server are not available for SEB connections and Monitoring one have to has to change the course start date
to apply testing beforehand of an Exam.Server
With new new Rest-Run feature it is now possible to change an Exam in upcoming status to a dedicated Test-Run status where
SEB clients are able to connect and SEB Server Exam Administrator or Supporter are able to Monitor the Exam as long a
the Exam stays within this Test-Run status.
You can set an Exam into Test-Run status by using the respective action on the Exam view:
.. image:: images/exam/examEnableTestrun.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examEnableTestrun.png
After enable Test-Run for an Exam, you can see an information at the top if the Exam view that informs you about the
Test Run status of the Exam.
After testing is done you can disable the Test-Run status just by using the respective action on the right and the Exam
goes back to up-coming status and is not available anymore for SEB connections and Monitoring.
.. image:: images/exam/examEnableTestrun.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examEnableTestrun.png
.. note::
If an Exam changes to Running status due to the start time passing and is still in status Test-Run, SEB Sever will
automatically change the Exam from Test-Run to Running status and all features of a running Exam are available.

View file

@ -15,13 +15,12 @@ put with some fields you have to provide instead of they coming from LMS/Assessm
.. image:: images/exam/examWithURL.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examWithURLNew.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examWithURL.png
.. image:: images/exam/examWithURL.png
.. image:: images/exam/examWithURLNew.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examWithURLNew.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examWithURLNew.png
@ -48,7 +47,7 @@ go one with setting up your Exam.
.. image:: images/exam/examWithURLView.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examWithURLView.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examWithURLView.png
If you want to edit the Exam settings please use the edit action on the right action pane. Here you can also modify
the data that usually comes from LMS/Assessment Tool. You can change name, start- and end-date directly here within

View file

@ -20,7 +20,9 @@ We will go through all the steps to setting up an exam for Safe Exam Browser wit
exam_clientgroups
exam_ask
exam_restriction
exam_proctoring
exam_screen_proctoring
exam_list
exam_template
exam_testrun
screen_proctoring

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

View file

@ -21,5 +21,6 @@ Table of Content
configurations
exams
monitoring
screen_proctoring
troubleshooting

View file

@ -34,7 +34,7 @@ Currently an institution has a name, an optional url-suffix and an optional logo
.. image:: images/institution/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/list.png
As an institutional administrator only the institution one belongs to can be seen and be modified by the user.
The user will see the institution form in view mode by clicking on the "Institution" section on the left hand menu
@ -44,7 +44,7 @@ therefore a SEB Server administrator role is needed.
.. image:: images/institution/view_institutional.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/view_institutional.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/view_institutional.png
@ -69,7 +69,7 @@ access the application with a web-browser and have the own logo.
.. image:: images/institution/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/new.png
**Change the name/logo of an existing or own Institution**
@ -94,7 +94,7 @@ access the application with a web-browser and have the own logo.
.. image:: images/institution/view_institutional.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/view_institutional.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/view_institutional.png
**Activate / Deactivate an existing institution**

16
docs/lms_ans.rst Normal file
View file

@ -0,0 +1,16 @@
SEB Server Ans Delft Integration
===============================
The `Ans Delft <https://ans.app>`_ Assessment Tool can be integrated with SEB Server for the most common features like
- Course Access
- SEB Course Restriction
- Login Name Resolving
SEB Server uses the existing `Ans Delft API <https://ans.app/api/docs/index.html>`_ to apply the integration.
As usual you need a valid Ans client API account from Ans Delft to be able to connect SEB Server with your
Ans server. Please create or request such an account from the Ans team, and use either the given credentials or
a given access-token to connect SEB Server to the Ans API.
All the above listed Assessment Tool integration features should then work as described within SEB Server.

130
docs/lms_edx.rst Normal file
View file

@ -0,0 +1,130 @@
.. _lms-api-account-edx-label:
SEB Server Open edX Integration
===============================
SEB Server integrates with Open edX standard API for the following features:
- Course Access
- Login Name Resolving
.. note::
If you want to use the automated SEB Client Restriction feature too, the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ must be installed properly on the Assessment Tool.
Also refer to the Open edX API documentation for more information about the `Open edX REST API <https://courses.edx.org/api-docs/>`_
Create Open edX API Access Account
-----------------------------------
To be able to create an API access-account on Open edX you need a user-account with staff and administration privileges.
**For Open edX Hawthorn and Ironwood versions following the steps below::**
- Login to Open edX Assessment Tool Administration with an appropriate user-account that has administration rights. And find the Users section:
.. image:: images/lmssetup/openEdxAPIAccess1.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess1.bmp
- Create a new User-Account that acts as an API account. The account must at least have the permissions to query the course API of Open edX and to access the seb_openedx plugin permission.
- Make sure that "Staff" status is checked for the account.
.. image:: images/lmssetup/openEdxAPIAccess2.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess2.bmp
- Back in the administration homepage, find the OAUT2 - Client section and create a new API Client Access for the given User-Account. The Client id and Client secret are automatically generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess3.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess3.bmp
.. image:: images/lmssetup/openEdxAPIAccess4.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess4.bmp
Once the client registration was successful the client id and client secret can be used within the SEB Server to access the course- and SEB-restriction API of Open edX as described in the next step section
.. note::
Since Open edX Juniper is using Django Oauth Toolkit instead of Django Oauth Provider the last step in the above guide looks slightly different. Please see below the last step for setting up on an Open edX Juniper version.
- Back in the administration homepage, find the DJANGO OAUTH TOOLKIT - Applications section and create a new API Application Access for the given User-Account. The Client id can be defined and the Client secret is automatically be generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess5.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess5.png
.. image:: images/lmssetup/openEdxAPIAccess6.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess6.png
.. _lms-setup-rest-plugin-label:
Install SEB restriction API plugin
----------------------------------
.. _lms-setup-edx-plugin-label:
**Open edX SEB Plugin**
There is a SEB integration plugin developed and supported by `eduNEXT <https://www.edunext.co/>`_.
- `Documentation <https://seb-openedx.readthedocs.io/en/latest/>`_
- `Repository <https://github.com/eduNEXT/seb-openedx>`_
.. _lms-setup-moodle-plugin-label:
**Moodle Plugin for SEB Server**
There is a new SEB Server integration plugin for Moodle available since SEB Server 1.5 that can be used with the Assessment Tool Setup type Moodle with SEB Server Plugin.
This Plugin supports and improves all common SEB Server Assessment Tool binding features such as Course-Access, SEB Restriction and Assessment Tool Session Name Resolving.
It is also planed to extend and improve this plugin with new Moodle specific feature for further releases of SEB Server.
- `Documentation <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
- `Repository <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
Create a new Assessment Tool Setup for Open edX
-----------------------------------------------
A new Open edX system has been installed within your institution and to be able to use the system also for e-assessments with SEB and SEB Server,
you have to bind the Assessment Tool to the SEB Server.
- If not already done, install the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ on the Open edX system first.
- If you don't already have an API access account on Open edX side, `create one <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-api-account-edx-label>`_
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "Assessment Tool Setup" within the navigation on the left hand side.
- Use the "Add Assessment Tool Setup" action from the right action pane to open a Assessment Tool Setup creation form.
- Give a unique name to the new Assessment Tool Setup for internally identification.
- Set the main URL that points to the new Assessment Tool system. This is usually the URL that is also used with the Browser to connect to the main page of the Assessment Tool system
- Set the API credentials that has been creates within step two (client-id, secret).
- Use the "Activate Assessment Tool Setup" action on the right action pane to test, save and activate the new Assessment Tool Setup within one step.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the Assessment Tool is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the Assessment Tool
the SEB Server will notify an error dialog to the user.
**Change API Credentials of an Active Assessment Tool Setup**
The API access account on the Assessment Tool has been expired and you have to create a new one or update the old one which both result in new API access credentials
that has to be set on the existing Assessment Tool Setup on the SEB Server.
.. image:: images/lmssetup/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/list.png
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "Assessment Tool Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified Assessment Tool Setup.
- Select the Assessment Tool Setup from the list and use the "Edit Assessment Tool Setup" action from the right action pane to open the Assessment Tool Setup in edit mode.
- Set the new credentials and make sure, the Assessment Tool Setup is still active.
- Use the "Save Assessment Tool Setup" action form the right action pane to save the changes and test the connection.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the Assessment Tool is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the Assessment Tool
the SEB Server will notify an error dialog to the user.

168
docs/lms_moodle.rst Normal file
View file

@ -0,0 +1,168 @@
SEB Server Moodle Integration
===============================
SEB Server has two different Moodle integration methods or features. One for bare Moodle without any additional Plugin
installed and one for Moodle instances that has the SEB Server Moodle Plugin installed.
For more information about the Moodle standard Rest API, please also have a look at: `Moodle REST API <https://docs.moodle.org/dev/Web_service_API_functions>`_
Moodle without SEB Server Plugin
---------------------------------
Without any plugin, Moodle supports the following standard integration features:
- Course Access
- SEB Course Restriction
.. note::
If you want to use Moodle with SEB Server, we recommend to install the new Moodle Plugin for SEB Server for better integration with Moodle.
This plugin comes with the common SEB Server integration features and improved Moodle binding. For more information see the section below.
** Moodle Client API Account**
To be able to create an Assessment Tool Setup for Moodle you need a Moodle API client account. You can then use this account in the Assessment Tool Setup to connect to the Assessment Tool.
Since SEB Server uses some functions from the Moodle's mobile API, you have to make sure the web services for mobile apps are enabled within your Moodle setup.
To do so please login to Moodle with an administrator account and go to "Side Administration", scroll down to "Mobile App" and choose "Mobile Settings.
.. image:: images/lmssetup/moodle_mobile.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/moodle_mobile.png
If you have a restrictive Moodle setup and troubles with the Moodle API account to use with SEB Server, please try to import the following
Moodle role profile within your Moodle instance. This profile will create a SEB Server role within Moodle that can be used to apply to an
API account to be used with SEB Server. The role defines only the necessary privileges and functions needed for SEB Server communication.
Moodle role and account settings: :download:`XML <files/webservice_seb-server.xml>`
Moodle with new SEB Server Plugin 2.0
--------------------------------------
For SEB Server version 2.0 there is also a new version of the Moodle SEB Server Plugin 2.0 that can be installed on Moodle
and has many new features to integrate even more with SEB Server as the existing version 1.0.the
.. note::
We strongly recommend to update to the newest Moodle SEB Server Plugin version 2.0 for SEB Server version 2.0. The older
plugin version 1.0 might still work as expected but we cannot guarantee that and also version 1.0 will not be supported
anymore. If you still have the old version of Moodle SEB Server Plugin 1.0 installed, SEB Server would recognize this and
inform you about this when testing or creating a new Assessment Tool Setup for Moodle with Plugin.
We also recommend to make a transition from existing Assessment Tool Setups with old Plugin to new Assessment Tool Setup with new Moodle Plugin.
This would mean that you delete all existing Assessment Tool Setups with Moodle (after archived your Exams you want to hold on SEB Server).
And after deletion of old Assessment Tools Setup with Moodle Plugin, install the new Moodle Plugin on Moodle site and setup
the Assessment Tool Setup for it in SEB Server.
The SEB Server Moodle Plugin 2.0 still supports the usual functionality:
- Course Access
- SEB Course Restriction
- Login Name Resolving
Additionally the full Moodle integration also comes with the following new features:
- SEB Server Admin can prepare Exam Template that can be used by Moodle Teacher Account to import Exams from Moodle site
- Moodle Teacher Account can automatically import an Exam on SEB Server from Moodle without having to go the SEB Server
- Moodle Teacher Account can automatically login to SEB Server Monitoring for a running quiz from Moodle site
- Moodle Teacher Account can also monitor the screen proctoring of a running quiz if available
To create or get a proper Moodle API Client account that is needed to connect SEB Server to Moodle, please have a look
at the above chapter ** Moodle Client API Account**
.. note::
One important change with Moodle SEB Server Plugin 2.0 comes with the fact that for this version it is only possible
to bind a Moodle instance to one SEB Server instance. It is not possible anymore to bind to the same Moodle from
different SEB Server instances or to bind the same Moodle instance twice for a singe SEB Server instance. This is due
to the full integration of SEB Server to Moodle and that Moodle can operate on a bound SEB Server.
For more information about the SEB Server Moodle Plugin and installation, please visit the following sites:
- `Documentation <https://github.com/ethz-let/moodle-quizaccess_sebserver>`_
- `Repository <https://github.com/ethz-let/moodle-quizaccess_sebserver>`_
**Usage of new SEB Server Moodle integration features**
After you have successfully applied a Assessment Tool Setup for Moodle with Plugin 2.0, you can now use the new integration
features among the other usual features like Course Access, SEB Client Restriction and Login Name Resolving.Plugin
A SEB Server Exam Admin can now create and mark Exam Templates that are then recognized by Moodle for later selection.
So a Exam Administrator is able to create a set of Exam Templates that then will be able to choose from a Moodle Teacher
when he/she sets up a quiz in Moodle. The following images shows the setting that indicated a Exam Template for use with
Moodle integration:
.. image:: images/moodle_full/exam_template.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/exam_template.png
On the Moodle site, a Teacher can then create a new quiz within a course:
.. image:: images/moodle_full/moodle_new1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle_new1.png
An within the quiz settings a Moodle Teacher should see a new settings sections "SEB Server" among with the already known
"Safe Exam Browser" section:
.. image:: images/moodle_full/moodle1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle1.png
If a Moodle Teacher wants to setup an Exam with SEB Server for the quiz, he/she can now activate SEB Server integration
for that quiz by selecting "yes" for "Enable SEB Server". The "Safe Exam Browser" section will then automatically switch
to the right settings to use with SEB Server.with
.. image:: images/moodle_full/moodle2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle2.png
Now the Moodle Teacher can select from the available Exam Templates that has been prepared and marked for Assessment Tool
use on SEB Server site. The Moodle Teacher can also enable a SEB quit button or quit-link and set a SEB quit password for the Exam.
After saving all the settings, this might take a while, Moodle automatically imports the Exam for the quiz within SEB Server
and applies all the presetting from the selected Exam Template. When the Exam is running also the SEB Client Restriction
is automatically set on the Exam. If the Exam is not running yet, the SEB Client Restriction will be set from SEB Server
as soon as the Exam becomes running.
.. image:: images/moodle_full/imported_exam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/imported_exam.png
After all this has successfully been created and applied, the Moodle Teacher can go to the quit preview and sees the following
features:
.. image:: images/moodle_full/moodle3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle3.png
In the students view, the student will only see the two buttons:
- Start Safe Exam Browser: This installs and starts the SEB Client for the student
- Download SEB Server configuration file: This will download the SEB Server configuration file and start it with SEB
Only the Moodle Teacher is able to see the third button:
- SEB Server monitoring: This opens up an autologin for the Teacher to SEB ServerMonitoring within a new browser tab.student
SEB Server therefore creates an ad-hoc teacher role account on SEB Server site for this teacher. The Teacher is able to see
the monitoring if its exams as well as screen proctoring monitoring and search for all the exams he/she has created from
Moodle site.
.. image:: images/moodle_full/teacher_autologin.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/teacher_autologin.png
An already imported Exam can also be deleted either from the SEB Server side or from the Moodle side. On the SEB Server
site, a Exam Administrator can just delete the Exam as usual and SEB Server would reset all the integration settings
in Moodle for the respective quiz.
.. image:: images/moodle_full/delete_exam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/delete_exam.png
While on the Moodle side, a Moodle Teacher can disable SEB Server for a particular quiz and Moodle will trigger a deletion
of the Exam on SEB Server and also reset all SEB Server settings on Moodle side.
.. image:: images/moodle_full/deleted_exam_moodle.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/deleted_exam_moodle.png

16
docs/lms_olat.rst Normal file
View file

@ -0,0 +1,16 @@
SEB Server OLAT Integration
===============================
The `OLAT <https://www.olat.org/>`_ Assessment Tool can be integrated with SEB Server for the most common features:
- Course Access
- SEB Course Restriction
- Login Name Resolving
SEB Server integration with OLAT was built with close coworking with the OLAT development team and uses the
existing OLAT API to apply the integration. As usual you need a valid client API account from you OLAT server instance
to be able to connect SEB Server. Please create or request such an account from the OLAT team, and use either the
given credentials or a given access-token to connect SEB Server to the Ans API.
For more information please contact the OLAT Development-Team at `OLAT UZH <https://www.zi.uzh.ch/en/support/e-learning-and-examination/staff/olat.html>`_

View file

@ -1,265 +1,113 @@
.. _lms-setup-label:
Learning Management System Setup
Assessment Tool Setup
================================
Overview
--------
To be able to connect to a learning management system (LMS/Assessment Tool), to view and manage the courses provided by a LMS/Assessment Tool is an essential feature of the SEB Server.
To setup an exam or e-assessment for SEB on SEB Server that is based on a course from a LMS/Assessment Tool, we have to make a binding to the course on the LMS/Assessment Tool.
This is also used to always get the actual course data from LMS/Assessment Tool like start- end-time, name and others.
Another feature of SEB Server that needs a LMS/Assessment Tool communication is the SEB restriction. A SEB restriction will restrict course access on the LMS/Assessment Tool only
To be able to connect to a learning management system (Assessment Tool), to view and manage the courses provided by a Assessment Tool is an essential feature of the SEB Server.
To setup an exam or e-assessment for SEB on SEB Server that is based on a course from a Assessment Tool, we have to make a binding to the course on the Assessment Tool.
This is also used to always get the actual course data from Assessment Tool like start- end-time, name and others.
Another feature of SEB Server that needs a Assessment Tool communication is the SEB restriction. A SEB restriction will restrict course access on the Assessment Tool only
for connection with Safe Exam Browser and will also check if a Safe Exam Browser of trust is used and the right configuration is used by the
Safe Exam Browser that was defines for the exam on the SEB Server.
**Course API**
This API, provided by the LMS/Assessment Tool, is used by the SEB Server to query the available courses and the needed data for each course. This API
is needed to be able to import a course from the LMS/Assessment Tool as an exam into SEB Server and configure the course as an e-assessment with SEB.
Usually this API comes as a REST or SOAP API with the core LMS/Assessment Tool implementation or a plugin.
SEB Server supports this course API's so far:
- Open edX: The standard system `Open edX REST API <https://courses.edx.org/api-docs/>`_. The SEB Server uses the "courses" endpoints to get course data.
- Moodle (Course Access): The standard system `Moodle REST API <https://docs.moodle.org/dev/Web_service_API_functions>`_. The SEB Server uses the standard Moodle rest endpoints to get course data.
Please note that a second Moodle integration part for SEB access restriction with Config-Key will follow together with a Moodle plugin in a future version of SEB Server
This API, provided by the Assessment Tool, is used by the SEB Server to query the available courses and the needed data for each course. This API
is needed to be able to import a course from the Assessment Tool as an exam into SEB Server and configure the course as an e-assessment with SEB.
Usually this API comes as a REST or SOAP API with the core Assessment Tool implementation or a plugin.
**SEB Restriction API**
If the automated SEB restriction functionality is available for a LMS/Assessment Tool depends on the following requirements:
If the automated SEB restriction functionality is available for a Assessment Tool depends on the following requirements:
- There must exist a SEB integration plugin that offers an API to put and pull SEB restrictions in the form of Config-Keys and/or Browser-Exam-Keys
To the LMS/Assessment Tool and a specific course on the LMS/Assessment Tool to restrict the access. Such a plugin may also offer additional restriction features like restricting
To the Assessment Tool and a specific course on the Assessment Tool to restrict the access. Such a plugin may also offer additional restriction features like restricting
on course section or course components or only for specified user roles.
- The SEB integration plugin must be installed on the LMS/Assessment Tool that is used by the SEB Server.
- The SEB integration plugin must be installed on the Assessment Tool that is used by the SEB Server.
For more information about known SEB integration plugins that are supported by the SEB Server see :ref:`lms-setup-rest-plugin-label`
For more information about known SEB integration plugins that are supported by the SEB Server see the respective Assessment Tool integration section.
Regardless if a supported LMS/Assessment Tool is missing the SEB integration plugin installation, the LMS/Assessment Tool can be used with the Course API and an exam
Regardless if a supported Assessment Tool is missing the SEB integration plugin installation, the Assessment Tool can be used with the Course API and an exam
setup will be possible but without automated SEB restriction feature.
To be able to connect to an LMS/Assessment Tool from SEB Server, we need to create an API access account on the LMS/Assessment Tool side that can be used by the SEB Server to
access the API of the LMS/Assessment Tool. How to do this for the different supported types of LMS/Assessment Tool see :ref:`lms-api-account-label`.
After such an account was created, the account credentials, username and password, can be used by the SEB Server to connect to the LMS/Assessment Tool.
Therefore we need to create a LMS/Assessment Tool Setup on the SEB Server.
To be able to connect to an Assessment Tool from SEB Server, we need to create an API access account on the Assessment Tool side that can be used by the SEB Server to
access the API of the Assessment Tool. How to do this for the different supported types of Assessment Tool see :ref:`lms-api-account-label`.
After such an account was created, the account credentials, username and password, can be used by the SEB Server to connect to the Assessment Tool.
Therefore we need to create a Assessment Tool Setup on the SEB Server.
.. image:: images/lmssetup/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/new.png
A SEB Server administrator role will be able to see the institution to which the LMS/Assessment Tool Setup belongs to while an institutional administrator
is only able to see and create LMS/Assessment Tool Setup for its own institution. The name of the LMS/Assessment Tool Setup should be unique and is to identify a LMS/Assessment Tool
SEB Server internally. Use the **"Type"** selector to specify the type of the LMS/Assessment Tool to bind to the SEB Server within the LMS/Assessment Tool Setup. Currently supported are:
A SEB Server administrator role will be able to see the institution to which the Assessment Tool Setup belongs to while an institutional administrator
is only able to see and create Assessment Tool Setup for its own institution. The name of the Assessment Tool Setup should be unique and is to identify a Assessment Tool
SEB Server internally. Use the **"Type"** selector to specify the type of the Assessment Tool to bind to the SEB Server within the Assessment Tool Setup. Currently supported are:
- **Testing**: This is for testing purposes only and can be used to mock a LMS/Assessment Tool to test exam settings. This type provides some mock-up courses within the
LMS/Assessment Tool API of the SEB Server that can be seen in the LMS/Assessment Tool Exam Lookup once the LMS/Assessment Tool text setup is active. This mock-up courses can be imported and configured
as exams like they would exist. But note the a SEB client that is trying to connect to such a course would not be able to connect to the LMS/Assessment Tool since it
- **Testing**: This is for testing purposes only and can be used to mock a Assessment Tool to test exam settings. This type provides some mock-up courses within the
Assessment Tool API of the SEB Server that can be seen in the Assessment Tool Exam Lookup once the Assessment Tool text setup is active. This mock-up courses can be imported and configured
as exams like they would exist. But note the a SEB client that is trying to connect to such a course would not be able to connect to the Assessment Tool since it
is not existing. But a SEB client is able to download the defined exam configuration for testing.
- **Open edX**: This type is to bind an existing `Open edX <https://open.edx.org/>`_ LMS/Assessment Tool system that is available on the Internet or intranet. The SEB
Server tries to make use of the above described API's of the Open edX system.
.. note::
If you want to use the automated SEB restriction feature too, the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ must be installed properly on the LMS/Assessment Tool.
- **Moodle**: This type is to bind an existing `Moodle <https://moodle.org//>`_ LMS/Assessment Tool system that is available on the Internet or intranet. The SEB
Server tries to make use of the described API's of the Moodle system but there is currently no SEB restriction plugin available that works
with SEB Server. Note that Moodle integration is implemented partially within SEB Server version 1.1.x. Only the course access feature is implemented and the course restriction feature will come with a future SEB Server release
- **Open edX**: This type is to bind an existing `Open edX <https://open.edx.org/>`_ Assessment Tool system that is available on the Internet or intranet.
- **Moodle**: This type is to bind an existing `Moodle <https://moodle.org//>`_ Assessment Tool system that is available on the Internet or intranet.
- **Moodle with SEB Server Plugin**: This type is to bind SEB Server with an Moodle Assessment Tool that has SEB Server Plugin for Moodle <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_ installed.
- **Ans Delft**: This type is to bind SEB Server with an `Ans Delft <https://ans.app/>`_ Assessment Tool.
- **OLAT**: This type is to bind SEB Server with an `OLAT <https://www.olat.org/>`_ Assessment Tool.
- **Moodle with SEB Server Plugin**: The `SEB Server Plugin for Moodle <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_ is new and supported by SEB Server since version 1.5.
With this plugin installed on Moodle side, SEB Server is able to more efficiently communicate with Moodle to fetch course data as well as restricting the quiz on Moodle side
For SEB only access, using a auto-generated Browser Exam Key (BEK) for SEB restriction. Also the Moodle user name resolving for SEB Server monitoring is less error prone especially
if Single Sign On some kind of login provider for Moodle is involved. Furthermore the new SEB Server Plugin for Moodle will be constantly extended and improved with new features in the future.
The **"Assessment Tool Server Address"** is the root URL to connect to the Assessment Tool server with HTTP over the Internet or intranet. This is usually the URL that is
also used with the Browser to connect to the main page of the Assessment Tool system. And additionally the credentials that have been created with the creation of the :ref:`lms-api-account-label` has to be set in the Assessment Tool Setup the make the SEB Server
able to securely connect to the Assessment Tool. The API credentials that consists of a client-name and a client-secret must be used with the **"Assessment Tool Server Username"**
and the **"Assessment Tool Server Password"** fields of the Assessment Tool Setup form on SEB Server.
- **Ans Delft**: This type is to bind SEB Server with an `Ans Delft <https://ans.app/>`_ LMS/Assessment Tool. With the API credentials from an Ans Delft instance, SEB Server is able
to connect to the Ans LMS/Assessment Tool and provide the common features for Course-Access, SEB Restriction and LMS/Assessment Tool User Session resolving.
- **OLAT**: This type is to bind SEB Server with an `OLAT <https://www.olat.org/>`_ LMS/Assessment Tool. With the API credentials from an PéAT instance, SEB Server is able
to connect to the OLAT LMS/Assessment Tool and provide the common features for Course-Access, SEB Restriction and LMS/Assessment Tool User Session resolving. For more information please contact the OLAT Development-Team at `OLAT UZH <https://www.zi.uzh.ch/en/support/e-learning-and-examination/staff/olat.html>`_
The **"LMS/Assessment Tool Server Address"** is the root URL to connect to the LMS/Assessment Tool server with HTTP over the Internet or intranet. This is usually the URL that is
also used with the Browser to connect to the main page of the LMS/Assessment Tool system. And additionally the credentials that have been created with the creation of the :ref:`lms-api-account-label` has to be set in the LMS/Assessment Tool Setup the make the SEB Server
able to securely connect to the LMS/Assessment Tool. The API credentials that consists of a client-name and a client-secret must be used with the **"LMS/Assessment Tool Server Username"**
and the **"LMS/Assessment Tool Server Password"** fields of the LMS/Assessment Tool Setup form on SEB Server.
Alternatively to **"LMS/Assessment Tool Server Username"** and **"LMS/Assessment Tool Server Password"** you can use a direct **Access Token** to connect to the LMS/Assessment Tool API if the respective LMS/Assessment Tool allows to
Alternatively to **"Assessment Tool Server Username"** and **"Assessment Tool Server Password"** you can use a direct **Access Token** to connect to the Assessment Tool API if the respective Assessment Tool allows to
generate and use an access token directly.
If the SEB Server running behind a proxy server or a firewall between SEB Server den LMS/Assessment Tool, the additional proxy settings can be used to setup the proxy-connection.
If the SEB Server running behind a proxy server or a firewall between SEB Server den Assessment Tool, the additional proxy settings can be used to setup the proxy-connection.
.. note::
To Setup a Test LMS/Assessment Tool Setup (of type "Test") only a correct URL pattern must be set like "http://test" for example. And API credentials can be anything but must be set.
To Setup a Test Assessment Tool Setup (of type "Test") only a correct URL pattern must be set like "http://test" for example. And API credentials can be anything but must be set.
After all the settings for a LMS/Assessment Tool Setup have been set, one can use either the "Save LMS/Assessment Tool Setup" action to save the LMS/Assessment Tool Setup without activation or the
"Activate LMS/Assessment Tool Setup" action to also activate the settings right after they has been successfully saved. Anyway, for both action there is an initial test
that, additionally to the usual field validation that takes place first, tries to connect to the LMS/Assessment Tool with the given API details. If the connection
After all the settings for a Assessment Tool Setup have been set, one can use either the "Save Assessment Tool Setup" action to save the Assessment Tool Setup without activation or the
"Activate Assessment Tool Setup" action to also activate the settings right after they has been successfully saved. Anyway, for both action there is an initial test
that, additionally to the usual field validation that takes place first, tries to connect to the Assessment Tool with the given API details. If the connection
wasn't successful, the SEB Server will inform the user about a possible reason of failure. Otherwise SEB Server shows a success message and the created
LMS/Assessment Tool Setup can be used.
Assessment Tool Setup can be used.
Use the "Activate / Deactivate LMS/Assessment Tool Setup" action to activate an inactive LMS/Assessment Tool Setup or the deactivate an active LMS/Assessment Tool Setup.
Use the "Activate / Deactivate Assessment Tool Setup" action to activate an inactive Assessment Tool Setup or the deactivate an active Assessment Tool Setup.
.. note::
On deactivation of an LMS/Assessment Tool Setup, the system checks on depending object and will show a confirmation to the user asking that all depending
objects will also been deactivated. Depending objects of an LMS/Assessment Tool Setup are exams that has been imported from the specified LMS/Assessment Tool Setup in the past.
On deactivation of an Assessment Tool Setup, the system checks on depending object and will show a confirmation to the user asking that all depending
objects will also been deactivated. Depending objects of an Assessment Tool Setup are exams that has been imported from the specified Assessment Tool Setup in the past.
For detailed information for each Assessment Tool type and how to bind and use it with SEB Server, please refer to the respective section:
.. toctree::
:maxdepth: 1
lms_moodle
lms_edx
lms_olat
lms_ans
Use Cases
---------
**Create a new LMS/Assessment Tool Setup for Open edX**
**Deactivate Assessment Tool Setup**
A new Open edX system has been installed within your institution and to be able to use the system also for e-assessments with SEB and SEB Server,
you have to bind the LMS/Assessment Tool to the SEB Server.
- If not already done, install the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ on the Open edX system first.
- If you don't already have an API access account on Open edX side, `create one <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-api-account-edx-label>`_
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "LMS/Assessment Tool Setup" within the navigation on the left hand side.
- Use the "Add LMS/Assessment Tool Setup" action from the right action pane to open a LMS/Assessment Tool Setup creation form.
- Give a unique name to the new LMS/Assessment Tool Setup for internally identification.
- Set the main URL that points to the new LMS/Assessment Tool system. This is usually the URL that is also used with the Browser to connect to the main page of the LMS/Assessment Tool system
- Set the API credentials that has been creates within step two (client-id, secret).
- Use the "Activate LMS/Assessment Tool Setup" action on the right action pane to test, save and activate the new LMS/Assessment Tool Setup within one step.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the LMS/Assessment Tool is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the LMS/Assessment Tool
the SEB Server will notify an error dialog to the user.
**Change API Credentials of an Active LMS/Assessment Tool Setup**
The API access account on the LMS/Assessment Tool has been expired and you have to create a new one or update the old one which both result in new API access credentials
that has to be set on the existing LMS/Assessment Tool Setup on the SEB Server.
.. image:: images/lmssetup/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/list.png
A Assessment Tool system that was running on your campus to provide e-assessment with SEB and SEB Server has been shut down and you need to also deactivate
the setup and exams on the SEB Server for this Assessment Tool.
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "LMS/Assessment Tool Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified LMS/Assessment Tool Setup.
- Select the LMS/Assessment Tool Setup from the list and use the "Edit LMS/Assessment Tool Setup" action from the right action pane to open the LMS/Assessment Tool Setup in edit mode.
- Set the new credentials and make sure, the LMS/Assessment Tool Setup is still active.
- Use the "Save LMS/Assessment Tool Setup" action form the right action pane to save the changes and test the connection.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the LMS/Assessment Tool is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the LMS/Assessment Tool
the SEB Server will notify an error dialog to the user.
**Deactivate LMS/Assessment Tool Setup**
A LMS/Assessment Tool system that was running on your campus to provide e-assessment with SEB and SEB Server has been shut down and you need to also deactivate
the setup and exams on the SEB Server for this LMS/Assessment Tool.
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "LMS/Assessment Tool Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified LMS/Assessment Tool Setup.
- Select the specified LMS/Assessment Tool Setup from the list and use the "Deactivate LMS/Assessment Tool Setup" action from the right action pane.
- Alternatively you can also double-click on the LMS/Assessment Tool Setup to fist go into the detailed view of the LMS/Assessment Tool setup and use the "Deactivate LMS/Assessment Tool Setup" action there.
- The system informs you about the number of depending exams that also will be deactivated within the deactivation of the LMS/Assessment Tool Setup.
- Confirm the deactivation and notify that the LMS/Assessment Tool Setup now is listed as "Inactive" in the list.
- Navigate to "LMS/Assessment Tool Exam Lookup" to make sure the courses form the deactivated LMS/Assessment Tool Setup are not available anymore.
- Navigate also to "Exam" and make sure that all previously imported exams from the deactivated LMS/Assessment Tool Setup are not available anymore.
.. _lms-api-account-label:
API Access Account on LMS/Assessment Tool
--------------------------
.. _lms-api-account-edx-label:
**Create Open edX API Access Account**
To be able to create an API access-account on Open edX you need a user-account with staff and administration privileges.
**For Open edX Hawthorn and Ironwood versions following the steps below::**
- Login to Open edX LMS/Assessment Tool Administration with an appropriate user-account that has administration rights. And find the Users section:
.. image:: images/lmssetup/openEdxAPIAccess1.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess1.bmp
- Create a new User-Account that acts as an API account. The account must at least have the permissions to query the course API of Open edX and to access the seb_openedx plugin permission.
- Make sure that "Staff" status is checked for the account.
.. image:: images/lmssetup/openEdxAPIAccess2.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess2.bmp
- Back in the administration homepage, find the OAUT2 - Client section and create a new API Client Access for the given User-Account. The Client id and Client secret are automatically generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess3.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess3.bmp
.. image:: images/lmssetup/openEdxAPIAccess4.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess4.bmp
Once the client registration was successful the client id and client secret can be used within the SEB Server to access the course- and SEB-restriction API of Open edX as described in the next step section
.. note::
Since Open edX Juniper is using Django Oauth Toolkit instead of Django Oauth Provider the last step in the above guide looks slightly different. Please see below the last step for setting up on an Open edX Juniper version.
- Back in the administration homepage, find the DJANGO OAUTH TOOLKIT - Applications section and create a new API Application Access for the given User-Account. The Client id can be defined and the Client secret is automatically be generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess5.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/documentation/docs/images/lmssetup/openEdxAPIAccess5.png
.. image:: images/lmssetup/openEdxAPIAccess6.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/documentation/docs/images/lmssetup/openEdxAPIAccess6.png
**Create Moodle API Access Account**
To be able to create an LMS/Assessment Tool Setup for Moodle you need a Moodle administrator or manager account. You can then use this account in the LMS/Assessment Tool Setup to connect to the LMS/Assessment Tool.
Since SEB Server uses some functions from the Moodle's mobile API, you have to make sure the web services for mobile apps are enabled within your Moodle setup.
To do so please login to Moodle with an administrator account and go to "Side Administration", scroll down to "Mobile App" and choose "Mobile Settings.
.. image:: images/lmssetup/moodle_mobile.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/documentation/docs/images/lmssetup/moodle_mobile.png
If you have a restrictive Moodle setup and troubles with the Moodle API account to use with SEB Server, please try to import the following
Moodle role profile within your Moodle instance. This profile will create a SEB Server role within Moodle that can be used to apply to an
API account to be used with SEB Server. The role defines only the necessary privileges and functions needed for SEB Server communication.
Moodle role and account settings: :download:`XML <files/webservice_seb-server.xml>`
.. note::
If you want to use Moodle with SEB Server, we recomend to install the new Moodle Plugin for SEB Server for better integration with Moodle.
This plugin comes with the common SEB Server integration features and improved Moodle bining. For more information see :ref:`lms-setup-moodle-plugin-label`
.. _lms-setup-rest-plugin-label:
Install SEB restriction API plugin
----------------------------------
.. _lms-setup-edx-plugin-label:
**Open edX SEB Plugin**
There is a SEB integration plugin developed and supported by `eduNEXT <https://www.edunext.co/>`_.
- `Documentation <https://seb-openedx.readthedocs.io/en/latest/>`_
- `Repository <https://github.com/eduNEXT/seb-openedx>`_
.. _lms-setup-moodle-plugin-label:
**Moodle Plugin for SEB Server**
There is a new SEB Server integration plugin for Moodle available since SEB Server 1.5 that can be used with the LMS/Assessment Tool Setup type Moodle with SEB Server Plugin.
This Plugin supports and improves all common SEB Server LMS/Assessment Tool binding features such as Course-Access, SEB Restriction and LMS/Assessment Tool Session Name Resolving.
It is also planed to extend and improve this plugin with new Moodle specific feature for further releases of SEB Server.
- `Documentation <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
- `Repository <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
- Navigate to "Exam Administration" / "Assessment Tool Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified Assessment Tool Setup.
- Select the specified Assessment Tool Setup from the list and use the "Deactivate Assessment Tool Setup" action from the right action pane.
- Alternatively you can also double-click on the Assessment Tool Setup to fist go into the detailed view of the Assessment Tool setup and use the "Deactivate Assessment Tool Setup" action there.
- The system informs you about the number of depending exams that also will be deactivated within the deactivation of the Assessment Tool Setup.
- Confirm the deactivation and notify that the Assessment Tool Setup now is listed as "Inactive" in the list.
- Navigate to "Assessment Tool Exam Lookup" to make sure the courses form the deactivated Assessment Tool Setup are not available anymore.
- Navigate also to "Exam" and make sure that all previously imported exams from the deactivated Assessment Tool Setup are not available anymore.

View file

@ -10,7 +10,7 @@ As an exam supporter you see all running exams where you have been assigned to b
.. image:: images/monitoring/runningExams.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/runningExams.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/runningExams.png
To navigate to this list, click on the "Running Exams" menu within the "Monitoring" category. And you will see the list with the name of the
exam, the type and start- and end-time of the exam. If the exam you are looking for is not on the list, please check the start-time filter
@ -27,7 +27,7 @@ As default you should see at least all active connections instantly.
.. image:: images/monitoring/examMonitoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/examMonitoring.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/examMonitoring.png
The list is automatically sorted in the way that SEB connections with incidents came to the top of the list and are then sorted by the
"User Name or Session" identifier criteria. The general SEB client connection attributes are:
@ -61,7 +61,7 @@ Double-click on an entry to go to the detail view of the specified SEB client co
.. image:: images/monitoring/search.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/search.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/search.png
**Instructions**
@ -109,17 +109,17 @@ The image below shows active and inactive filter for active SEB connection as we
.. image:: images/monitoring/issueFilter2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/issueFilter2.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/issueFilter2.png
.. image:: images/monitoring/issueFilter3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/issueFilter3.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/issueFilter3.png
- **SEB Client Group Filter** This issue filter filter all SEB client connection that are attached to a certain SEB client group.
.. image:: images/monitoring/issueFilter1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/issueFilter1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/issueFilter1.png
Detailed View
@ -131,7 +131,7 @@ in a form and additional a list of all events and logs the SEB client has sent t
.. image:: images/monitoring/clientMonitoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/clientMonitoring.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/clientMonitoring.png
The table shows the event type that for all log-events is the log-level, The text and a value that has been sent with the event. The Value may be empty
and marked as "Not a Number" (NaN). In this table we also have the client- and the server-time of the event. The client-time is the time the SEB client
@ -140,99 +140,13 @@ overview temporary network latency or other irregularities, when those two time
In the detail view you are also able to use the instructions "Quit SEB Client" and "Mark as Canceled" for the selected SEB client connection.
(Deprecated) Live Proctoring
------------------------
Screen Proctoring
-----------------
.. attention::
With SEB Server version 2.0 there is not Live Proctoring support for Zoom and Jitsi Meet anymore but a while new and
fully integrated Screen Proctoring feature where SEB Clients take screen shots and send it to SEB Server for proctoring
Deprecation Note:
The SEB Server live proctoring integration with Zoom and Jitsi Meet is deprecated in SEB Server 1.6.
The upcoming version of SEB Server, targeted for August 2024, will remove the live proctoring integration with Zoom and Jitsi Meet.
Live proctoring is a new and yet experimental feature of SEB and SEB Server. The feature is fully optional and not enabled by default.
This section is about the live proctoring on monitoring a running exam and using the optional live proctoring within.
To configure the optional live proctoring for a specific exam please have a look at `Optional Live Proctoring <https://seb-server.readthedocs.io/en/latest/exam_proctoring.html#sebProctoringSettings>`_
.. note::
This feature is still in a prototype state and not all functionality might work as expected. Basically, the meeting features
are given or restricted by the meeting service that is used and the API and GUI that is given by that meeting service client
**Proctoring (Collecting) Rooms**
When the exam live proctoring feature is enabled for the running exam (see :ref:`sebProctoringSettings-label`), SEB Server will automatically create and collect
connected SEB clients into so called collecting rooms. The size of this collecting rooms can be defined within the proctoring settings in the exam.
One proctor can then open such a collecting room by left-clicking on the room action.
SEB Server will then open a proctoring window and join the proctor to the meeting where the participants of this room can be seen.
.. image:: images/monitoring/proctoringExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/proctoringExam.png
A proctor is also able to view the names of all participants of a room by right-clicking on the specified room action.
SEB Server will then open a dialog with a list of all participants. Double-clicking on a particular participant will automatically
load the detailed monitoring view of that participant.
.. note::
A collecting room, once created, will live as long as the exam is running and not has been deleted. When the exam ends or is been deleted,
the collecting room will automatically get deleted on the SEB Server's persistent storage as well as on the meeting service side if needed.
**Town-Hall Feature**
Besides the usual collecting room, there is a town-hall room feature. By using the "Open Townhall" action from the right action pane, SEB Server enforce all SEB clients that
are in collecting rooms as well as new connecting SEB clients to leave their current meeting and join the town-hall meeting for as long as the town-hall is active.
Within the town-hall a proctor has the same features as in the collecting room but can connect to all participants at the same time.
When the town-hall is closed all connected SEB clients are enforced to leave the town-room and go back to its collecting room meetings again.
.. note::
This feature is only available if it is enabled within the exam proctoring settings in the exam administration.
**Single Room or One-to-One Room Feature**
Another live proctoring feature can be found in the detailed monitoring view of one particular SEB client connection. The single room features allows a proctor to connect to a single
participant and being able to view or communication with just this one participant. You can initiate this single room connection by using the "Single Room Proctoring" action on
the right action pane. SEB Server will then enforce the involved SEB client to leave its collecting room and join a newly created room with the proctor.
Within the single room a proctor has the same features as in the collecting room to communicate with the student or participant.
When the single room is closed the connected SEB clients is enforced to leave the single room and go back to its collecting room meetings again.
.. image:: images/monitoring/proctoringClient.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/proctoringClient.png
.. note::
This feature is only available if it is enabled within the exam proctoring settings in the exam administration.
**Broadcast Features**
Within a live proctoring window, a proctor can use the enabled features of the integrated meeting service and is able to communicate with the SEB clients by using one
of the following features if available for the service:
- **Start Audio Broadcast** Will enforce the SEB clients within the particular room to enable receive audio and a proctor can speak to the students that are in the meeting.
- **Start Video Broadcast** Will enforce the SEB clients within the particular room to enable receive audio and video and proctor is shown to the students that are in the meeting and can speak to them as well.
- **Enable Chat** Will enforce the SEB clients within the particular room to enable the chat feature and a proctor is able to chat with all students in the meeting.
While a broadcast feature is enabled by a proctor, the SEB Server sends an instruction to each SEB client that is within the same meeting to display the meeting client.
A student as well as a proctor is then able to use all the features of the meeting client of the integrated meeting service.
.. image:: images/monitoring/proctoringWindow.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/proctoringWindow.png
.. note::
Each of this features is only available if it is enabled within the exam proctoring settings in the exam administration.
**Known Issues with Live Proctoring**
- Within the Zoom service it often happens that a participant appears twice in a room or meeting. This is probably caused by SEB clients rejoining the meetings while rooms or feature settings are changed.
- In Zoom it is not possible to fully control a participant microphone. Therefore, it may happen that participant can hear each other even if no proctor is in the meeting.
- Within Jitsi Meet service when a proctor leaves the room it currently happens that a random participant became host/moderator since it is not possible in Jitsi Meet to have a meeting without host. We try to mitigate the problem with the `moderator plugin <https://github.com/nvonahsen/jitsi-token-moderation-plugin>`_
- In both services while broadcasting, it is not guaranteed that a student always sees the proctor. Usually, the meeting service shows or pins the participant that is currently speaking automatically.
.. note::
The above listed points are issues within the current proctoring integration and not solutions. We are working hard to improve the
proctoring integration but due to limited resources this can take its time. And please consider that proctoring integration with
SEB Server is still in prototype state.
Please visit the :ref:`screenprocotring-label` section for more information about Screen Proctoring with SEB Server.
Finished Exams
--------------
@ -246,7 +160,7 @@ In the "Finished Exams" list you can see all finished or archived exams and filt
.. image:: images/monitoring/finishedExams.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/finishedExams.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/finishedExams.png
To see a particular finished or archived exam you can just double-click in the list entry or use the View action on the right action pane.
In the exam view you see all SEB connections that has been connected to the exam during the exam run just like in the usual monitoring view
@ -255,7 +169,7 @@ User or Session Info, Connection Info or Status and are also able to sort the li
.. image:: images/monitoring/finishedExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/finishedExam.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/finishedExam.png
As in the usual monitoring view, you can show SEB client connection details by double-clicking on a list entry or by selecting a list entry
and use the View action on the right action pane.
@ -278,14 +192,14 @@ of an exam for example.
.. image:: images/monitoring/sebClientLogs.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/sebClientLogs.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/sebClientLogs.png
To show a detailed view of a specific SEB client log, just double click on the list entry or select the specific list entry and use the "Show Details"
action form the right action pane to open up a pop-up containing all related information about the SEB client log event.
.. image:: images/monitoring/sebClientLogDetail.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/sebClientLogDetail.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/sebClientLogDetail.png
Currently there is no export functionality to export all interesting SEB client logs to a CSV table for example. But such a feature will probably come
with a next version of SEB Server.

View file

@ -99,7 +99,7 @@ What one will see first when applying to a SEB Server application is the login-s
.. image:: images/overview/login.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/login.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/login.png
If you are already registered you can use your username and password to log in. Or use the "Register" button to go to the registration
page to create a new user account. The newly created user account will only have the Exam Supporter role assigned. If you need another
@ -107,7 +107,7 @@ role or more privileges, this must be given and granted by an institutional admi
.. image:: images/overview/register.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/register.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/register.png
Fill in the registration form and create a new account. After the user account has been successfully created, the application redirects to the login page for login.
On the current version, an e-mail confirmation is not a feature of the SEB Server application and therefore the e-mail address is currently just informative.
@ -125,7 +125,7 @@ the main content section will show the activity content and the action that are
.. image:: images/overview/overview.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/overview.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/overview.png
In the header above on the right hand, we see the username of the currently logged-in user and an action button to sign out and go back to the login page.
@ -151,7 +151,7 @@ there are different types of filters:
.. image:: images/overview/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/list.png
A list can be sorted within a column by clicking on the column header. The order of sorting can be changed by clicking again on the same
column header of the sorted column. If sorting functionality is available for a column depends on the column type. There are a few columns
@ -189,12 +189,12 @@ The following images show the same form, once in read-only mode and once in edit
.. image:: images/overview/form_readonly.png
:alt: Form in read-only mode
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/form_readonly.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/form_readonly.png
.. image:: images/overview/form_edit.png
:alt: Form in edit mode
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/form_edit.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/form_edit.png
There usually is a tooltip on a form field element for almost all attributes that can be activated by either going over and staying on the form
field label or the input section.
@ -222,4 +222,4 @@ Actions are usually placed on the right action pane of the application and belon
.. image:: images/overview/list_multiselect_actions.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/list_multiselect_actions.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/list_multiselect_actions.png

View file

@ -2,4 +2,4 @@ docutils<0.18
sphinx==5.3.0
sphinx_rtd_theme==2.0.0
readthedocs-sphinx-search==0.3.2
urllib3==1.26.13
urllib3==1.26.19

220
docs/screen_proctoring.rst Normal file
View file

@ -0,0 +1,220 @@
Screen Proctoring (New)
=======================
.. _screenprocotring-label:
Overview
---------
SEB Screen Proctoring is an integral component of the SEB Ecosystem, designed to monitor student screens during digital examinations.
This tool captures and displays screenshots taken by SEB, ensuring a secure and controlled testing environment.
Enable Screen Proctoring after an exam is created in the exam view.
.. image:: images/screen_proctoring/enable_screen_proctoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/enable_screen_proctoring.png
SEB Server needs to send an instruction to SEB to capture the screen and send the screenshot back to the server.
| To do this, enable screen proctoring in the SEB Settings.
.. image:: images/screen_proctoring/enable_screen_proctoring_seb_settings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/enable_screen_proctoring_seb_settings.png
SEB-Server and SEB are now ready to capture and to display screenshots.
Navigate to exam monitoring and click the button in the Screen Proctoring section. A new tab will be opened.
.. image:: images/screen_proctoring/open_screen_proctoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/open_screen_proctoring.png
|
|
Gallery View
---------
- When a SEB is connected to SEB-Server and the user is logged into LMS, a tile with the latest screenshot will appear.
- Press the "Grid-Size" dropdown to change the displayable sessions per screen to 4, 9 or 16.
- Use the arrow buttons and the left and right on the screen to change windows. The current page and the number of live sessions / total sessions is display next to the grid selection.
.. image:: images/screen_proctoring/gallery_view_live_grid_selection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/gallery_view_live_grid_selection.png
- Use your mouse to hover over a tile or press the tab key. A "selected" tile reveals information and actions for the session.
- To change view preferences press the settings icon in the top right corner.
- Toggling "Show Name" and "Show IP" reveals the the Name and IP of the selected session.
- By default, all the sessions are sorted by lastname in ascending order. To change this press the "Sort by Name" button.
- The camera icon opens the Proctoring View in a new tab. See chapter "Proctoring View" for more infos.
- Click on the "expand"-icon to enlarge the screenshot.
.. image:: images/screen_proctoring/gallery_view_settings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/gallery_view_settings.png
- The SEB-Client additionally sends metadata about the screenshot
- Metadata changes according to the content displayed on the screenshot
- Refer to the chapter "Metadata" for more details
- The camera icon opens the Proctoring View in a new tab. See chapter "Proctoring View" for more infos.
- Close the expanded view either by clicking on the collapse button or somewhere outside of the screenshot
.. image:: images/screen_proctoring/gallery_view_expanded.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/gallery_view_expanded.png
- A message box indicates that there are no live sessions available
- As soon as a sessions are connected the message box will disappear
|
|
Running Exams
---------
To get an overview of all running exams which your user has access to click on the "Running Exams" item in the navigation bar on the left side.
- By default, the exams are sorted by "Exam Start-Time" in ascending order
- Click on any table header to change the sorting according to your needs
- Click on the link the "Group" column to get to the gallery view of the group
.. image:: images/screen_proctoring/running_exam_no_selection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/running_exam_no_selection.png
By clicking on the settings icon in the menu bar two options are displayed.
- Select "Show past exams" to display all finished exams (red)
- Select "Show upcoming exams" to display all exams which are planned for the future (orange)
.. image:: images/screen_proctoring/running_exam_selection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/running_exam_selection.png
|
|
Proctoring View
---------
The proctoring view shows a recorded or live session in more detail.
To open a proctoring view of a sessions, either:
- Click on the camera icon in the gallery view
- Use the search feature
- Directly type in the url in the address bar: https://<your host>/recording/<sessionUuid>
A session can either be live or recorded.
- A live session is indicated by the "Live" button
- Navigating to the proctoring view during a live session always displays the latest screenshot and updates it accordingly
- Use the slider like any other video player
- This is also possible during a live session
- Click on the "Live" button to jump to the latest screenshot
.. image:: images/screen_proctoring/proctoring_overview_live.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/proctoring_overview_live.png
- The "Details"-Box on the right side displays information about the session and the current screenshot
- "SEB Session Info" is static
- "Screenshot Metadata" dynamically changes for every Screenshot
- Refer to the chapter "Metadata" for more details
.. image:: images/screen_proctoring/proctoring_overview.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/proctoring_overview.png
- The "Live" button disappears when the sessions disconnects from the server
- Set the playback speed with the "settings"-icon according to you preferences
- The current screenshot and the total amount of screenshot is display in the "Total"-Row
|
|
Search
---------
The search functionality is a powerful feature for finding sessions and screenshots.
Click on the "Search" item in the navigation bar on the left side.
**Form**
The upper part of the page is the search form.
There are four different categories of search criteria:
- Exam data
- Session / user data
- Screenshot metadata
- Time data
Use the form fields and the time / date selection to tailor the search result to your needs.
.. image:: images/screen_proctoring/search_form.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/images/screen_proctoring/search_form.png
**Search Results**
The search results are grouped into days and sorted by date in descending order.
Use the "date" button on the right side to change the sort oder.
- Clicking on any date expands the panel and displays all sessions (a session is a student using SEB) with recordings on that day
- By default, the sessions are sorted by "Start-Time" in descending order
- Click on the table header to change the sorting according to your preferences
- A click on the down facing arrow on the right side lists all screenshots of the given student
.. image:: images/screen_proctoring/search_results_sessions.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/search_results_sessions.png
- By default, the screenshot are sorted by "Capture-Time" in ascending order
- The screenshots are grouped into the metadata "Application / Website"
- Grouping means that each successive screenshot that has the same "Application / Website" metadata is placed in the same group
- Click on the camera icon on the right side to open the proctoring view at this exact time
.. note::
If the session is still live the proctoring view won't open at the given time but instead jumps to the latest image.
|
|
Metadata
---------
Metadata in context of the Screen Proctoring component are data which belong to a screenshot.
They describe the content of the captured screen.
Currently the SEB-Client captures the following 5 metadata (additional values might follow in future releases):
- Focused Application: The name of the application that is currently in use and focused
- e.g. "SafeExamBrowser.Client.exe", "calc.exe"
- SEB-Browser-Title: The title of the SEB-Browser
- e.g. "Exam Moodle 12", "Moodle Exam Mathematics 3"
- Activity Details: The activity that triggered the screenshot
- e.g. "A key has been pressed", "Left mouse button has been pressed"
- SEB-Browser URL: The URL of the SEB-Browser
- e.g. "http://google.com", "http://moodle.com/exam123"
- Focused Window Title: The title of the focused window
- e.g. "Google Homepage", "Moodle Exam 123", "Calculator"

39
pom.xml
View file

@ -16,7 +16,7 @@
<packaging>jar</packaging>
<properties>
<sebserver-version>1.6.1</sebserver-version>
<sebserver-version>2.0.0</sebserver-version>
<build-version>${sebserver-version}</build-version>
<revision>${sebserver-version}</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -89,6 +89,9 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<systemPropertyVariables>
<file.encoding>UTF-8</file.encoding>
</systemPropertyVariables>
</configuration>
</plugin>
@ -119,27 +122,6 @@
</execution>
</executions>
</plugin>
<!-- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
<configuration>
<effort>Max</effort>
<failOnError>false</failOnError>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<excludeFilterFile>findbugs-excludes.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>-->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
@ -163,7 +145,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.3</version>
<version>0.8.12</version>
<executions>
<execution>
<id>prepare-agent</id>
@ -216,8 +198,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
<release>17</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
@ -367,13 +349,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.8</version>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>com.github.vladimir-bukhtoyarov</groupId>
<artifactId>bucket4j-core</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- Testing -->

View file

@ -122,9 +122,14 @@ public class ClientHttpRequestFactoryService {
log.debug("Initialize ClientHttpRequestFactory with proxy: {}", proxy);
}
final SSLContext sslContext = org.apache.http.ssl.SSLContexts
.custom()
.loadTrustMaterial(null, new TrustAllStrategy())
.build();
final HttpComponentsClientHttpRequestFactory factory =
new HttpComponentsClientHttpRequestFactory();
factory.setHttpClient(this.createProxiedClient(proxy, null));
factory.setHttpClient(this.createProxiedClient(proxy, sslContext));
factory.setBufferRequestBody(false);
factory.setConnectionRequestTimeout(this.connectionRequestTimeout);
factory.setConnectTimeout(this.connectTimeout);
@ -133,8 +138,14 @@ public class ClientHttpRequestFactoryService {
} else {
final HttpComponentsClientHttpRequestFactory devClientHttpRequestFactory =
new HttpComponentsClientHttpRequestFactory();
final SSLContext sslContext = org.apache.http.ssl.SSLContexts
.custom()
.loadTrustMaterial(null, new TrustAllStrategy())
.build();
final HttpClient client = HttpClients.custom()
.setSSLContext(sslContext)
.build();
final HttpComponentsClientHttpRequestFactory devClientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(client);
devClientHttpRequestFactory.setBufferRequestBody(false);
devClientHttpRequestFactory.setConnectionRequestTimeout(this.connectionRequestTimeout);
@ -163,7 +174,7 @@ public class ClientHttpRequestFactoryService {
final String truststoreFilePath = this.environment
.getProperty("server.ssl.trust-store", "");
SSLContext sslContext;
final SSLContext sslContext;
if (StringUtils.isBlank(truststoreFilePath)) {
if (log.isDebugEnabled()) {
@ -263,6 +274,8 @@ public class ClientHttpRequestFactoryService {
if (sslContext != null) {
clientBuilder.setSSLContext(sslContext);
} else {
}
return clientBuilder.build();

View file

@ -40,9 +40,6 @@ import ch.ethz.seb.sebserver.gbl.profile.WebServiceProfile;
@Order(7)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter implements ErrorController {
private static final String ERROR_PATH = "/sebserver/error";
private static final String CHECK_PATH = "/sebserver/check";
@Value("${sebserver.webservice.http.redirect.gui}")
private String guiRedirect;
@Value("${sebserver.webservice.api.exam.endpoint.discovery}")
@ -77,23 +74,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter implements E
return new BCryptPasswordEncoder(4);
}
@Override
public void configure(final WebSecurity web) {
web
.ignoring()
.antMatchers(ERROR_PATH)
.antMatchers(CHECK_PATH)
.antMatchers(this.examAPIDiscoveryEndpoint)
.antMatchers(this.adminAPIEndpoint + API.INFO_ENDPOINT + API.LOGO_PATH_SEGMENT + "/**")
.antMatchers(this.adminAPIEndpoint + API.INFO_ENDPOINT + API.INFO_INST_PATH_SEGMENT + "/**")
.antMatchers(this.adminAPIEndpoint + API.REGISTER_ENDPOINT);
}
@RequestMapping(CHECK_PATH)
@RequestMapping(API.CHECK_PATH)
public void check() throws IOException {
}
@RequestMapping(ERROR_PATH)
@RequestMapping(API.ERROR_PATH)
public void handleError(final HttpServletResponse response) throws IOException {
response.getOutputStream().print(response.getStatus());
response.setHeader(HttpHeaders.LOCATION, this.guiRedirect);

View file

@ -102,6 +102,8 @@ public final class Constants {
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
public static final Long LIGHT_ADMIN_USER_ID = 1L;
public static final DateTimeFormatter STANDARD_DATE_TIME_MILLIS_FORMATTER = DateTimeFormat
.forPattern(DEFAULT_DATE_TIME_MILLIS_FORMAT)
.withZoneUTC();
@ -136,6 +138,8 @@ public final class Constants {
public static final String XML_PLIST_INTEGER = "integer";
public static final String XML_PLIST_REAL = "real";
public static final String OAUTH2_GRANT_TYPE = "grant_type";
public static final String OAUTH2_USER_NAME = "username";
public static final String OAUTH2_GRANT_TYPE_PASSWORD = "password";
public static final String OAUTH2_CLIENT_SECRET = "client_secret";
public static final String OAUTH2_GRANT_TYPE_REFRESH_TOKEN = "refresh_token";

View file

@ -8,10 +8,17 @@
package ch.ethz.seb.sebserver.gbl.api;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationNode;
public final class API {
public static final String ERROR_PATH = "/sebserver/error";
public static final String CHECK_PATH = "/sebserver/check";
public enum BulkActionType {
HARD_DELETE,
DEACTIVATE,
@ -57,8 +64,16 @@ public final class API {
public static final String OAUTH_ENDPOINT = "/oauth";
public static final String OAUTH_TOKEN_ENDPOINT = OAUTH_ENDPOINT + "/token";
public static final String OAUTH_JWTTOKEN_ENDPOINT = OAUTH_ENDPOINT + "/jwttoken";
public static final String OAUTH_JWT_TOKEN_ENDPOINT = OAUTH_ENDPOINT + "/jwttoken";
public static final String OAUTH_JWT_TOKEN_VERIFY_ENDPOINT = OAUTH_JWT_TOKEN_ENDPOINT + "/verify";
public static final String OAUTH_REVOKE_TOKEN_ENDPOINT = OAUTH_ENDPOINT + "/revoke-token";
public static final String SPS_OAUTH_JWT_TOKEN_ENDPOINT = OAUTH_ENDPOINT + "/jwttoken";
public static final String GRANT_TYPE_PASSWORD = "password";
public static final String GRANT_TYPE_CLIENT = "client_credentials";
public static final List<String> RW_SCOPES = Collections.unmodifiableList(
Arrays.asList("read", "write"));
public static final String CURRENT_USER_PATH_SEGMENT = "/me";
public static final String CURRENT_USER_ENDPOINT = API.USER_ACCOUNT_ENDPOINT + CURRENT_USER_PATH_SEGMENT;
@ -123,6 +138,8 @@ public final class API {
public static final String EXAM_API_CONFIGURATION_REQUEST_ENDPOINT = "/examconfig";
public static final String EXAM_API_CONFIGURATION_LIGHT_ENDPOINT = "/light-config";
public static final String EXAM_API_PING_ENDPOINT = "/sebping";
public static final String EXAM_API_PING_TIMESTAMP = "timestamp";
@ -152,6 +169,24 @@ public final class API {
+ LMS_SETUP_TEST_PATH_SEGMENT
+ LMS_SETUP_TEST_AD_HOC_PATH_SEGMENT;
public static final String LMS_FULL_INTEGRATION_EXAM_ENDPOINT = "/exam";
public static final String LMS_FULL_INTEGRATION_CONNECTION_CONFIG_ENDPOINT = "/seb_config";
public static final String LMS_FULL_INTEGRATION_LOGIN_TOKEN_ENDPOINT = "/login_token";
public static final String LMS_FULL_INTEGRATION_LMS_UUID = "id";
public static final String LMS_FULL_INTEGRATION_COURSE_ID = "course_id";
public static final String LMS_FULL_INTEGRATION_QUIZ_ID = "quiz_id";
public static final String LMS_FULL_INTEGRATION_EXAM_TEMPLATE_ID = "exam_template_id";
public static final String LMS_FULL_INTEGRATION_EXAM_DATA = "exam_data";
public static final String LMS_FULL_INTEGRATION_QUIT_PASSWORD = "quit_password";
public static final String LMS_FULL_INTEGRATION_QUIT_LINK = "quit_link";
public static final String LMS_FULL_INTEGRATION_USER_ID = "user_id";
public static final String LMS_FULL_INTEGRATION_USER_NAME = "user_username";
public static final String LMS_FULL_INTEGRATION_USER_EMAIL = "user_email";
public static final String LMS_FULL_INTEGRATION_USER_FIRST_NAME = "user_firstname";
public static final String LMS_FULL_INTEGRATION_USER_LAST_NAME = "user_lastname";
public static final String LMS_FULL_INTEGRATION_TIME_ZONE = "account_time_zone";
public static final String USER_ACCOUNT_ENDPOINT = "/useraccount";
public static final String QUIZ_DISCOVERY_ENDPOINT = "/quiz";
@ -220,7 +255,7 @@ public final class API {
public static final String EXAM_MONITORING_STATE_FILTER = "hidden-states";
public static final String EXAM_MONITORING_CLIENT_GROUP_FILTER = "hidden-client-group";
public static final String EXAM_MONITORING_ISSUE_FILTER = "hidden-issues";
public static final String EXAM_MONITORING_TEST_RUN_ENDPOINT = "/testrun";
public static final String EXAM_MONITORING_FINISHED_ENDPOINT = "/finishedexams";
public static final String EXAM_MONITORING_SEB_CONNECTION_TOKEN_PATH_SEGMENT =
"/{" + EXAM_API_SEB_CONNECTION_TOKEN + "}";

View file

@ -71,6 +71,12 @@ public class APIMessage implements Serializable {
"Failed to automatically create pre-defined attributes for the exam"),
EXAM_IMPORT_ERROR_AUTO_RESTRICTION("1603", HttpStatus.PARTIAL_CONTENT,
"Failed to automatically apply SEB restriction for the exam to the involved LMS"),
EXAM_IMPORT_ERROR_QUIT_PASSWORD("1604", HttpStatus.PARTIAL_CONTENT,
"Failed to automatically apply quit password to Exam Configuration or the involved LMS"),
EXAM_IMPORT_ERROR_SCREEN_PROCTORING_SETTINGS("1605", HttpStatus.PARTIAL_CONTENT,
"Failed to automatically apply Screen Proctoring settings for the imported exam"),
EXAM_IMPORT_ERROR_AUTO_CONFIG("1610", HttpStatus.PARTIAL_CONTENT,
"Failed to automatically create and link exam configuration from the exam template to the exam"),
EXAM_IMPORT_ERROR_AUTO_CONFIG_LINKING("1611", HttpStatus.PARTIAL_CONTENT,

View file

@ -2,7 +2,7 @@ package ch.ethz.seb.sebserver.gbl.api;
import javax.annotation.Generated;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator",comments="ch.ethz.seb.sebserver.gen.DomainModelNameReferencePlugin",date="2023-12-04T15:30:33.448+01:00")
@Generated(value="org.mybatis.generator.api.MyBatisGenerator",comments="ch.ethz.seb.sebserver.gen.DomainModelNameReferencePlugin",date="2024-04-22T15:58:16.933+02:00")
public enum EntityType {
CONFIGURATION_ATTRIBUTE,
CONFIGURATION_VALUE,

View file

@ -12,6 +12,12 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
public interface Activatable {
public enum ActivationAction {
NONE,
ACTIVATE,
DEACTIVATE
}
@JsonIgnore
boolean isActive();

View file

@ -34,10 +34,10 @@ public class BatchAction implements GrantEntity {
public static final String ATTR_FAILURES = "failures";
public static final String FINISHED_FLAG = "_FINISHED";
public static final String ACTION_ATTRIBUT_TARGET_STATE = "batchActionTargetState";
public static final String ACTION_ATTRIBUTE_TARGET_STATE = "batchActionTargetState";
private static final Set<String> ACTION_ATTRIBUTES = new HashSet<>(Arrays.asList(
ACTION_ATTRIBUT_TARGET_STATE));
ACTION_ATTRIBUTE_TARGET_STATE));
@JsonProperty(BATCH_ACTION.ATTR_ID)
public final Long id;

View file

@ -5,7 +5,7 @@ import javax.annotation.Generated;
/** Defines the global names of the domain model and domain model fields.
* This shall be used as a static overall domain model names reference within SEB Server Web-Service as well as within the integrated GUI
* This file is generated by the org.eth.demo.sebserver.gen.DomainModelNameReferencePlugin and must not be edited manually.**/
@Generated(value="org.mybatis.generator.api.MyBatisGenerator",comments="ch.ethz.seb.sebserver.gen.DomainModelNameReferencePlugin",date="2023-12-04T15:30:33.413+01:00")
@Generated(value="org.mybatis.generator.api.MyBatisGenerator",comments="ch.ethz.seb.sebserver.gen.DomainModelNameReferencePlugin",date="2024-04-22T15:58:16.903+02:00")
public interface Domain {
interface CONFIGURATION_ATTRIBUTE {
@ -260,6 +260,8 @@ public interface Domain {
String ATTR_LMS_PROXY_AUTH_SECRET = "lmsProxyAuthSecret";
String ATTR_UPDATE_TIME = "updateTime";
String ATTR_ACTIVE = "active";
String ATTR_CONNECTION_ID = "connectionId";
String ATTR_INTEGRATION_ACTIVE = "integrationActive";
}
interface USER {
@ -277,6 +279,8 @@ public interface Domain {
String ATTR_LANGUAGE = "language";
String ATTR_TIMEZONE = "timezone";
String ATTR_ACTIVE = "active";
String ATTR_DIRECT_LOGIN = "directLogin";
String ATTR_LOCAL_ACCOUNT = "localAccount";
}
interface USER_ROLE {
@ -340,6 +344,8 @@ public interface Domain {
String ATTR_SUPPORTER = "supporter";
String ATTR_INDICATOR_TEMPLATES = "indicatorTemplates";
String ATTR_INSTITUTIONAL_DEFAULT = "institutionalDefault";
String ATTR_LMS_INTEGRATION = "lmsIntegration";
String ATTR_CLIENT_CONFIGURATION_ID = "clientConfigurationId";
}
interface BATCH_ACTION {

View file

@ -8,16 +8,12 @@
package ch.ethz.seb.sebserver.gbl.model.exam;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import javax.validation.constraints.NotNull;
import ch.ethz.seb.sebserver.gbl.api.API;
import ch.ethz.seb.sebserver.gbl.api.JSONMapper;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
@ -62,8 +58,12 @@ public final class Exam implements GrantEntity {
/** Comma separated String value that defines allowed SEB version from linked Exam Configuration */
public static final String ADDITIONAL_ATTR_ALLOWED_SEB_VERSIONS = "ALLOWED_SEB_VERSIONS";
public static final String ADDITIONAL_ATTR_DEFAULT_CONNECTION_CONFIGURATION = "DEFAULT_CONNECTION_CONFIGURATION";
public static final String ADDITIONAL_ATTR_QUIZ_ATTRIBUTES = "ADDITIONAL_QUIZ_ATTRIBUTES";
public enum ExamStatus {
UP_COMING,
TEST_RUN,
RUNNING,
FINISHED,
ARCHIVED
@ -76,6 +76,20 @@ public final class Exam implements GrantEntity {
VDI
}
public static final EnumSet<ExamStatus> ACTIVE_STATES = EnumSet.of(
ExamStatus.UP_COMING,
ExamStatus.TEST_RUN,
ExamStatus.RUNNING);
public static final List<String> ACTIVE_STATE_NAMES = Arrays.asList(
ExamStatus.UP_COMING.name(),
ExamStatus.TEST_RUN.name(),
ExamStatus.RUNNING.name());
public static final List<String> RUNNING_STATE_NAMES = Arrays.asList(
ExamStatus.TEST_RUN.name(),
ExamStatus.RUNNING.name());
@JsonProperty(EXAM.ATTR_ID)
public final Long id;
@ -235,7 +249,15 @@ public final class Exam implements GrantEntity {
}
public Exam(final String modelId, final QuizData quizData, final POSTMapper mapper) {
final Map<String, String> additionalAttributes = new HashMap<>(quizData.getAdditionalAttributes());
String additionalQuizData = null;
try {
additionalQuizData = new JSONMapper().writeValueAsString(quizData.getAdditionalAttributes());
} catch (final Exception ignored) {}
final Map<String, String> additionalAttributes = new HashMap<>();
if (additionalQuizData != null) {
additionalAttributes.put(ADDITIONAL_ATTR_QUIZ_ATTRIBUTES, additionalQuizData);
}
additionalAttributes.put(QuizData.QUIZ_ATTR_DESCRIPTION, quizData.description);
additionalAttributes.put(QuizData.QUIZ_ATTR_START_URL, quizData.startURL);
@ -281,7 +303,7 @@ public final class Exam implements GrantEntity {
}
return result;
} else {
return null;
return Collections.emptyList();
}
}
@ -310,7 +332,7 @@ public final class Exam implements GrantEntity {
return this.institutionId;
}
public boolean isOwner(final String userId) {
public boolean isOwnerOrSupporter(final String userId) {
if (StringUtils.isBlank(userId)) {
return false;
}
@ -341,7 +363,7 @@ public final class Exam implements GrantEntity {
@JsonIgnore
public boolean isLmsAvailable() {
return BooleanUtils.isTrue(this.lmsAvailable);
return BooleanUtils.isNotFalse(this.lmsAvailable);
}
public String getExternalId() {
@ -413,6 +435,31 @@ public final class Exam implements GrantEntity {
return this.additionalAttributes.get(attrName);
}
@Override
public Exam printSecureCopy() {
return new Exam(
id,
institutionId,
lmsSetupId,
externalId,
lmsAvailable,
name,
startTime,
endTime,
type,
owner,
supporter,
status,
"--",
sebRestriction,
"--",
active,
lastUpdate,
examTemplateId,
lastModified,
Collections.emptyMap());
}
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();

View file

@ -8,10 +8,7 @@
package ch.ethz.seb.sebserver.gbl.model.exam;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@ -75,6 +72,12 @@ public class ExamTemplate implements GrantEntity {
@JsonProperty(EXAM_TEMPLATE.ATTR_INSTITUTIONAL_DEFAULT)
public final Boolean institutionalDefault;
@JsonProperty(EXAM_TEMPLATE.ATTR_LMS_INTEGRATION)
public final Boolean lmsIntegration;
@JsonProperty(EXAM_TEMPLATE.ATTR_CLIENT_CONFIGURATION_ID)
public final Long clientConfigurationId;
@JsonCreator
public ExamTemplate(
@JsonProperty(EXAM_TEMPLATE.ATTR_ID) final Long id,
@ -85,6 +88,8 @@ public class ExamTemplate implements GrantEntity {
@JsonProperty(EXAM_TEMPLATE.ATTR_SUPPORTER) final Collection<String> supporter,
@JsonProperty(EXAM_TEMPLATE.ATTR_CONFIGURATION_TEMPLATE_ID) final Long configTemplateId,
@JsonProperty(EXAM_TEMPLATE.ATTR_INSTITUTIONAL_DEFAULT) final Boolean institutionalDefault,
@JsonProperty(EXAM_TEMPLATE.ATTR_LMS_INTEGRATION) final Boolean lmsIntegration,
@JsonProperty(EXAM_TEMPLATE.ATTR_CLIENT_CONFIGURATION_ID) final Long clientConfigurationId,
@JsonProperty(EXAM_TEMPLATE.ATTR_INDICATOR_TEMPLATES) final Collection<IndicatorTemplate> indicatorTemplates,
@JsonProperty(ATTR_CLIENT_GROUP_TEMPLATES) final Collection<ClientGroupTemplate> clientGroupTemplates,
@JsonProperty(ATTR_EXAM_ATTRIBUTES) final Map<String, String> examAttributes) {
@ -99,6 +104,8 @@ public class ExamTemplate implements GrantEntity {
this.indicatorTemplates = Utils.immutableCollectionOf(indicatorTemplates);
this.clientGroupTemplates = Utils.immutableCollectionOf(clientGroupTemplates);
this.institutionalDefault = BooleanUtils.toBoolean(institutionalDefault);
this.lmsIntegration = BooleanUtils.toBoolean(lmsIntegration);
this.clientConfigurationId = clientConfigurationId;
if (examAttributes != null && examAttributes.containsKey(ATTR_CLIENT_GROUP_TEMPLATES)) {
final HashMap<String, String> attrs = new HashMap<>(examAttributes);
attrs.remove(ATTR_CLIENT_GROUP_TEMPLATES);
@ -119,7 +126,9 @@ public class ExamTemplate implements GrantEntity {
this.examType = mapper.getEnum(EXAM_TEMPLATE.ATTR_EXAM_TYPE, ExamType.class, ExamType.UNDEFINED);
this.supporter = mapper.getStringSet(EXAM_TEMPLATE.ATTR_SUPPORTER);
this.configTemplateId = mapper.getLong(Domain.EXAM_TEMPLATE.ATTR_CONFIGURATION_TEMPLATE_ID);
this.institutionalDefault = mapper.getBooleanObject(Domain.EXAM_TEMPLATE.ATTR_INSTITUTIONAL_DEFAULT);
this.institutionalDefault = mapper.getBoolean(Domain.EXAM_TEMPLATE.ATTR_INSTITUTIONAL_DEFAULT);
this.lmsIntegration = mapper.getBoolean(EXAM_TEMPLATE.ATTR_LMS_INTEGRATION);
this.clientConfigurationId = mapper.getLong(EXAM_TEMPLATE.ATTR_CLIENT_CONFIGURATION_ID);
this.indicatorTemplates = Collections.emptyList();
this.clientGroupTemplates = Collections.emptyList();
this.examAttributes = Utils.immutableMapOf(null);
@ -163,6 +172,14 @@ public class ExamTemplate implements GrantEntity {
return this.institutionalDefault;
}
public Boolean getLmsIntegration() {
return lmsIntegration;
}
public Long getClientConfigurationId() {
return clientConfigurationId;
}
public Collection<IndicatorTemplate> getIndicatorTemplates() {
return this.indicatorTemplates;
}
@ -183,35 +200,18 @@ public class ExamTemplate implements GrantEntity {
return this.supporter;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((this.id == null) ? 0 : this.id.hashCode());
result = prime * result + ((this.institutionId == null) ? 0 : this.institutionId.hashCode());
return result;
return Objects.hash(id);
}
@Override
public boolean equals(final Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final ExamTemplate other = (ExamTemplate) obj;
if (this.id == null) {
if (other.id != null)
return false;
} else if (!this.id.equals(other.id))
return false;
if (this.institutionId == null) {
if (other.institutionId != null)
return false;
} else if (!this.institutionId.equals(other.institutionId))
return false;
return true;
public boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
final ExamTemplate that = (ExamTemplate) o;
return Objects.equals(id, that.id);
}
@Override
@ -239,12 +239,14 @@ public class ExamTemplate implements GrantEntity {
builder.append(this.examAttributes);
builder.append(", institutionalDefault=");
builder.append(this.institutionalDefault);
builder.append(", lmsIntegration=");
builder.append(this.lmsIntegration);
builder.append("]");
return builder.toString();
}
public static ExamTemplate createNew(final Long institutionId) {
return new ExamTemplate(null, institutionId, null, null, ExamType.UNDEFINED, null, null, false, null, null, null);
return new ExamTemplate(null, institutionId, null, null, ExamType.UNDEFINED, null, null, false, false, null, null, null, null);
}
}

View file

@ -25,8 +25,6 @@ public class ScreenProctoringSettings implements SPSAPIAccessData {
public static final String ATTR_ENABLE_SCREEN_PROCTORING = "enableScreenProctoring";
public static final String ATTR_SPS_SERVICE_URL = "spsServiceURL";
public static final String ATTR_COLLECTING_STRATEGY = "spsCollectingStrategy";
public static final String ATTR_COLLECTING_GROUP_SIZE = "collectingGroupSize";
public static final String ATTR_SPS_API_KEY = "spsAPIKey";
public static final String ATTR_SPS_API_SECRET = "spsAPISecret";
@ -34,6 +32,9 @@ public class ScreenProctoringSettings implements SPSAPIAccessData {
public static final String ATTR_SPS_ACCOUNT_ID = "spsAccountId";
public static final String ATTR_SPS_ACCOUNT_PASSWORD = "spsAccountPassword";
public static final String ATTR_COLLECTING_STRATEGY = "spsCollectingStrategy";
public static final String ATTR_COLLECTING_GROUP_SIZE = "spsCollectingGroupSize";
public static final String ATTR_SPS_BUNDLED = "bundled";
@JsonProperty(Domain.EXAM.ATTR_ID)

View file

@ -10,6 +10,7 @@ package ch.ethz.seb.sebserver.gbl.model.institution;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.UUID;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@ -51,7 +52,10 @@ public final class LmsSetup implements GrantEntity, Activatable {
SEB_RESTRICTION,
/** Indicates if the LMS integration has some process for course recovery
* after backup-restore process for example. */
COURSE_RECOVERY
COURSE_RECOVERY,
/** Indicates if the LMS integration has some deeper integration that involves LMS calls to SEB Server*/
LMS_FULL_INTEGRATION
}
/** Defines the supported types if LMS bindings.
@ -64,7 +68,7 @@ public final class LmsSetup implements GrantEntity, Activatable {
/** The Moodle binding features only the course access API so far */
MOODLE(Features.COURSE_API, Features.COURSE_RECOVERY /* , Features.SEB_RESTRICTION */),
/** The Moodle binding features with SEB Server integration plugin for fully featured */
MOODLE_PLUGIN(Features.COURSE_API, Features.COURSE_RECOVERY, Features.SEB_RESTRICTION),
MOODLE_PLUGIN(Features.COURSE_API, Features.COURSE_RECOVERY, Features.SEB_RESTRICTION, Features.LMS_FULL_INTEGRATION),
/** The Ans Delft binding is on the way */
ANS_DELFT(Features.COURSE_API, Features.SEB_RESTRICTION),
/** The OpenOLAT binding is on the way */
@ -129,6 +133,12 @@ public final class LmsSetup implements GrantEntity, Activatable {
@JsonProperty(LMS_SETUP.ATTR_UPDATE_TIME)
public final Long updateTime;
@JsonProperty(LMS_SETUP.ATTR_CONNECTION_ID)
public final String connectionId;
@JsonProperty(LMS_SETUP.ATTR_INTEGRATION_ACTIVE)
public final Boolean integrationActive;
@JsonCreator
public LmsSetup(
@JsonProperty(LMS_SETUP.ATTR_ID) final Long id,
@ -144,7 +154,9 @@ public final class LmsSetup implements GrantEntity, Activatable {
@JsonProperty(LMS_SETUP.ATTR_LMS_PROXY_AUTH_USERNAME) final String proxyAuthUsername,
@JsonProperty(LMS_SETUP.ATTR_LMS_PROXY_AUTH_SECRET) final String proxyAuthSecret,
@JsonProperty(INSTITUTION.ATTR_ACTIVE) final Boolean active,
@JsonProperty(LMS_SETUP.ATTR_UPDATE_TIME) final Long updateTime) {
@JsonProperty(LMS_SETUP.ATTR_UPDATE_TIME) final Long updateTime,
@JsonProperty(LMS_SETUP.ATTR_CONNECTION_ID) final String connectionId,
@JsonProperty(LMS_SETUP.ATTR_INTEGRATION_ACTIVE) final Boolean integrationActive) {
this.id = id;
this.institutionId = institutionId;
@ -160,6 +172,8 @@ public final class LmsSetup implements GrantEntity, Activatable {
this.proxyAuthSecret = proxyAuthSecret;
this.active = (active != null) ? active : Boolean.FALSE;
this.updateTime = updateTime;
this.connectionId = connectionId;
this.integrationActive = integrationActive;
}
public LmsSetup(final String modelId, final POSTMapper mapper) {
@ -177,6 +191,8 @@ public final class LmsSetup implements GrantEntity, Activatable {
this.proxyAuthSecret = mapper.getString(LMS_SETUP.ATTR_LMS_PROXY_AUTH_SECRET);
this.active = mapper.getBooleanObject(LMS_SETUP.ATTR_ACTIVE);
this.updateTime = mapper.getLong(LMS_SETUP.ATTR_UPDATE_TIME);
this.connectionId = mapper.getString(LMS_SETUP.ATTR_CONNECTION_ID);
this.integrationActive = mapper.getBooleanObject(LMS_SETUP.ATTR_INTEGRATION_ACTIVE);
}
@Override
@ -251,6 +267,18 @@ public final class LmsSetup implements GrantEntity, Activatable {
return this.active;
}
public Long getUpdateTime() {
return updateTime;
}
public String getConnectionId() {
return connectionId;
}
public Boolean getIntegrationActive() {
return integrationActive;
}
@Override
public Entity printSecureCopy() {
return new LmsSetup(
@ -267,7 +295,9 @@ public final class LmsSetup implements GrantEntity, Activatable {
this.proxyAuthUsername,
Constants.EMPTY_NOTE,
this.active,
this.updateTime);
this.updateTime,
this.connectionId,
this.integrationActive);
}
@Override
@ -299,6 +329,10 @@ public final class LmsSetup implements GrantEntity, Activatable {
builder.append(this.proxyAuthSecret);
builder.append(", active=");
builder.append(this.active);
builder.append(", connectionId=");
builder.append(this.connectionId);
builder.append(", integrationActive=");
builder.append(this.integrationActive);
builder.append("]");
return builder.toString();
}
@ -312,7 +346,20 @@ public final class LmsSetup implements GrantEntity, Activatable {
public static LmsSetup createNew(final Long institutionId) {
return new LmsSetup(
null, institutionId, null, null, null, null, null, null, null, null, null, null, false, null);
null, institutionId,
null, null,
null,
null,
null,
null,
null,
null,
null,
null,
false,
null,
UUID.randomUUID().toString(),
false);
}
}

View file

@ -33,7 +33,8 @@ public final class LmsSetupTestResult {
TOKEN_REQUEST,
QUIZ_ACCESS_API_REQUEST,
QUIZ_RESTRICTION_API_REQUEST,
TEMPLATE_CREATION
TEMPLATE_CREATION,
APPLY_FULL_INTEGRATION,
}
@JsonProperty(Domain.LMS_SETUP.ATTR_LMS_TYPE)
@ -138,6 +139,10 @@ public final class LmsSetupTestResult {
return new LmsSetupTestResult(lmsType, new Error(ErrorType.QUIZ_RESTRICTION_API_REQUEST, message));
}
public static LmsSetupTestResult ofFullIntegrationAPIError(final LmsSetup.LmsType lmsType, final String message) {
return new LmsSetupTestResult(lmsType, new Error(ErrorType.APPLY_FULL_INTEGRATION, message));
}
public final static class Error {
@JsonProperty(ATTR_ERROR_TYPE)

View file

@ -0,0 +1,26 @@
/*
* Copyright (c) 2019 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package ch.ethz.seb.sebserver.gbl.model.user;
import ch.ethz.seb.sebserver.gbl.model.EntityKey;
import com.fasterxml.jackson.annotation.JsonProperty;
public final class LoginForward {
@JsonProperty("entityKey")
public final EntityKey entityKey;
@JsonProperty("actionName")
public final String actionName;
public LoginForward(
@JsonProperty("entityKey") final EntityKey entityKey,
@JsonProperty("actionName") final String actionName) {
this.entityKey = entityKey;
this.actionName = actionName;
}
}

Some files were not shown because too many files have changed in this diff Show more