/**
* Licensed to Apereo under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. Apereo
* licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use
* this file except in compliance with the License. You may obtain a copy of the License at the
* following location:
*
* <p>http://www.apache.org/licenses/LICENSE-2.0
*
* <p>Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apereo.portal.io.xml.portlettype;
import org.apereo.portal.security.IPermission;
/**
* Set of supported permissions that can be used in the <permissions></permissions> element of a
* portlet definition.
*
* @since 4.2
*/
public enum ExternalPermissionDefinition {
SUBSCRIBE(IPermission.PORTAL_SUBSCRIBE, IPermission.PORTLET_SUBSCRIBER_ACTIVITY, false),
BROWSE(IPermission.PORTAL_SUBSCRIBE, IPermission.PORTLET_BROWSE_ACTIVITY, true);
private final String system;
private final String activity;
private boolean exportForPortletDef;
ExternalPermissionDefinition(final String system, final String activity, final boolean export) {
this.system = system;
this.activity = activity;
this.exportForPortletDef = export;
}
public String getSystem() {
return system;
}
public String getActivity() {
return activity;
}
public boolean getExportForPortletDef() {
return exportForPortletDef;
}
public String toString() {
return system + "." + activity;
}
/**
* Given a system and activity, attempt to lookup a matching ExternalPermissionDefinition.
*
* @param system the system to lookup
* @param activity the activity to lookup
* @return the matching permission if one can be found, otherwise null
*/
public static ExternalPermissionDefinition find(String system, String activity) {
for (ExternalPermissionDefinition perm : ExternalPermissionDefinition.values()) {
if (perm.system.equalsIgnoreCase(system) && perm.activity.equalsIgnoreCase(activity)) {
return perm;
}
}
return null;
}
}