Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions app/controllers/ProjectEntryController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import slick.dbio.DBIOAction
import slick.jdbc.PostgresProfile
import slick.jdbc.PostgresProfile.api._
import slick.lifted.TableQuery

import play.api.libs.mailer._
import java.io.File
import java.nio.file.Paths
import java.time.ZonedDateTime
Expand Down Expand Up @@ -67,7 +67,7 @@ class ProjectEntryController @Inject() (@Named("project-creation-actor") project
@Named("auditor") auditor:ActorRef,
override val controllerComponents:ControllerComponents, override val bearerTokenAuth:BearerTokenAuth,
storageHelper:StorageHelper)
(implicit fileEntryDAO:FileEntryDAO, assetFolderFileEntryDAO:AssetFolderFileEntryDAO, injector: Injector, mat: Materializer)
(implicit fileEntryDAO:FileEntryDAO, assetFolderFileEntryDAO:AssetFolderFileEntryDAO, injector: Injector, mat: Materializer, mailerClient: MailerClient)
extends GenericDatabaseObjectControllerWithFilter[ProjectEntry,ProjectEntryFilterTerms]
with ProjectEntrySerializer with ProjectRequestSerializer with ProjectEntryFilterTermsSerializer
with UpdateTitleRequestSerializer with FileEntrySerializer with AssetFolderFileEntrySerializer
Expand Down Expand Up @@ -369,6 +369,15 @@ class ProjectEntryController @Inject() (@Named("project-creation-actor") project
case GenericCreationActor.ProjectCreateSucceeded(succeededRequest, projectEntry)=>
logger.info(s"Created new project: $projectEntry")
sendToRabbitMq(CreateOperation(), projectEntry, rabbitMqPropagator)
if (projectEntry.sensitive == Some(true)) {
logger.info(s"Sensitive project created.")
try {
val email = Email( config.get[String]("mail.subject"), s"${config.get[String]("mail.sender_name")} <${config.get[String]("mail.sender_address")}>", Seq(s"${config.get[String]("mail.recipient_name")} <${config.get[String]("mail.recipient_address")}>"), bodyText = Some(s"A sensitive project has been created by ${projectEntry.user}. It has the identity number ${projectEntry.id.get} and the tile '${projectEntry.projectTitle}'."))
mailerClient.send(email)
} catch {
case e: Exception => logger.error(s"Sending e-mail failed with error: $e")
}
}
Ok(Json.obj("status"->"ok","detail"->"created project", "projectId"->projectEntry.id.get))
case GenericCreationActor.ProjectCreateFailed(failedRequest, error)=>
logger.error("Could not create new project", error)
Expand Down
3 changes: 3 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ libraryDependencies ++= Seq(
"software.amazon.awssdk" % "url-connection-client" % awsSdk2Version
)

libraryDependencies += "com.typesafe.play" %% "play-mailer" % "8.0.1"
libraryDependencies += "com.typesafe.play" %% "play-mailer-guice" % "8.0.1"

enablePlugins(UniversalPlugin)

enablePlugins(LinuxPlugin)
Expand Down
Loading