@@ -4,14 +4,12 @@ import hu.bme.sch.cmsch.component.SettingProxy
4
4
import hu.bme.sch.cmsch.component.login.authsch.ProfileResponse
5
5
import hu.bme.sch.cmsch.component.login.google.GoogleUserInfoResponse
6
6
import hu.bme.sch.cmsch.component.login.keycloak.KeycloakUserInfoResponse
7
+ import hu.bme.sch.cmsch.component.team.TeamService
7
8
import hu.bme.sch.cmsch.config.AUTHSCH
8
9
import hu.bme.sch.cmsch.config.GOOGLE
9
10
import hu.bme.sch.cmsch.config.KEYCLOAK
10
11
import hu.bme.sch.cmsch.config.StartupPropertyConfig
11
- import hu.bme.sch.cmsch.model.GuildType
12
- import hu.bme.sch.cmsch.model.MajorType
13
- import hu.bme.sch.cmsch.model.RoleType
14
- import hu.bme.sch.cmsch.model.UserEntity
12
+ import hu.bme.sch.cmsch.model.*
15
13
import hu.bme.sch.cmsch.repository.GroupRepository
16
14
import hu.bme.sch.cmsch.repository.GroupToUserMappingRepository
17
15
import hu.bme.sch.cmsch.repository.GuildToUserMappingRepository
@@ -23,6 +21,7 @@ import hu.bme.sch.cmsch.util.transaction
23
21
import org.slf4j.LoggerFactory
24
22
import org.springframework.stereotype.Service
25
23
import org.springframework.transaction.PlatformTransactionManager
24
+ import java.util.*
26
25
27
26
@Service
28
27
open class LoginService (
@@ -36,7 +35,8 @@ open class LoginService(
36
35
private val unitScopeComponent : UnitScopeComponent ,
37
36
private val startupPropertyConfig : StartupPropertyConfig ,
38
37
private val adminMenuService : AdminMenuService ,
39
- private val transactionManager : PlatformTransactionManager
38
+ private val transactionManager : PlatformTransactionManager ,
39
+ private val teamService : Optional <TeamService >
40
40
) {
41
41
42
42
private val log = LoggerFactory .getLogger(javaClass)
@@ -266,8 +266,7 @@ open class LoginService(
266
266
if (user.neptun.isNotBlank()) {
267
267
groupToUserMapping.findByNeptun(user.neptun).ifPresent {
268
268
user.major = it.major
269
- user.groupName = it.groupName
270
- user.group = groups.findByName(it.groupName).orElse(null )
269
+ addUserToGroup(user, it)
271
270
user.detailsImported = true
272
271
alreadySetGroupAndGuild = true
273
272
}
@@ -276,13 +275,22 @@ open class LoginService(
276
275
if (user.email.isNotBlank() && ! alreadySetGroupAndGuild) {
277
276
groupToUserMapping.findByEmailIgnoreCase(user.email).ifPresent {
278
277
user.major = it.major
279
- user.groupName = it.groupName
280
- user.group = groups.findByName(it.groupName).orElse(null )
278
+ addUserToGroup(user, it)
281
279
user.detailsImported = true
282
280
}
283
281
}
284
282
}
285
283
284
+ private fun addUserToGroup (user : UserEntity , groupMapping : GroupToUserMappingEntity ) {
285
+ val group = groups.findByName(groupMapping.groupName)
286
+ if (teamService.isPresent && group.isPresent) {
287
+ teamService.get().addUserToGroup(user, group.get())
288
+ } else {
289
+ user.groupName = groupMapping.groupName
290
+ user.group = group.orElse(null )
291
+ }
292
+ }
293
+
286
294
private fun processUnitScopeStatus (
287
295
user : UserEntity ,
288
296
grantRoleAttendee : SettingProxy ,
0 commit comments