001
014
015 package com.liferay.portal.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.model.Team;
019 import com.liferay.portal.security.auth.PrincipalException;
020 import com.liferay.portal.security.permission.ActionKeys;
021 import com.liferay.portal.security.permission.PermissionChecker;
022 import com.liferay.portal.service.TeamLocalServiceUtil;
023
024
027 public class TeamPermissionImpl implements TeamPermission {
028
029 @Override
030 public void check(
031 PermissionChecker permissionChecker, long teamId, String actionId)
032 throws PortalException {
033
034 if (!contains(permissionChecker, teamId, actionId)) {
035 throw new PrincipalException();
036 }
037 }
038
039 @Override
040 public void check(
041 PermissionChecker permissionChecker, Team team, String actionId)
042 throws PortalException {
043
044 if (!contains(permissionChecker, team, actionId)) {
045 throw new PrincipalException();
046 }
047 }
048
049 @Override
050 public boolean contains(
051 PermissionChecker permissionChecker, long teamId, String actionId)
052 throws PortalException {
053
054 Team team = TeamLocalServiceUtil.getTeam(teamId);
055
056 return contains(permissionChecker, team, actionId);
057 }
058
059 @Override
060 public boolean contains(
061 PermissionChecker permissionChecker, Team team, String actionId)
062 throws PortalException {
063
064 if (GroupPermissionUtil.contains(
065 permissionChecker, team.getGroupId(),
066 ActionKeys.MANAGE_TEAMS)) {
067
068 return true;
069 }
070
071 if (permissionChecker.hasOwnerPermission(
072 team.getCompanyId(), Team.class.getName(), team.getTeamId(),
073 team.getUserId(), actionId)) {
074
075 return true;
076 }
077
078 return permissionChecker.hasPermission(
079 team.getGroupId(), Team.class.getName(), team.getTeamId(),
080 actionId);
081 }
082
083 }