knownTags increased
This commit is contained in:
parent
59423832e6
commit
ad998b53d8
2
routes
2
routes
@ -52,7 +52,7 @@
|
|||||||
!/submission/#SubmissionMode SubmissionR GET POST !timeANDregistered
|
!/submission/#SubmissionMode SubmissionR GET POST !timeANDregistered
|
||||||
|
|
||||||
|
|
||||||
!/#UUID CryptoUUIDDispatchR GET !free
|
!/#UUID CryptoUUIDDispatchR GET !free -- just redirect
|
||||||
|
|
||||||
-- TODO below
|
-- TODO below
|
||||||
!/#{ZIPArchiveName SubmissionId} SubmissionDownloadArchiveR GET !deprecated
|
!/#{ZIPArchiveName SubmissionId} SubmissionDownloadArchiveR GET !deprecated
|
||||||
|
|||||||
@ -165,6 +165,8 @@ knownTags =
|
|||||||
,("lecturer", APDB $ \case
|
,("lecturer", APDB $ \case
|
||||||
CourseR tid csh -> maybeT (unauthorizedI MsgUnauthorizedLecturer) $ do
|
CourseR tid csh -> maybeT (unauthorizedI MsgUnauthorizedLecturer) $ do
|
||||||
authId <- lift requireAuthId
|
authId <- lift requireAuthId
|
||||||
|
-- TODO: why not a getBy404 if the course does not exist?hg getBy404
|
||||||
|
|
||||||
Entity cid _ <- MaybeT . getBy $ CourseTermShort tid csh
|
Entity cid _ <- MaybeT . getBy $ CourseTermShort tid csh
|
||||||
void . MaybeT . getBy $ UniqueLecturer authId cid
|
void . MaybeT . getBy $ UniqueLecturer authId cid
|
||||||
return Authorized
|
return Authorized
|
||||||
@ -176,6 +178,14 @@ knownTags =
|
|||||||
(Just _) -> return Authorized
|
(Just _) -> return Authorized
|
||||||
)
|
)
|
||||||
-- TODO: Continue here!!!
|
-- TODO: Continue here!!!
|
||||||
|
,("corrector", undefined)
|
||||||
|
,("time", undefined)
|
||||||
|
,("registered", undefined)
|
||||||
|
,("materials", APDB $ \case
|
||||||
|
CourseR tid csh ->
|
||||||
|
Entity cid _ <- getBy404 $ CourseTermShort tid csh
|
||||||
|
undefined -- CONTINUE HERE
|
||||||
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -192,7 +202,7 @@ route2ap r = Set.foldr orAP adminAP attrsAND
|
|||||||
attrsAND = Set.map splitAnd $ routeAttrs r
|
attrsAND = Set.map splitAnd $ routeAttrs r
|
||||||
splitAND = foldr1 andAP . map tag2access . splitOn "AND"
|
splitAND = foldr1 andAP . map tag2access . splitOn "AND"
|
||||||
|
|
||||||
evalAccessDB :: Route -> DB Authorized
|
evalAccessDB :: Route -> DB Authorized -- all requests, regardless of POST/GET, use isWriteRequest otherwise
|
||||||
evalAccessDB r = case getAccess r of
|
evalAccessDB r = case getAccess r of
|
||||||
(APPure p) -> lift $ runReader (p r) <$> getMessageRender
|
(APPure p) -> lift $ runReader (p r) <$> getMessageRender
|
||||||
(APHandler p) -> lift $ p r
|
(APHandler p) -> lift $ p r
|
||||||
@ -369,21 +379,7 @@ instance Yesod UniWorX where
|
|||||||
-- The page to be redirected to when authentication is required.
|
-- The page to be redirected to when authentication is required.
|
||||||
authRoute _ = Just $ AuthR LoginR
|
authRoute _ = Just $ AuthR LoginR
|
||||||
|
|
||||||
isAuthorized (AuthR _) _ = return Authorized
|
isAuthorized route _isWrite = evalAccess route
|
||||||
isAuthorized HomeR _ = return Authorized
|
|
||||||
isAuthorized FaviconR _ = return Authorized
|
|
||||||
isAuthorized RobotsR _ = return Authorized
|
|
||||||
isAuthorized (StaticR _) _ = return Authorized
|
|
||||||
isAuthorized ProfileR _ = isAuthenticated
|
|
||||||
isAuthorized TermShowR _ = return Authorized
|
|
||||||
isAuthorized CourseListR _ = return Authorized
|
|
||||||
isAuthorized (CourseListTermR _) _ = return Authorized
|
|
||||||
isAuthorized (CourseR _ _ CourseShowR) _ = return Authorized
|
|
||||||
isAuthorized (CryptoUUIDDispatchR _) _ = return Authorized
|
|
||||||
isAuthorized SubmissionListR _ = isAuthenticated
|
|
||||||
isAuthorized SubmissionDownloadMultiArchiveR _ = isAuthenticated
|
|
||||||
-- isAuthorized TestR _ = return Authorized
|
|
||||||
isAuthorized route isWrite = runDB $ isAuthorizedDB route isWrite
|
|
||||||
|
|
||||||
-- This function creates static content files in the static folder
|
-- This function creates static content files in the static folder
|
||||||
-- and names them based on a hash of their content. This allows
|
-- and names them based on a hash of their content. This allows
|
||||||
@ -424,13 +420,14 @@ instance Yesod UniWorX where
|
|||||||
|
|
||||||
makeLogger = return . appLogger
|
makeLogger = return . appLogger
|
||||||
|
|
||||||
|
|
||||||
|
{- ALL DEPRECATED and will be deleted, once knownTags is completed
|
||||||
|
|
||||||
isAuthorizedDB :: Route UniWorX -> Bool -> YesodDB UniWorX AuthResult
|
isAuthorizedDB :: Route UniWorX -> Bool -> YesodDB UniWorX AuthResult
|
||||||
isAuthorizedDB route@(routeAttrs -> attrs) writeable
|
isAuthorizedDB route@(routeAttrs -> attrs) writeable
|
||||||
| "adminAny" `member` attrs = adminAccess Nothing
|
| "adminAny" `member` attrs = adminAccess Nothing
|
||||||
| "lecturerAny" `member` attrs = lecturerAccess Nothing
|
| "lecturerAny" `member` attrs = lecturerAccess Nothing
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
isAuthorizedDB UsersR _ = adminAccess Nothing
|
isAuthorizedDB UsersR _ = adminAccess Nothing
|
||||||
isAuthorizedDB (SubmissionDemoR cID) _ = return Authorized -- submissionAccess $ Right cID
|
isAuthorizedDB (SubmissionDemoR cID) _ = return Authorized -- submissionAccess $ Right cID
|
||||||
isAuthorizedDB (SubmissionDownloadSingleR cID _) _ = submissionAccess $ Right cID
|
isAuthorizedDB (SubmissionDownloadSingleR cID _) _ = submissionAccess $ Right cID
|
||||||
@ -511,6 +508,8 @@ isAuthorizedDB' route isWrite = (== Authorized) <$> isAuthorizedDB route isWrite
|
|||||||
|
|
||||||
isAuthorized' :: Route UniWorX -> Bool -> Handler Bool
|
isAuthorized' :: Route UniWorX -> Bool -> Handler Bool
|
||||||
isAuthorized' route isWrite = runDB $ isAuthorizedDB' route isWrite
|
isAuthorized' route isWrite = runDB $ isAuthorizedDB' route isWrite
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
-- Define breadcrumbs.
|
-- Define breadcrumbs.
|
||||||
instance YesodBreadcrumbs UniWorX where
|
instance YesodBreadcrumbs UniWorX where
|
||||||
|
|||||||
Reference in New Issue
Block a user