Skip to content

Commit 45bc8a6

Browse files
committed
Require "now" in group acl insert
1 parent 26cb01b commit 45bc8a6

8 files changed

+45
-40
lines changed

service/src/integrationTest/kotlin/fi/espoo/evaka/attendance/MobileRealtimeStaffAttendanceControllerIntegrationTest.kt

+26-26
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
8484
tx.insert(employee)
8585
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
8686
tx.insertDaycareAclRow(testDaycare2.id, employee.id, UserRole.STAFF)
87-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
88-
tx.insertDaycareGroupAcl(testDaycare2.id, employee.id, listOf(groupId2))
87+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
88+
tx.insertDaycareGroupAcl(testDaycare2.id, employee.id, listOf(groupId2), now)
8989

9090
tx.markStaffArrival(
9191
employee.id,
@@ -110,7 +110,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
110110
tx.insert(employee)
111111
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
112112
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
113-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
113+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
114114
}
115115

116116
val arrivalTime = HelsinkiDateTime.of(today, LocalTime.of(8, 0))
@@ -146,7 +146,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
146146
tx.insert(employee)
147147
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
148148
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
149-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
149+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
150150
}
151151

152152
val arrivalTime = HelsinkiDateTime.of(today, LocalTime.of(8, 0))
@@ -176,7 +176,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
176176
tx.insert(employee)
177177
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
178178
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
179-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
179+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
180180
}
181181

