package fi.otavanopisto.muikku.session; import java.util.Date; import java.util.List; import java.util.Locale; import fi.otavanopisto.muikku.model.users.UserEntity; import fi.otavanopisto.muikku.model.util.ResourceEntity; import fi.otavanopisto.muikku.model.workspace.WorkspaceEntity; import fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier; import fi.otavanopisto.security.ContextReference; public interface SessionController { /** * Returns current locale * * @return locale */ public Locale getLocale(); /** * Sets locale * * @param locale */ public void setLocale(Locale locale); /** * Returns whether user is logged in * * @return whether user is logged in */ public boolean isLoggedIn(); /** * Returns whether logged user is a super user * @return whether logged user is a super user */ public boolean isSuperuser(); /** * Logs user out */ public void logout(); /** * Logs user in * * @param dataSource user data source * @param identifier user identifier */ public void login(String dataSource, String identifier); boolean hasPermission(String permission, ContextReference contextReference); /** * Returns whether logged user has specified environment permission. * @param permission requested permission * @return whether logged user has specified environment permission. */ public boolean hasEnvironmentPermission(String permission); /** * Returns whether logged user has specified course permission. * @param permission requested permission * @return whether logged user has specified course permission. */ @Deprecated public boolean hasCoursePermission(String permission, WorkspaceEntity course); /** * Returns whether logged user has specified workspace permission. * @param permission requested permission * @return whether logged user has specified workspace permission. */ public boolean hasWorkspacePermission(String permission, WorkspaceEntity workspaceEntity); /** * Returns whether logged user has specified resource permission. * @param permission requested permission * @return whether logged user has specified course permission. */ public boolean hasResourcePermission(String permission, ResourceEntity resource); /** * Filters list of Resources by permission * @param list list to filter * @param permissions permission for resource * @return filtered list */ public <T> List<T> filterResources(List<T> list, String permissions); public void addOAuthAccessToken(String strategy, Date expiresAt, String accessToken, String refreshToken); public AccessToken getOAuthAccessToken(String strategy); public String getLoggedUserIdentifier(); public String getLoggedUserSchoolDataSource(); public SchoolDataIdentifier getLoggedUser(); public UserEntity getLoggedUserEntity(); }