use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.
the class PermissionManager method firePermissionsChanged.
/**
* Fires a {@link PermissionsChangedEvent} for the
* current project on the event bus.
*/
public void firePermissionsChanged() {
GWT.log("[PermissionManager] Firing permissions changed");
permittedActionCache.clear();
final UserId userId = loggedInUserProvider.getCurrentUserId();
final Optional<ProjectId> projectId = activeProjectManager.getActiveProjectId();
if (!projectId.isPresent()) {
return;
}
final ProjectId theProjectId = projectId.get();
dispatchServiceManager.execute(new GetProjectPermissionsAction(projectId.get(), userId), result -> {
UserIdProjectIdKey key = new UserIdProjectIdKey(userId, theProjectId);
permittedActionCache.putAll(key, result.getAllowedActions());
GWT.log("[PermissionManager] Firing permissions changed for project: " + projectId);
eventBus.fireEventFromSource(new PermissionsChangedEvent(theProjectId).asGWTEvent(), theProjectId);
});
}
use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.
the class PerspectivePresenter method retrieveAndSetPerspective.
private void retrieveAndSetPerspective(final PerspectiveId perspectiveId) {
GWT.log("[PerspectivePresenter] Retrive and set perspective for " + perspectiveId);
Perspective p = perspectiveCache.get(perspectiveId);
if (p != null) {
GWT.log("[PerspectivePresenter] Using cached perspective for " + perspectiveId);
perspectiveView.setWidget(p);
return;
}
perspectiveView.setWidget(new BusyViewImpl());
GWT.log("[PerspectivePresenter] Loading perspective for project " + projectId);
UserId userId = loggedInUserProvider.getCurrentUserId();
dispatchServiceManager.execute(new GetPerspectiveLayoutAction(projectId, userId, perspectiveId), result -> {
GWT.log("[PerspectivePresenter] Retrieved layout: " + result.getPerspectiveLayout());
installPerspective(perspectiveId, result.getPerspectiveLayout());
});
}
use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.
the class GetAvailableProjectsHandler method execute.
@Nonnull
@Override
public GetAvailableProjectsResult execute(@Nonnull GetAvailableProjectsAction action, @Nonnull ExecutionContext executionContext) {
UserId userId = executionContext.getUserId();
Optional<UserActivityRecord> userActivityRecord = userActivityManager.getUserActivityRecord(executionContext.getUserId());
Map<ProjectId, Long> lastOpenedMap = new HashMap<>();
userActivityRecord.ifPresent(record -> record.getRecentProjects().forEach(recent -> lastOpenedMap.put(recent.getProjectId(), recent.getTimestamp())));
List<AvailableProject> availableProjects = projectPermissionsManager.getReadableProjects(userId).stream().map(details -> {
Subject user = forUser(userId);
ProjectResource projectResource = new ProjectResource(details.getProjectId());
boolean downloadable = accessManager.hasPermission(user, projectResource, DOWNLOAD_PROJECT);
boolean trashable = details.getOwner().equals(userId) || accessManager.hasPermission(user, projectResource, MOVE_ANY_PROJECT_TO_TRASH);
long lastOpened = lastOpenedMap.getOrDefault(details.getProjectId(), 0L);
return new AvailableProject(details, downloadable, trashable, lastOpened);
}).collect(toList());
return new GetAvailableProjectsResult(availableProjects);
}
use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.
the class CreateNewProjectActionHandler method execute.
@Nonnull
@Override
public CreateNewProjectResult execute(@Nonnull CreateNewProjectAction action, @Nonnull ExecutionContext executionContext) {
try {
UserId userId = executionContext.getUserId();
if (!accessManager.hasPermission(forUser(userId), ApplicationResource.get(), CREATE_EMPTY_PROJECT)) {
throw new PermissionDeniedException("You do not have permission to create new projects", userInSessionFactory.getUserInSession(userId));
}
NewProjectSettings newProjectSettings = action.getNewProjectSettings();
if (newProjectSettings.hasSourceDocument()) {
if (!accessManager.hasPermission(forUser(userId), ApplicationResource.get(), UPLOAD_PROJECT)) {
throw new PermissionDeniedException("You do not have permission to upload projects", userInSessionFactory.getUserInSession(userId));
}
}
ProjectId projectId = pm.createNewProject(newProjectSettings);
if (!projectDetailsManager.isExistingProject(projectId)) {
projectDetailsManager.registerProject(projectId, newProjectSettings);
applyDefaultPermissions(projectId, userId);
}
return new CreateNewProjectResult(projectDetailsManager.getProjectDetails(projectId));
} catch (OWLOntologyCreationException | OWLOntologyStorageException | IOException e) {
throw new RuntimeException(e);
}
}
use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.
the class GetPerspectiveLayoutActionHandler method execute.
@Nonnull
@Override
public GetPerspectiveLayoutResult execute(@Nonnull GetPerspectiveLayoutAction action, @Nonnull ExecutionContext executionContext) {
PerspectiveId perspectiveId = action.getPerspectiveId();
ProjectId projectId = action.getProjectId();
UserId userId = action.getUserId();
PerspectiveLayout perspectiveLayout = perspectiveLayoutStore.getPerspectiveLayout(projectId, userId, perspectiveId);
return new GetPerspectiveLayoutResult(perspectiveLayout);
}
Aggregations