diff --git a/app/Main.hs b/app/Main.hs index 0147bca..2e137a9 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -91,6 +91,7 @@ main = do void $ execute_ conn initJournal void $ execute_ conn initRole void $ execute_ conn initUserToRole + runInsertInitialRole forkCleanProcess conn store withStdoutLogger $ \ilog -> do let settings = setPort (fromIntegral lport) $ diff --git a/src/Model/Role.hs b/src/Model/Role.hs index 5a9bf22..a975132 100644 --- a/src/Model/Role.hs +++ b/src/Model/Role.hs @@ -100,3 +100,32 @@ userToRoleTable = table "user_to_role" ( , tableField "role_id" ) ) + +insertInitialRole :: PGS.Connection -> MateHandler () +insertInitialRole conn = + liftIO $ runInsertInitalRole conn + +runInsertInitalRole :: PGS.Connection -> IO () +runInsertInitalRole conn = + runInsert_ conn $ Insert + { iTable = roleTable + , iRows = + [ + ( C.constant (Nothing :: Maybe Int) + , C.constant "Administrator" + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + , C.constant True + ) + ] + , iReturning = rReturning (\(id_, _, _, _, _, _, _, _, _, _, _, _, _) -> id_) + , iOnConflict = Nothing + }