summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assignment-6/multiplechoice.icl10
1 files changed, 6 insertions, 4 deletions
diff --git a/assignment-6/multiplechoice.icl b/assignment-6/multiplechoice.icl
index b26d11c..e76ef9d 100644
--- a/assignment-6/multiplechoice.icl
+++ b/assignment-6/multiplechoice.icl
@@ -11,7 +11,7 @@ import iTasks
Start w = startEngine (allTasks createUsers >>| authedMain) w
where
createUsers :: [Task UserAccount]
- createUsers = [catchAll (createUser u) (\_ -> return u) \\ u <- myUsers]
+ createUsers = [catchAll (createUser u) (const $ return u) \\ u <- myUsers]
authedMain :: Task ()
authedMain = doAuthenticated (get currentUser >>- main) >>*
@@ -50,9 +50,11 @@ main u
| isAdmin u = adminTask
| otherwise = studentTask
where
- isTeacher (AuthenticatedUser s _ _) = isMember s ["Rinus", "Pieter"]
- isTeacher _ = False
- isAdmin u = u =: (AuthenticatedUser "admin" _ _)
+ isTeacher = hasRole TEACHER
+ isAdmin = hasRole ADMIN
+
+ hasRole r (AuthenticatedUser _ rs _) = isMember r rs
+ hasRole _ _ = False
teacherTask :: Task ()
teacherTask = enterChoiceWithShared