package org.molgenis.security.permission;
import org.molgenis.auth.GroupAuthority;
import org.molgenis.auth.Group;
import org.molgenis.auth.User;
import org.molgenis.auth.UserAuthority;
import org.molgenis.framework.ui.MolgenisPlugin;
import java.util.List;
/**
* Manage user and group permissions for plugins and entity classes
*/
public interface PermissionManagerService
{
List<User> getUsers();
List<Group> getGroups();
List<MolgenisPlugin> getPlugins();
List<String> getEntityClassIds();
Permissions getGroupPluginPermissions(String groupId);
Permissions getGroupEntityClassPermissions(String groupId);
Permissions getUserPluginPermissions(String userId);
Permissions getUserEntityClassPermissions(String userId);
void replaceGroupPluginPermissions(List<GroupAuthority> pluginAuthorities, String groupId);
void replaceGroupEntityClassPermissions(List<GroupAuthority> entityAuthorities, String groupId);
void replaceUserPluginPermissions(List<UserAuthority> pluginAuthorities, String userId);
void replaceUserEntityClassPermissions(List<UserAuthority> entityAuthorities, String userId);
}