diff options
-rw-r--r-- | assignment-6/multiplechoice.icl | 10 |
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 |