| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Server.HandlerUtil
Synopsis
- ifSuperOrAdminDo :: Connection -> Token -> GroupID -> Handler a -> Handler a
- ifSuperOrGroupMemberDo :: Connection -> Token -> GroupID -> Handler a -> Handler a
- ifSuperOrAnyAdminDo :: Connection -> Token -> Handler a -> Handler a
- tryGetDBConnection :: Handler Connection
- addRoleInGroup :: Connection -> UserID -> GroupID -> Role -> Handler ()
- checkPermission :: Connection -> UserID -> DocumentID -> Handler (Maybe Permission)
- getGroupOfDocument :: Connection -> DocumentID -> Handler GroupID
- errDatabaseConnectionFailed :: ServerError
- errDatabaseAccessFailed :: ServerError
- errNoMemberOfThisGroup :: ServerError
- errNoAdminInAnyGroup :: ServerError
- errNoAdminOfThisGroup :: ServerError
- errSuperAdminOnly :: ServerError
- errNotLoggedIn :: ServerError
- errUserCreationFailed :: ServerError
- errUserNotFound :: ServerError
- errEmailAlreadyUsed :: ServerError
- errDocumentDoesNotExist :: ServerError
- errNoPermission :: ServerError
- errWrongLoginCredentials :: ServerError
- errLoginFailed :: ServerError
Documentation
ifSuperOrAdminDo :: Connection -> Token -> GroupID -> Handler a -> Handler a Source #
Checks if User is SuperAdmin or Admin in the given group. If so, it calls the given callback Handler; Otherwise, it throws a 403 error.
ifSuperOrGroupMemberDo :: Connection -> Token -> GroupID -> Handler a -> Handler a Source #
Checks if user is Member (or Admin) in specified group or Superadmin. If so, it calls the given callback Handler; Otherwise, it throws a 403 error.
ifSuperOrAnyAdminDo :: Connection -> Token -> Handler a -> Handler a Source #
Checks if user is SuperAdmin or Admin in ANY Group. If so, it calss the given callback Handler; Otherwise, it throws a 403 error.
tryGetDBConnection :: Handler Connection Source #
Gets DB Connection and throws 500 error if it fails
addRoleInGroup :: Connection -> UserID -> GroupID -> Role -> Handler () Source #
Adds given role in group to User
checkPermission :: Connection -> UserID -> DocumentID -> Handler (Maybe Permission) Source #
Check if User is Member (or Admin) of the group that owns the specified document
or return external Permission. Members will always get Editor permission.
Nothing -> both paths failed (no permission)
Just Permission -> User has given access rights
getGroupOfDocument :: Connection -> DocumentID -> Handler GroupID Source #
Get the groupID of the group that owns the specified document
errDatabaseConnectionFailed :: ServerError Source #
errDatabaseAccessFailed :: ServerError Source #
errNoMemberOfThisGroup :: ServerError Source #
errNoAdminInAnyGroup :: ServerError Source #
errNoAdminOfThisGroup :: ServerError Source #
errSuperAdminOnly :: ServerError Source #
errNotLoggedIn :: ServerError Source #
errUserCreationFailed :: ServerError Source #
errUserNotFound :: ServerError Source #
errEmailAlreadyUsed :: ServerError Source #
errDocumentDoesNotExist :: ServerError Source #
errNoPermission :: ServerError Source #
errWrongLoginCredentials :: ServerError Source #
errLoginFailed :: ServerError Source #