1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.wa.starter.mapping;
20
21 import java.time.format.DateTimeFormatter;
22 import java.util.Optional;
23 import org.apache.syncope.common.lib.policy.AccessPolicyConf;
24 import org.apache.syncope.common.lib.policy.AccessPolicyTO;
25 import org.apache.syncope.common.lib.policy.TimeBasedAccessPolicyConf;
26 import org.apereo.cas.services.RegisteredServiceAccessStrategy;
27 import org.apereo.cas.services.TimeBasedRegisteredServiceAccessStrategy;
28
29 public class TimeBasedAccessMapper implements AccessMapper {
30
31 @Override
32 public boolean supports(final AccessPolicyConf conf) {
33 return TimeBasedAccessPolicyConf.class.equals(conf.getClass());
34 }
35
36 @Override
37 public RegisteredServiceAccessStrategy build(final AccessPolicyTO policy) {
38 TimeBasedAccessPolicyConf conf = (TimeBasedAccessPolicyConf) policy.getConf();
39
40 TimeBasedRegisteredServiceAccessStrategy accessStrategy = new TimeBasedRegisteredServiceAccessStrategy();
41
42 Optional.ofNullable(conf.getStart()).
43 map(DateTimeFormatter.ISO_OFFSET_DATE_TIME::format).ifPresent(accessStrategy::setStartingDateTime);
44 Optional.ofNullable(conf.getEnd()).
45 map(DateTimeFormatter.ISO_OFFSET_DATE_TIME::format).ifPresent(accessStrategy::setEndingDateTime);
46
47 Optional.ofNullable(conf.getZoneId()).ifPresent(accessStrategy::setZoneId);
48
49 return accessStrategy;
50 }
51 }