IChannelDefinition channel = this.channelRegistryStore
.getChannelDefinition(channelPublishId);
if (channel == null){
return false;
}
ChannelLifecycleState state = channel.getLifecycleState();
/*
* Each channel lifecycle state now has its own subscribe permission. The
* following logic checks the appropriate permission for the lifecycle.
*/
String permission;
if (state.equals(ChannelLifecycleState.PUBLISHED)) {
permission = IPermission.CHANNEL_SUBSCRIBER_ACTIVITY;
} else if (state.equals(ChannelLifecycleState.APPROVED)) {
permission = IPermission.CHANNEL_SUBSCRIBER_APPROVED_ACTIVITY;
} else if (state.equals(ChannelLifecycleState.CREATED)) {
permission = IPermission.CHANNEL_SUBSCRIBER_CREATED_ACTIVITY;
} else if (state.equals(ChannelLifecycleState.EXPIRED)) {
permission = IPermission.CHANNEL_SUBSCRIBER_EXPIRED_ACTIVITY;
} else {
throw new AuthorizationException(
"Unrecognized lifecycle state for channel "
+ channelPublishId);