feat: Create authorization

This commit is contained in:
2026-01-18 22:16:51 +01:00
parent 9d72cda5ff
commit af88f5c559
15 changed files with 794 additions and 12 deletions

View File

@@ -0,0 +1,22 @@
package di
import com.google.inject.Provider
import com.google.inject.Inject
import jakarta.inject.Singleton
import jakarta.persistence.{EntityManager, EntityManagerFactory, Persistence}
@Singleton
class EntityManagerProvider @Inject()() extends Provider[EntityManager] {
private val emf: EntityManagerFactory = Persistence.createEntityManagerFactory("defaultPersistenceUnit")
override def get(): EntityManager = {
emf.createEntityManager()
}
def close(): Unit = {
if (emf.isOpen) {
emf.close()
}
}
}

View File

@@ -0,0 +1,25 @@
package di
import com.google.inject.AbstractModule
import com.google.inject.name.Names
import logic.user.impl.HibernateUserManager
import play.api.db.DBApi
import play.api.{Configuration, Environment}
class ProductionModule(
environment: Environment,
configuration: Configuration
) extends AbstractModule {
override def configure(): Unit = {
// Bind HibernateUserManager for production
bind(classOf[logic.user.UserManager])
.to(classOf[logic.user.impl.HibernateUserManager])
.asEagerSingleton()
// Bind EntityManager for JPA
bind(classOf[jakarta.persistence.EntityManager])
.toProvider(classOf[EntityManagerProvider])
.asEagerSingleton()
}
}