本文整理汇总了Java中org.alfresco.repo.tenant.TenantUtil.runAsTenant方法的典型用法代码示例。如果您正苦于以下问题:Java TenantUtil.runAsTenant方法的具体用法?Java TenantUtil.runAsTenant怎么用?Java TenantUtil.runAsTenant使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.alfresco.repo.tenant.TenantUtil
的用法示例。
在下文中一共展示了TenantUtil.runAsTenant方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: canRead
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
@Override
public boolean canRead(String sharedId)
{
Pair<String, NodeRef> pair = getTenantNodeRefFromSharedId(sharedId);
final String tenantDomain = pair.getFirst();
final NodeRef nodeRef = pair.getSecond();
return TenantUtil.runAsTenant(new TenantRunAsWork<Boolean>()
{
public Boolean doWork() throws Exception
{
try
{
checkQuickShareNode(nodeRef);
return permissionService.hasPermission(nodeRef, PermissionService.READ) == AccessStatus.ALLOWED;
}
catch (AccessDeniedException ex)
{
return false;
}
}
}, tenantDomain);
}
示例2: personExists
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public boolean personExists(final String user)
{
boolean exists = false;
String domain = tenantService.getPrimaryDomain(user); // get primary tenant
if (domain != null)
{
exists = TenantUtil.runAsTenant(new TenantRunAsWork<Boolean>()
{
public Boolean doWork() throws Exception
{
return personService.personExists(user);
}
}, domain);
}
else
{
exists = personService.personExists(user);
}
return exists;
}
示例3: getPerson
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public NodeRef getPerson(final String user)
{
NodeRef person = null;
String domain = tenantService.getPrimaryDomain(user); // get primary tenant
if (domain != null)
{
person = TenantUtil.runAsTenant(new TenantRunAsWork<NodeRef>()
{
public NodeRef doWork() throws Exception
{
return personService.getPerson(user);
}
}, domain);
}
else
{
person = personService.getPerson(user);
}
return person;
}
示例4: getPersonEmail
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public String getPersonEmail(final String user)
{
final NodeRef person = getPerson(user);
String email = null;
String domain = tenantService.getPrimaryDomain(user); // get primary tenant
if (domain != null)
{
email = TenantUtil.runAsTenant(new TenantRunAsWork<String>()
{
public String doWork() throws Exception
{
return (String) nodeService.getProperty(person, ContentModel.PROP_EMAIL);
}
}, domain);
}
else
{
email = (String) nodeService.getProperty(person, ContentModel.PROP_EMAIL);
}
return email;
}
示例5: createDocuments
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public List<Document> createDocuments(final String stringNodeRef, final FTSStatus ftsStatus,
final boolean indexAllProperties, final boolean includeDirectoryDocuments, final boolean cascade,
final Set<Pair<Boolean, Path>> pathsToRegenerate,
final Map<NodeRef, List<ChildAssociationRef>> childAssociationsSinceFlush, final IndexReader deltaReader,
final IndexReader mainReader)
{
if (tenantService.isEnabled() && ((AuthenticationUtil.getRunAsUser() == null) || (AuthenticationUtil.isRunAsUserTheSystemUser())))
{
// ETHREEOH-2014 - dictionary access should be in context of tenant (eg. full reindex with MT dynamic
// models)
return TenantUtil.runAsSystemTenant(new TenantRunAsWork<List<Document>>()
{
public List<Document> doWork()
{
return createDocumentsImpl(stringNodeRef, ftsStatus, indexAllProperties, includeDirectoryDocuments,
cascade, pathsToRegenerate, childAssociationsSinceFlush, deltaReader, mainReader);
}
}, tenantService.getDomain(new NodeRef(stringNodeRef).getStoreRef().getIdentifier()));
}
else if (tenantService.isEnabled() && !tenantService.getDomain(new NodeRef(stringNodeRef).getStoreRef().getIdentifier()).equals(TenantService.DEFAULT_DOMAIN))
{
return TenantUtil.runAsTenant(new TenantRunAsWork<List<Document>>()
{
public List<Document> doWork()
{
return createDocumentsImpl(stringNodeRef, ftsStatus, indexAllProperties, includeDirectoryDocuments,
cascade, pathsToRegenerate, childAssociationsSinceFlush, deltaReader, mainReader);
}
}, tenantService.getDomain(new NodeRef(stringNodeRef).getStoreRef().getIdentifier()));
}
else
{
return createDocumentsImpl(stringNodeRef, ftsStatus, indexAllProperties, includeDirectoryDocuments,
cascade, pathsToRegenerate, childAssociationsSinceFlush, deltaReader, mainReader);
}
}
示例6: testSendEmailByExternalUser
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
/**
* ACE-2564
*/
@Test
public void testSendEmailByExternalUser() throws IOException, MessagingException
{
final Serializable recipients = (Serializable) Arrays.asList(BRITISH_USER.getUsername());
final String subject = "";
final String template = "alfresco/templates/mail/test.txt.ftl";
AuthenticationUtil.pushAuthentication();
AuthenticationUtil.setFullyAuthenticatedUser(EXTERNAL_USER.getUsername());
MimeMessage message = null;
try
{
// these persons should be without emails
// testing for GROUP_EVERYONE
final String tenantId = getUsersHomeTenant(BRITISH_USER.getUsername());
// USER_6 not exist for USER_1, but he will be added to recipients
message = TenantUtil.runAsTenant(new TenantRunAsWork<MimeMessage>()
{
@Override
public MimeMessage doWork() throws Exception
{
return sendMessage(null, recipients, subject, template);
}
}, tenantId);
Assert.assertNotNull(message);
Assert.assertEquals("Hello 01-Jan-1970", (String) message.getContent());
}
finally
{
AuthenticationUtil.popAuthentication();
}
}
示例7: getSiteNetwork
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public String getSiteNetwork(final String siteShortName, String tenantDomain)
{
return TenantUtil.runAsTenant(new TenantRunAsWork<String>()
{
@Override
public String doWork() throws Exception
{
return tenantService.getName(siteShortName);
}
}, tenantDomain);
}
示例8: addUserDescription
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public NodeRef addUserDescription(final String personId, final String personDescription)
{
NodeRef personRef = TenantUtil.runAsTenant(new TenantRunAsWork<NodeRef>()
{
public NodeRef doWork() throws Exception
{
return RepoService.this.addUserDescription(personId, TestNetwork.this, personDescription);
}
}, getId());
return personRef;
}
示例9: createUser
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public TestPerson createUser(final PersonInfo personInfo)
{
final String username = publicApiContext.createUserName(personInfo.getUsername(), getId());
TestPerson testPerson = TenantUtil.runAsTenant(new TenantRunAsWork<TestPerson>()
{
public TestPerson doWork() throws Exception
{
TestPerson person = RepoService.this.createUser(personInfo, username, TestNetwork.this);
return person;
}
}, getId());
addPerson(testPerson);
return testPerson;
}
示例10: getSite
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
public TestSite getSite(final String siteShortName)
{
TestSite site = TenantUtil.runAsTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInfo siteInfo = siteService.getSite(siteShortName);
return new TestSite(TestNetwork.this, siteInfo);
}
}, getId());
return site;
}
示例11: getContent
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
@Override
public ContentData getContent(final ImportPackageHandler handler, final ContentData sourceContentData)
{
ContentData cachedContentData = null;
final String sourceContentUrl = sourceContentData.getContentUrl();
contentUrlsLock.readLock().lock();
try
{
cachedContentData = contentUrls.get(sourceContentUrl);
if (cachedContentData == null)
{
contentUrlsLock.readLock().unlock();
contentUrlsLock.writeLock().lock();
try
{
cachedContentData = contentUrls.get(sourceContentUrl);
if (cachedContentData == null)
{
cachedContentData = TenantUtil.runAsTenant(new TenantRunAsWork<ContentData>()
{
@Override
public ContentData doWork() throws Exception
{
InputStream contentStream = handler.importStream(sourceContentUrl);
ContentWriter writer = contentService.getWriter(null, null, false);
writer.setEncoding(sourceContentData.getEncoding());
writer.setMimetype(sourceContentData.getMimetype());
writer.putContent(contentStream);
return writer.getContentData();
}
}, TenantService.DEFAULT_DOMAIN);
contentUrls.put(sourceContentUrl, cachedContentData);
}
}
finally
{
contentUrlsLock.readLock().lock();
contentUrlsLock.writeLock().unlock();
}
}
}
finally
{
contentUrlsLock.readLock().unlock();
}
if (logger.isDebugEnabled())
logger.debug("Mapped contentUrl " + sourceContentUrl + " to " + cachedContentData);
return cachedContentData;
}
示例12: executeScript
import org.alfresco.repo.tenant.TenantUtil; //导入方法依赖的package包/类
@Override
public void executeScript(final WebScriptRequest scriptReq, final WebScriptResponse scriptRes, final Authenticator auth)
throws IOException
{
String tenant = ((PublicApiTenantWebScriptServletRequest)scriptReq).getTenant();
if (tenant != null)
{
// handle special tenant keys
// -super- => run as system tenant
// -default- => run as user's default tenant
String user = null;
if (tenant.equalsIgnoreCase(TenantUtil.DEFAULT_TENANT))
{
// switch from default to super tenant, if not authenticated
user = AuthenticationUtil.getFullyAuthenticatedUser();
if (user == null)
{
tenant = TenantUtil.SYSTEM_TENANT;
}
}
// run as super tenant
if (tenant.equalsIgnoreCase(TenantUtil.SYSTEM_TENANT))
{
if (logger.isDebugEnabled())
{
logger.debug("executeScript (-system-): ["+user+","+tenant+"] "+scriptReq.getServicePath());
}
TenantUtil.runAsTenant(new TenantRunAsWork<Object>()
{
public Object doWork() throws Exception
{
PublicApiRepositoryContainer.super.executeScript(scriptReq, scriptRes, auth);
return null;
}
}, TenantService.DEFAULT_DOMAIN);
}
else
{
if (tenant.equalsIgnoreCase(TenantUtil.DEFAULT_TENANT))
{
tenant = tenantAdminService.getUserDomain(user);
}
// run as explicit tenant
TenantUtil.runAsTenant(new TenantRunAsWork<Object>()
{
public Object doWork() throws Exception
{
PublicApiRepositoryContainer.super.executeScript(scriptReq, scriptRes, auth);
return null;
}
}, tenant);
}
}
}