bug5510: reintroducing 5510 changes after revert on master

This commit is contained in:
Dennis Aulenbacher
2021-04-26 18:17:37 +02:00
parent bb721d056b
commit 4fa59573c6
43 changed files with 566 additions and 147 deletions
@@ -23,6 +23,7 @@ Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.racelog.utils,
com.sap.sailing.domain.common.scalablevalue.impl,
com.sap.sailing.domain.common.security,
com.sap.sailing.domain.common.subscription,
com.sap.sailing.domain.common.sensordata,
com.sap.sailing.domain.common.sharding,
com.sap.sailing.domain.common.tagging,
@@ -53,7 +53,8 @@ public class SecuredDomainType extends HasPermissionsImpl {
public static enum TrackedRaceActions implements Action {
CAN_REPLAY_DURING_LIVE_RACES,
DETAIL_TIMER,
EXPORT;
EXPORT,
VIEWSTREAMLETS;
private static final Action[] ALL_ACTIONS = DefaultActions.plus(CAN_REPLAY_DURING_LIVE_RACES, DETAIL_TIMER,
EXPORT);
@@ -0,0 +1,34 @@
package com.sap.sailing.domain.common.subscription;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.sap.sse.security.shared.subscription.SubscriptionPlan;
import com.sap.sse.security.shared.subscription.SubscriptionPlanRole;
/**
* Payment subscription plans. A subscription plan has a name, a {@link String}-based ID, and a set of
* {@link SubscriptionPlanRole roles} it grants to a subscribing user. These roles can specify how they are to be
* qualified when assigned, regarding user and group qualifications. See
* {@link SubscriptionPlanRole.GroupQualificationMode} and {@link SubscriptionPlanRole.UserQualificationMode} for
* more details.
*
*/
public class SailingSubscriptionPlan extends SubscriptionPlan{
private static final long serialVersionUID = 2563619370274543312L;
private static final Map<String, SubscriptionPlan> plansById = new HashMap<>();
private SailingSubscriptionPlan(String id, String name, SubscriptionPlanRole[] roles) {
super(id, name, roles);
plansById.put(id, this);
}
public static final SubscriptionPlan PRO = new SailingSubscriptionPlan ("pro", "PRO", new SubscriptionPlanRole[] {
new SubscriptionPlanRole(StreamletViewerRole.ROLE_ID)});
public static Map<Serializable, SubscriptionPlan> getAllInstances(){
return Collections.unmodifiableMap(plansById);
}
}
@@ -0,0 +1,28 @@
package com.sap.sailing.domain.common.subscription;
import java.util.UUID;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sse.security.shared.RolePrototype;
import com.sap.sse.security.shared.WildcardPermission;
/**
* Specifies a role that when associated to a user gives access to the streamlet Feature on the RaceMap
*/
public class StreamletViewerRole extends RolePrototype {
protected static final UUID ROLE_ID = UUID.fromString("f7912343-2091-4925-b815-8f68a4414eff");
private static final long serialVersionUID = 3291793984984443193L;
private static final StreamletViewerRole INSTANCE = new StreamletViewerRole();
StreamletViewerRole() {
super("streamlet_viewer", ROLE_ID.toString(),
WildcardPermission.builder().withTypes(SecuredDomainType.TRACKED_RACE)
.withActions(SecuredDomainType.TrackedRaceActions.VIEWSTREAMLETS).build());
}
public static StreamletViewerRole getInstance() {
return INSTANCE;
}
}