182182
val arrivalTime = HelsinkiDateTime.of(today, LocalTime.of(8, 0))
@@ -211,7 +211,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
211211
tx.insert(employee)
212212
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
213213
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
214-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
214+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
215215
tx.insert(
216216
DevStaffAttendancePlan(
217217
employeeId = employee.id,
@@ -243,7 +243,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
243243
tx.insert(employee)
244244
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
245245
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
246-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
246+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
247247
tx.insert(
248248
DevStaffAttendancePlan(
249249
employeeId = employee.id,
@@ -276,7 +276,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
276276
tx.insert(employee)
277277
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
278278
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
279-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
279+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
280280
tx.insert(
281281
DevStaffAttendancePlan(
282282
employeeId = employee.id,
@@ -309,7 +309,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
309309
tx.insert(employee)
310310
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
311311
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
312-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
312+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
313313
tx.insert(
314314
DevStaffAttendancePlan(
315315
employeeId = employee.id,
@@ -351,7 +351,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
351351
tx.insert(employee)
352352
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
353353
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
354-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
354+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
355355
tx.insert(
356356
DevStaffAttendancePlan(
357357
employeeId = employee.id,
@@ -376,7 +376,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
376376
tx.insert(employee)
377377
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
378378
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
379-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
379+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
380380
}
381381

382382
val lastLoginBeforeArrival = db.read { db -> db.getEmployeeLastLogin(employee.id) }
@@ -402,7 +402,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
402402
tx.insert(employee)
403403
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
404404
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
405-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
405+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
406406
tx.insert(
407407
DevStaffAttendancePlan(
408408
employeeId = employee.id,
@@ -438,7 +438,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
438438
tx.insert(employee)
439439
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
440440
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
441-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
441+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
442442
tx.insert(
443443
DevStaffAttendancePlan(
444444
employeeId = employee.id,
@@ -464,7 +464,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
464464
tx.insert(employee)
465465
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
466466
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
467-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
467+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
468468
tx.insert(
469469
DevStaffAttendancePlan(
470470
employeeId = employee.id,
@@ -488,7 +488,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
488488
tx.insert(employee)
489489
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
490490
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
491-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
491+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
492492
tx.insert(
493493
DevStaffAttendancePlan(
494494
employeeId = employee.id,
@@ -531,7 +531,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
531531
tx.insert(employee)
532532
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
533533
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
534-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
534+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
535535
tx.insert(
536536
DevStaffAttendancePlan(
537537
employeeId = employee.id,
@@ -570,7 +570,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
570570
tx.insert(employee)
571571
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
572572
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
573-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
573+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
574574
tx.insert(
575575
DevStaffAttendancePlan(
576576
employeeId = employee.id,
@@ -596,7 +596,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
596596
tx.insert(employee)
597597
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
598598
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
599-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
599+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
600600
tx.insert(
601601
DevStaffAttendancePlan(
602602
employeeId = employee.id,
@@ -629,7 +629,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
629629
tx.insert(employee)
630630
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
631631
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
632-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
632+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
633633
tx.insert(
634634
DevStaffAttendancePlan(
635635
employeeId = employee.id,
@@ -671,7 +671,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
671671
tx.insert(employee)
672672
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
673673
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
674-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
674+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
675675
tx.insert(
676676
DevStaffAttendancePlan(
677677
employeeId = employee.id,
@@ -708,7 +708,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
708708
tx.insert(employee)
709709
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
710710
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
711-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
711+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
712712
tx.insert(
713713
DevStaffAttendancePlan(
714714
employeeId = employee.id,
@@ -757,7 +757,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
757757
tx.insert(employee)
758758
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
759759
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
760-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
760+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
761761
tx.insert(
762762
DevStaffAttendancePlan(
763763
employeeId = employee.id,
@@ -792,7 +792,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
792792
tx.insert(employee)
793793
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
794794
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
795-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
795+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
796796
tx.insert(
797797
DevStaffAttendancePlan(
798798
employeeId = employee.id,
@@ -828,7 +828,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
828828
tx.insert(employee)
829829
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
830830
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
831-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
831+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
832832
tx.insert(
833833
DevStaffAttendancePlan(
834834
employeeId = employee.id,
@@ -873,7 +873,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
873873
tx.insert(employee)
874874
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
875875
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
876-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
876+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
877877
tx.insert(
878878
DevStaffAttendancePlan(
879879
employeeId = employee.id,
@@ -908,7 +908,7 @@ class MobileRealtimeStaffAttendanceControllerIntegrationTest :
908908
tx.insert(employee)
909909
tx.insert(DevEmployeePin(userId = employee.id, pin = pinCode))
910910
tx.insertDaycareAclRow(testDaycare.id, employee.id, UserRole.STAFF)
911-
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId))
911+
tx.insertDaycareGroupAcl(testDaycare.id, employee.id, listOf(groupId), now)
912912
tx.insert(
913913
DevStaffAttendancePlan(
914914
employeeId = employee.id,

service/src/integrationTest/kotlin/fi/espoo/evaka/attendance/RealtimeStaffAttendanceControllerIntegrationTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class RealtimeStaffAttendanceControllerIntegrationTest :
6363
tx.insertDaycareAclRow(testDaycare2.id, supervisor.id, UserRole.UNIT_SUPERVISOR)
6464
tx.insertDaycareAclRow(testDaycare.id, staff.id, UserRole.STAFF)
6565
tx.insertDaycareAclRow(testDaycare2.id, staff.id, UserRole.STAFF)
66-
tx.insertDaycareGroupAcl(testDaycare.id, staff.id, listOf(groupId1))
66+
tx.insertDaycareGroupAcl(testDaycare.id, staff.id, listOf(groupId1), now)
6767

6868
tx.upsertOccupancyCoefficient(
6969
OccupancyCoefficientUpsert(testDaycare.id, staff.id, BigDecimal(7))

service/src/integrationTest/kotlin/fi/espoo/evaka/messaging/MessageAccountQueriesTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class MessageAccountQueriesTest : PureJdbiTest(resetDbBeforeEach = true) {
8484
it.insertDaycareAclRow(daycareId, supervisorId, UserRole.UNIT_SUPERVISOR)
8585

8686
it.insertDaycareAclRow(daycareId, employee1Id, UserRole.STAFF)
87-
it.insertDaycareGroupAcl(daycareId, employee1Id, listOf(groupId))
87+
it.insertDaycareGroupAcl(daycareId, employee1Id, listOf(groupId), clock.now())
8888

8989
// employee2 has no groups
9090
it.insertDaycareAclRow(daycareId, employee2Id, UserRole.STAFF)

service/src/integrationTest/kotlin/fi/espoo/evaka/messaging/MessageIntegrationTest.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,12 @@ class MessageIntegrationTest : FullApplicationTest(resetDbBeforeEach = true) {
276276

277277
employee1Account = tx.upsertEmployeeMessageAccount(employee1.id)
278278
tx.insertDaycareAclRow(testDaycare.id, employee1.id, UserRole.UNIT_SUPERVISOR)
279-
tx.insertDaycareGroupAcl(testDaycare.id, employee1.id, listOf(groupId1, groupId2))
279+
tx.insertDaycareGroupAcl(
280+
testDaycare.id,
281+
employee1.id,
282+
listOf(groupId1, groupId2),
283+
clock.now(),
284+
)
280285

281286
tx.insert(DevEmployee(id = employee2.id, firstName = "Foo", lastName = "Supervisor"))
282287
employee2Account = tx.upsertEmployeeMessageAccount(employee2.id)

service/src/integrationTest/kotlin/fi/espoo/evaka/pis/InactiveEmployeesRoleResetIntegrationTest.kt

+1
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ class InactiveEmployeesRoleResetIntegrationTest : PureJdbiTest(resetDbBeforeEach
160160
daycareId = unitId,
161161
employeeId = employeeId,
162162
groupIds = listOf(groupId),
163+
firstOfAugust2021,
163164
)
164165
it.setDaycareGroupAclUpdated(groupId, employeeId, firstOfAugust2021.minusDays(5))
165166
employeeId

service/src/main/kotlin/fi/espoo/evaka/daycare/controllers/UnitAclController.kt

+7-9
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ import fi.espoo.evaka.shared.auth.hasAnyDaycareAclRow
3636
import fi.espoo.evaka.shared.auth.insertDaycareAclRow
3737
import fi.espoo.evaka.shared.auth.insertDaycareGroupAcl
3838
import fi.espoo.evaka.shared.db.Database
39-
import fi.espoo.evaka.shared.domain.BadRequest
40-
import fi.espoo.evaka.shared.domain.EvakaClock
41-
import fi.espoo.evaka.shared.domain.Forbidden
42-
import fi.espoo.evaka.shared.domain.NotFound
39+
import fi.espoo.evaka.shared.domain.*
4340
import fi.espoo.evaka.shared.security.AccessControl
4441
import fi.espoo.evaka.shared.security.Action
4542
import java.math.BigDecimal
@@ -234,7 +231,7 @@ class UnitAclController(private val accessControl: AccessControl) {
234231
)
235232
validateIsPermanentEmployee(tx, employeeId)
236233
tx.clearDaycareGroupAcl(daycareId, employeeId)
237-
tx.insertDaycareGroupAcl(daycareId, employeeId, it)
234+
tx.insertDaycareGroupAcl(daycareId, employeeId, it, clock.now())
238235
}
239236

240237
val occupancyCoefficientId =
@@ -298,7 +295,7 @@ class UnitAclController(private val accessControl: AccessControl) {
298295
Action.Unit.UPDATE_STAFF_GROUP_ACL,
299296
daycareId,
300297
)
301-
tx.insertDaycareGroupAcl(daycareId, employeeId, it)
298+
tx.insertDaycareGroupAcl(daycareId, employeeId, it, clock.now())
302299
}
303300
val occupancyCoefficientId =
304301
aclInfo.update.hasStaffOccupancyEffect?.let {
@@ -403,7 +400,7 @@ class UnitAclController(private val accessControl: AccessControl) {
403400
active = true,
404401
)
405402
)
406-
setTemporaryEmployeeDetails(tx, unitId, employee.id, input)
403+
setTemporaryEmployeeDetails(tx, unitId, employee.id, input, clock.now())
407404
employee.id
408405
}
409406
}
@@ -484,7 +481,7 @@ class UnitAclController(private val accessControl: AccessControl) {
484481
firstName = input.firstName,
485482
lastName = input.lastName,
486483
)
487-
setTemporaryEmployeeDetails(tx, unitId, employee.id, input)
484+
setTemporaryEmployeeDetails(tx, unitId, employee.id, input, clock.now())
488485
}
489486
}
490487
Audit.TemporaryEmployeeUpdate.log(
@@ -553,6 +550,7 @@ class UnitAclController(private val accessControl: AccessControl) {
553550
unitId: DaycareId,
554551
employeeId: EmployeeId,
555552
input: TemporaryEmployee,
553+
now: HelsinkiDateTime,
556554
) {
557555
if (
558556
input.groupIds.isNotEmpty() &&
@@ -563,7 +561,7 @@ class UnitAclController(private val accessControl: AccessControl) {
563561

564562
tx.clearDaycareGroupAcl(unitId, employeeId)
565563
tx.insertDaycareAclRow(unitId, employeeId, UserRole.STAFF)
566-
tx.insertDaycareGroupAcl(unitId, employeeId, input.groupIds.toList())
564+
tx.insertDaycareGroupAcl(unitId, employeeId, input.groupIds.toList(), now)
567565

568566
tx.upsertEmployeeMessageAccount(employeeId)
569567
tx.upsertOccupancyCoefficient(

service/src/main/kotlin/fi/espoo/evaka/shared/auth/AclQueries.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ fun Database.Transaction.insertDaycareGroupAcl(
122122
daycareId: DaycareId,
123123
employeeId: EmployeeId,
124124
groupIds: Collection<GroupId>,
125-
now: HelsinkiDateTime = HelsinkiDateTime.now(),
125+
now: HelsinkiDateTime,
126126
) =
127127
executeBatch(groupIds) {
128128
sql(

0 commit comments

Comments
 (0)