Provisional check for user adding themselves as lecturer
This commit is contained in:
parent
3a260804d9
commit
8110e7ff6c
@ -104,6 +104,9 @@ CourseLecturers: Kursverwalter
|
|||||||
CourseLecturer: Dozent
|
CourseLecturer: Dozent
|
||||||
CourseAssistant: Assistent
|
CourseAssistant: Assistent
|
||||||
CourseLecturerAlreadyAdded email@UserEmail: Es gibt bereits einen Kursverwalter mit E-Mail #{email}
|
CourseLecturerAlreadyAdded email@UserEmail: Es gibt bereits einen Kursverwalter mit E-Mail #{email}
|
||||||
|
CourseRegistrationEndMustBeAfterStart: Ende des Anmeldezeitraums muss nach dem Anfang liegen
|
||||||
|
CourseDeregistrationEndMustBeAfterStart: Ende des Abmeldezeitraums muss nach dem Anfang des Anmeldezeitraums liegen
|
||||||
|
CourseUserMustBeLecturer: Aktueller Benutzer muss als Kursverwalter eingetragen sein
|
||||||
|
|
||||||
NoSuchTerm tid@TermId: Semester #{display tid} gibt es nicht.
|
NoSuchTerm tid@TermId: Semester #{display tid} gibt es nicht.
|
||||||
NoSuchSchool ssh@SchoolId: Institut #{display ssh} gibt es nicht.
|
NoSuchSchool ssh@SchoolId: Institut #{display ssh} gibt es nicht.
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import Handler.Utils.Delete
|
|||||||
import Handler.Utils.Database
|
import Handler.Utils.Database
|
||||||
import Handler.Utils.Table.Cells
|
import Handler.Utils.Table.Cells
|
||||||
import Handler.Utils.Table.Columns
|
import Handler.Utils.Table.Columns
|
||||||
import Database.Esqueleto.Utils
|
import qualified Database.Esqueleto.Utils as E
|
||||||
import Database.Esqueleto.Utils.TH
|
import Database.Esqueleto.Utils.TH
|
||||||
|
|
||||||
-- import Data.Time
|
-- import Data.Time
|
||||||
@ -684,10 +684,10 @@ makeCourseForm miButtonAction template = identifyForm FIDcourse $ \html -> do
|
|||||||
<*> aopt utcTimeField (fslpI MsgDeRegUntil (mr MsgDate)
|
<*> aopt utcTimeField (fslpI MsgDeRegUntil (mr MsgDate)
|
||||||
& setTooltip MsgCourseDeregisterUntilTip) (deepAlt (cfDeRegUntil <$> template) newDeRegUntil)
|
& setTooltip MsgCourseDeregisterUntilTip) (deepAlt (cfDeRegUntil <$> template) newDeRegUntil)
|
||||||
<*> lecturerForm
|
<*> lecturerForm
|
||||||
return $ case result of
|
errorMsgs' <- traverse validateCourse result
|
||||||
FormSuccess courseResult
|
return $ case errorMsgs' of
|
||||||
| errorMsgs <- validateCourse courseResult
|
FormSuccess errorMsgs
|
||||||
, not $ null errorMsgs ->
|
| not $ null errorMsgs ->
|
||||||
(FormFailure errorMsgs,
|
(FormFailure errorMsgs,
|
||||||
[whamlet|
|
[whamlet|
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
@ -702,23 +702,26 @@ makeCourseForm miButtonAction template = identifyForm FIDcourse $ \html -> do
|
|||||||
_ -> (result, widget)
|
_ -> (result, widget)
|
||||||
|
|
||||||
|
|
||||||
validateCourse :: CourseForm -> [Text]
|
validateCourse :: (MonadHandler m, HandlerSite m ~ UniWorX) => CourseForm -> m [Text]
|
||||||
validateCourse CourseForm{..} =
|
validateCourse CourseForm{..} = do
|
||||||
[ msg | (False, msg) <-
|
uid <- liftHandlerT requireAuthId
|
||||||
[
|
userAdmin <- liftHandlerT . runDB . getBy $ UniqueUserAdmin uid cfSchool -- FIXME: This /needs/ to be a call to `isAuthorized` on a route
|
||||||
( NTop cfRegFrom <= NTop cfRegTo
|
MsgRenderer mr <- getMsgRenderer
|
||||||
, "Ende des Anmeldezeitraums muss nach dem Anfang liegen"
|
|
||||||
)
|
return
|
||||||
,
|
[ mr msg | (False, msg) <-
|
||||||
( NTop cfRegFrom <= NTop cfDeRegUntil
|
[
|
||||||
, "Ende des Abmeldezeitraums muss nach dem Anfang liegen"
|
( NTop cfRegFrom <= NTop cfRegTo
|
||||||
)
|
, MsgCourseRegistrationEndMustBeAfterStart
|
||||||
-- No starting date is okay: effective immediately
|
)
|
||||||
-- ( cfHasReg <= (isNothing cfRegFrom)
|
,
|
||||||
-- , "Beginn der Anmeldung angeben oder Anmeldungen deaktivieren"
|
( NTop cfRegFrom <= NTop cfDeRegUntil
|
||||||
-- )
|
, MsgCourseDeregistrationEndMustBeAfterStart
|
||||||
-- ,
|
)
|
||||||
] ]
|
, ( maybe (any ((== uid) . fst) cfLecturers) (\(Entity _ UserAdmin{}) -> True) userAdmin
|
||||||
|
, MsgCourseUserMustBeLecturer
|
||||||
|
)
|
||||||
|
] ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -852,7 +855,7 @@ makeCourseUserTable cid colChoices psValidator =
|
|||||||
, fltrUserNameEmail queryUser
|
, fltrUserNameEmail queryUser
|
||||||
-- , ("course-user-degree", error "TODO") -- TODO
|
-- , ("course-user-degree", error "TODO") -- TODO
|
||||||
-- , ("course-user-field" , error "TODO") -- TODO
|
-- , ("course-user-field" , error "TODO") -- TODO
|
||||||
, ("course-user-semesternr", FilterColumn $ mkExactFilter $ queryFeaturesStudy >>> (E.?. StudyFeaturesSemester))
|
, ("course-user-semesternr", FilterColumn $ E.mkExactFilter $ queryFeaturesStudy >>> (E.?. StudyFeaturesSemester))
|
||||||
-- , ("course-registration", error "TODO") -- TODO
|
-- , ("course-registration", error "TODO") -- TODO
|
||||||
-- , ("course-user-note", error "TODO") -- TODO
|
-- , ("course-user-note", error "TODO") -- TODO
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user