package com.denimgroup.threadfix.service;
import java.util.List;
import java.util.Set;
import org.springframework.ui.Model;
import org.springframework.web.servlet.ModelAndView;
import com.denimgroup.threadfix.data.entities.Application;
import com.denimgroup.threadfix.data.entities.Organization;
import com.denimgroup.threadfix.data.entities.Permission;
import com.denimgroup.threadfix.data.entities.RemoteProviderType;
import com.denimgroup.threadfix.data.entities.Waf;
public interface PermissionService {
/**
*
* @param orgId
* @return
*/
boolean isAuthorized(Permission permission, Integer orgId, Integer appId);
/**
*
* @param model
* @param orgId
* @param appId
* @param permissions
*/
void addPermissions(Model model, Integer orgId, Integer appId, Permission... permissions);
/**
*
* @param model
* @param orgId
* @param appId
* @param permissions
*/
void addPermissions(ModelAndView modelAndView, Integer orgId, Integer appId, Permission... permissions);
/**
*
* @param waf
* @return
*/
boolean canSeeRules(Waf waf);
/**
*
* @return
*/
Set<Integer> getAuthenticatedAppIds();
/**
* This method returns null if the user has access to all teams.
* TODO revisit this section
* @return
*/
Set<Integer> getAuthenticatedTeamIds();
/**
*
* @param organization
* @return
*/
List<Application> filterApps(Organization organization);
/**
*
* @param providers
*/
void filterApps(List<RemoteProviderType> providers);
}