2016-05-20 7 views
0

Alfresco 4.2を使用していて、ユーザーのお気に入りを見つけようとしていますが、私が使用しているWebスクリプトが現在のユーザーのみの結果を返します。私が調査しているユーザーが存在する、私は確信しています。Alfrescoでユーザーのお気に入りを見つけよう

どうすればよいですか?私は間違って何をしていますか?ここで

作品webscript呼び出しです:ここで

domain.com/alfresco/api/-default-/public/alfresco/versions/1/people/-me-/favorites 

は動作しないものである:

domain.com/alfresco/api/-default-/public/alfresco/versions/1/people/[email protected]/favorites 

と次の値を返します。

{"error":{"statusCode":404,"briefSummary":"04203980 The entity with id: [email protected] was not found","stackTrace":"[org.alfresco.rest.api.impl.PeopleImpl.validatePerson(PeopleImpl.java:155) 

ところで、すべて/favoritesの代わりに/favorite-sitesが動作します。

答えて

2

404は誤解を招くことがあります。存在しないユーザーとURLを使用してみてください。これでも404が返されますが、エラーは少し異なります。非既存のユーザーは

The entity with id: personId is null. was not found 

を与えながら、別のユーザーのお気に入りだしようと出ユーザーへのアクセス

The entity with id: existinguser was not found 

を与えるHTTP応答ステータスは403でなければなりません。

クラスorg.alfresco.rest.api.impl.PeopleImplは、呼び出し元のユーザーがお気に入りが要求されたユーザーと同じであることをチェックするため、別のユーザーのお気に入りにアクセスすることはできません。 Alfresco 5.0dでは、関連コードは

public String validatePerson(String personId, boolean validateIsCurrentUser) 
{ 
    if(personId.equalsIgnoreCase(DEFAULT_USER)) 
    { 
     personId = AuthenticationUtil.getFullyAuthenticatedUser(); 
    } 

    personId = personService.getUserIdentifier(personId); 
    if(personId == null) 
    { 
     // "User " + personId + " does not exist" 
     throw new EntityNotFoundException("personId is null."); 
    } 

    if(validateIsCurrentUser) 
    { 
     String currentUserId = AuthenticationUtil.getFullyAuthenticatedUser(); 
     if(!currentUserId.equalsIgnoreCase(personId)) 
     { 
      throw new EntityNotFoundException(personId); 
     } 
    } 

    return personId; 
} 
+0

です。他のユーザーのお気に入りのサイトやサイトを検索することはできますが、そのお気に入りを探すことはできません。私はこの背後にある理由を知りたい。多分お気に入りは非常に個人的です:)。 – newzad

+0

Alfrescoのエンジニアに尋ねてください:) –

関連する問題