Search in sources :

Example 21 with UserId

use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.

the class EntitySearcher method invoke.

/**
 * Invokes the entity searcher to perform a search.
 */
public void invoke() {
    Stopwatch stopwatch = Stopwatch.createStarted();
    matchCounter.reset();
    searchCounter.reset();
    results.clear();
    tagsByLabel.clear();
    tagsManager.getProjectTags().forEach(tag -> tagsByLabel.put(tag.getLabel(), tag));
    tagsByEntity.clear();
    tagsByEntity.putAll(tagsManager.getTags(projectId));
    Pattern searchPattern = compileSearchPattern(searchWords);
    entityStreamSupplier.get().filter(this::isRequiredEntityType).peek(this::incrementSearchCounter).map(this::performMatch).filter(Objects::nonNull).peek(this::incrementMatchCounter).sorted().skip(skip).limit(limit).map(m -> toSearchResult(searchPattern, m)).forEach(results::add);
    logger.info(BROWSING, "{} {} Performed entity search for \"{}\".  Found {} matches in {} entities in {} ms.", projectId, userId, searchString, matchCounter.getCounter(), searchCounter.getCounter(), stopwatch.elapsed(TimeUnit.MILLISECONDS));
}
Also used : HasGetRendering(edu.stanford.bmir.protege.web.server.mansyntax.render.HasGetRendering) StringUtils(org.apache.commons.lang.StringUtils) java.util(java.util) Stopwatch(com.google.common.base.Stopwatch) LoggerFactory(org.slf4j.LoggerFactory) Multimap(com.google.common.collect.Multimap) Supplier(java.util.function.Supplier) CASE_INSENSITIVE(java.util.regex.Pattern.CASE_INSENSITIVE) UserId(edu.stanford.bmir.protege.web.shared.user.UserId) Obo2OWLConstants(org.obolibrary.obo2owl.Obo2OWLConstants) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) HashMultimap(com.google.common.collect.HashMultimap) Matcher(java.util.regex.Matcher) IRI(org.semanticweb.owlapi.model.IRI) SearchType(edu.stanford.bmir.protege.web.shared.search.SearchType) Optional(com.google.common.base.Optional) EntityType(org.semanticweb.owlapi.model.EntityType) Nonnull(javax.annotation.Nonnull) SearchMatch(org.eclipse.jdt.core.search.SearchMatch) Nullable(javax.annotation.Nullable) SearchField.displayName(edu.stanford.bmir.protege.web.shared.search.SearchField.displayName) Logger(org.slf4j.Logger) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Tag(edu.stanford.bmir.protege.web.shared.tag.Tag) OWLEntityData(edu.stanford.bmir.protege.web.shared.entity.OWLEntityData) TimeUnit(java.util.concurrent.TimeUnit) Stream(java.util.stream.Stream) EntitySearchResult(edu.stanford.bmir.protege.web.shared.search.EntitySearchResult) TagsManager(edu.stanford.bmir.protege.web.server.tag.TagsManager) OWLEntity(org.semanticweb.owlapi.model.OWLEntity) ProjectId(edu.stanford.bmir.protege.web.shared.project.ProjectId) Pattern(java.util.regex.Pattern) BROWSING(edu.stanford.bmir.protege.web.server.logging.Markers.BROWSING) Pattern(java.util.regex.Pattern) Stopwatch(com.google.common.base.Stopwatch)

Example 22 with UserId

use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.

the class SetEntityWatchesActionHandler method execute.

@Nonnull
@Override
public SetEntityWatchesResult execute(@Nonnull SetEntityWatchesAction action, @Nonnull ExecutionContext executionContext) {
    EventTag startTag = eventManager.getCurrentTag();
    UserId userId = action.getUserId();
    Set<Watch> watches = watchManager.getDirectWatches(action.getEntity(), userId);
    for (Watch watch : watches) {
        watchManager.removeWatch(watch);
    }
    for (Watch watch : action.getWatches()) {
        watchManager.addWatch(watch);
    }
    return new SetEntityWatchesResult(eventManager.getEventsFromTag(startTag));
}
Also used : UserId(edu.stanford.bmir.protege.web.shared.user.UserId) SetEntityWatchesResult(edu.stanford.bmir.protege.web.shared.watches.SetEntityWatchesResult) Watch(edu.stanford.bmir.protege.web.shared.watches.Watch) EventTag(edu.stanford.bmir.protege.web.shared.event.EventTag) Nonnull(javax.annotation.Nonnull)

Example 23 with UserId

use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.

the class WatchTriggeredHandlerImpl method handleWatchTriggered.

