diff --git a/api/roster/routes.py b/api/roster/routes.py index 89d7fb6..f711be0 100644 --- a/api/roster/routes.py +++ b/api/roster/routes.py @@ -152,7 +152,7 @@ def enroll_user(): if data["role"] not in legal_roles: return {"message": "Malformed request"}, 400 - if get_power_level(data["role"]) >= get_power_level(user["course_role"]): + if get_power_level(data["role"]) > get_power_level(user["course_role"]): return {"message": "You cannot enroll a user at this level."}, 403 user_id = db.create_account(data["ubit"], data["pn"]) diff --git a/client/src/components/common/Header.vue b/client/src/components/common/Header.vue index 83add5e..d04b630 100644 --- a/client/src/components/common/Header.vue +++ b/client/src/components/common/Header.vue @@ -15,6 +15,7 @@ const showCourse = ref(false) function fetchCourse() { fetch(`/api/course/${course.value}`).then(res => { if (res.ok) { + showCourse.value = true; return res.json(); } }).then(json => { @@ -27,7 +28,6 @@ function setupHeader() { course.value = route.params.course if (course.value !== undefined) { fetchCourse(); - showCourse.value = true; } else { showCourse.value = false; } diff --git a/client/src/components/instructor/VisitTable.vue b/client/src/components/instructor/VisitTable.vue index 3b98d51..a10588d 100644 --- a/client/src/components/instructor/VisitTable.vue +++ b/client/src/components/instructor/VisitTable.vue @@ -128,7 +128,16 @@ function exportVisits() { for (let visit of visits.value) { let info = "" for (let i = 0; i < visit.length - 1; i++) { - info += visit[i] != null ? `${visit[i]},` : ',' + if (visit[i] != null) { + let data = visit[i]; + if (data.indexOf(",") > -1 || data.indexOf("\n") > -1 || data.indexOf("\r") > -1) { + data = `"${data}"` + } + // data = data.replaceAll("\n", " ").replaceAll("\r", " ") + info += data + "," + } else { + info += "," + } } info += visit[visit.length-1] != null ? `${visit[visit.length-1]}\n` : '\n' csv += info