backend-0.1.0.0
Safe HaskellNone
LanguageHaskell2010

Server.HandlerUtil

Synopsis

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

errSuperAdminOnly :: ServerError Source #

errNotLoggedIn :: ServerError Source #

errUserNotFound :: ServerError Source #

errNoPermission :: ServerError Source #

errLoginFailed :: ServerError Source #