@Override
public void handleWatchTriggered(@Nonnull Set<UserId> usersToNotify, @Nonnull OWLEntity modifiedEntity, @Nonnull UserId byUser) {
    List<String> emailAddresses = usersToNotify.stream().filter(u -> accessManager.hasPermission(forUser(u), forProject(projectId), VIEW_PROJECT)).map(userDetailsManager::getEmail).filter(Optional::isPresent).map(Optional::get).distinct().collect(toList());
    OWLEntityData modifiedEntityData = renderingManager.getRendering(modifiedEntity);
    Map<String, Object> templateObjects = TemplateObjectsBuilder.builder().withUserId(byUser).withEntity(modifiedEntityData).withProjectDetails(projectDetailsManager.getProjectDetails(projectId)).withApplicationName(applicationNameSupplier.get()).withProjectUrl(placeUrl.getProjectUrl(projectId)).build();
    String displayName = projectDetailsManager.getProjectDetails(projectId).getDisplayName();
    String emailSubject = String.format("[%s] Changes made to %s in %s by %s", displayName, modifiedEntityData.getBrowserText(), displayName, userDetailsManager.getUserDetails(byUser).map(d -> "by " + d.getDisplayName()).orElse(""));
    String emailBody = templateEngine.populateTemplate(watchTemplate.getContents(), templateObjects);
    logger.info("{} Watch triggered by {} on {}.  Notifying {}", projectId, byUser, modifiedEntity, usersToNotify);
    sendMail.sendMail(emailAddresses, emailSubject, emailBody, MessageHeader.inReplyTo(projectId.getId()), MessageHeader.references(projectId.getId()));
}
Also used : SendMail(edu.stanford.bmir.protege.web.server.mail.SendMail) LoggerFactory(org.slf4j.LoggerFactory) Inject(javax.inject.Inject) RenderingManager(edu.stanford.bmir.protege.web.server.renderer.RenderingManager) UserId(edu.stanford.bmir.protege.web.shared.user.UserId) AccessManager(edu.stanford.bmir.protege.web.server.access.AccessManager) ProjectDetailsManager(edu.stanford.bmir.protege.web.server.project.ProjectDetailsManager) TemplateObjectsBuilder(edu.stanford.bmir.protege.web.server.templates.TemplateObjectsBuilder) Map(java.util.Map) Nonnull(javax.annotation.Nonnull) FileContents(edu.stanford.bmir.protege.web.server.filemanager.FileContents) UserDetailsManager(edu.stanford.bmir.protege.web.server.user.UserDetailsManager) Logger(org.slf4j.Logger) MessageHeader(edu.stanford.bmir.protege.web.server.mail.MessageHeader) PlaceUrl(edu.stanford.bmir.protege.web.server.app.PlaceUrl) Subject.forUser(edu.stanford.bmir.protege.web.server.access.Subject.forUser) VIEW_PROJECT(edu.stanford.bmir.protege.web.shared.access.BuiltInAction.VIEW_PROJECT) Set(java.util.Set) OWLEntityData(edu.stanford.bmir.protege.web.shared.entity.OWLEntityData) ApplicationNameSupplier(edu.stanford.bmir.protege.web.server.app.ApplicationNameSupplier) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) OWLEntity(org.semanticweb.owlapi.model.OWLEntity) Optional(java.util.Optional) ProjectId(edu.stanford.bmir.protege.web.shared.project.ProjectId) ProjectResource.forProject(edu.stanford.bmir.protege.web.server.access.ProjectResource.forProject) TemplateEngine(edu.stanford.bmir.protege.web.server.templates.TemplateEngine) Optional(java.util.Optional) OWLEntityData(edu.stanford.bmir.protege.web.shared.entity.OWLEntityData)

Example 24 with UserId

use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.

the class LogOutUserActionHandler method execute.

@Nonnull
@Override
public LogOutUserResult execute(@Nonnull LogOutUserAction action, @Nonnull ExecutionContext executionContext) {
    WebProtegeSession session = executionContext.getSession();
    UserId userId = session.getUserInSession();
    session.clearUserInSession();
    if (!userId.isGuest()) {
        userActivityManager.setLastLogout(userId, System.currentTimeMillis());
    }
    return new LogOutUserResult(userInSessionFactory.getUserInSession(UserId.getGuest()));
}
Also used : UserId(edu.stanford.bmir.protege.web.shared.user.UserId) WebProtegeSession(edu.stanford.bmir.protege.web.server.session.WebProtegeSession) LogOutUserResult(edu.stanford.bmir.protege.web.shared.user.LogOutUserResult) Nonnull(javax.annotation.Nonnull)

Example 25 with UserId

use of edu.stanford.bmir.protege.web.shared.user.UserId in project webprotege by protegeproject.

the class IssueBuilder_TestCase method shouldBuildIssueWithAssignedEvent.

@Test
public void shouldBuildIssueWithAssignedEvent() {
    UserId assignee = mock(UserId.class);
    builder.assignTo(assignee, userId, TIMESTAMP);
    Issue issue = builder.build(mentionParser);
    assertThat(issue.getEvents(), hasItem(new IssueAssigned(userId, TIMESTAMP, assignee)));
}
Also used : UserId(edu.stanford.bmir.protege.web.shared.user.UserId) Test(org.junit.Test)

Aggregations

UserId (edu.stanford.bmir.protege.web.shared.user.UserId)64 Nonnull (javax.annotation.Nonnull)20 Test (org.junit.Test)14 ProjectId (edu.stanford.bmir.protege.web.shared.project.ProjectId)13 Inject (javax.inject.Inject)6 OWLEntity (org.semanticweb.owlapi.model.OWLEntity)6 List (java.util.List)5 ImmutableList (com.google.common.collect.ImmutableList)4 AccessManager (edu.stanford.bmir.protege.web.server.access.AccessManager)4 WebProtegeSession (edu.stanford.bmir.protege.web.server.session.WebProtegeSession)4 WebProtegeSessionImpl (edu.stanford.bmir.protege.web.server.session.WebProtegeSessionImpl)4 OWLEntityData (edu.stanford.bmir.protege.web.shared.entity.OWLEntityData)4 EventTag (edu.stanford.bmir.protege.web.shared.event.EventTag)4 ArrayList (java.util.ArrayList)4 DispatchServiceCallback (edu.stanford.bmir.protege.web.client.dispatch.DispatchServiceCallback)3 Subject.forUser (edu.stanford.bmir.protege.web.server.access.Subject.forUser)3 Optional (java.util.Optional)3 Stopwatch (com.google.common.base.Stopwatch)2 ImmutableSet (com.google.common.collect.ImmutableSet)2 ProjectResource (edu.stanford.bmir.protege.web.server.access.ProjectResource)2