Class ThreadDAO
java.lang.Object
org.apache.avalon.framework.logger.AbstractLogEnabled
org.ametys.plugins.explorer.threads.actions.ThreadDAO
- All Implemented Interfaces:
Component
,LogEnabled
,Serviceable
- Direct Known Subclasses:
WorkspaceThreadDAO
Thread DAO
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Right to add a poststatic final String
Right to delete a poststatic final String
Right to edit a poststatic final String
Right to add a threadstatic final String
Right to delete a threadstatic final String
Right to edit a threadprotected CurrentUserProvider
The current user provider.protected ExplorerResourcesDAO
Explorer resources DAOprotected ServiceManager
Avalon service managerprotected ObservationManager
Observer manager.protected AmetysObjectResolver
Ametys resolverprotected RightManager
The rights managerprotected UserHelper
The user helperprotected UserManager
User managerstatic final String
Avalon Role -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected String
_formatAuthor
(UserIdentity userIdentity) Return the author of a thread in a formatted version ready to be displayed to the end user._getPostDataFullInfo
(JCRPost post) Retrieves the post additional info (rights, parent id, etc...)_getUserRights
(ExplorerNode node) Get the user rights on the resource collectionAdd a postAdd a threadprotected boolean
Determines if the post can be deleted by current userprotected boolean
Determines if the post can be edited by current userconvertPostToString
(JCRPost post) Convert the content of a post to a string (removing HTML tags)deletePost
(String id) Delete a postdeleteThread
(String id) Delete a threadEdit a posteditThread
(String id, String inputName, String inputDescription) Edit a threadprotected String
getPostContent
(JCRPost post) Get the content of a post as a Stringprotected String
Get the content of a post to edit as a StringgetPostData
(JCRPost post, boolean fullInfo, boolean isEdition) Get post infogetPostDataById
(String id, boolean fullInfo, boolean isEdition) Get post infogetPostsData
(List<JCRPost> posts, boolean fullInfo, boolean isEdition) Get post infogetPostsDataByIds
(List<String> ids, boolean fullInfo, boolean isEdition) Get post infogetThreadData
(String id, boolean includeChildren) Get thread infogetThreadData
(JCRThread thread, boolean includeChildren) Get thread infomarkAsRead
(String id) Mark a thread as read by the current userrenameThread
(String id, String name) Rename a threadvoid
service
(ServiceManager manager) protected void
setPostContent
(JCRPost post, String content) Update the content of a postMethods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
Field Details
-
ROLE
Avalon Role -
__RIGHTS_THREAD_ADD
Right to add a thread- See Also:
-
__RIGHTS_THREAD_EDIT
Right to edit a thread- See Also:
-
__RIGHTS_THREAD_DELETE
Right to delete a thread- See Also:
-
__RIGHTS_POST_ADD
Right to add a post- See Also:
-
__RIGHTS_POST_EDIT
Right to edit a post- See Also:
-
__RIGHTS_POST_DELETE
Right to delete a post- See Also:
-
_explorerResourcesDAO
Explorer resources DAO -
_resolver
Ametys resolver -
_observationManager
Observer manager. -
_currentUserProvider
The current user provider. -
_userManager
User manager -
_rightManager
The rights manager -
_userHelper
The user helper -
_manager
Avalon service manager
-
-
Constructor Details
-
ThreadDAO
public ThreadDAO()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
getThreadData
Get thread info- Parameters:
id
- The thread idincludeChildren
- True to also include children- Returns:
- the thread data in a map
-
getThreadData
Get thread info- Parameters:
thread
- The threadincludeChildren
- True to also include children- Returns:
- the thread data in a map
-
_formatAuthor
Return the author of a thread in a formatted version ready to be displayed to the end user.- Parameters:
userIdentity
- The author- Returns:
- The formatted string
-
getPostsDataByIds
public List<Map<String,Object>> getPostsDataByIds(List<String> ids, boolean fullInfo, boolean isEdition) Get post info- Parameters:
ids
- The post idsfullInfo
- true to include full info (rights, parent id, etc...)isEdition
- true to get the content in edit mode- Returns:
- the list of post data
-
getPostsData
public List<Map<String,Object>> getPostsData(List<JCRPost> posts, boolean fullInfo, boolean isEdition) Get post info- Parameters:
posts
- The postsfullInfo
- true to include full info (rights, parent id, etc...)isEdition
- true to get the content in edit mode- Returns:
- the list of post data
-
getPostDataById
Get post info- Parameters:
id
- The post idfullInfo
- true to include full info (rights, parent id, etc...)isEdition
- true to get the content in edit mode- Returns:
- the post data in a map
-
getPostData
Get post info- Parameters:
post
- The postfullInfo
- true to include full info (rights, parent id, etc...)isEdition
- true to get the content in edit mode- Returns:
- the post data in a map
-
canEdit
Determines if the post can be edited by current user- Parameters:
post
- The post- Returns:
- true if the post can be edited
-
canDelete
Determines if the post can be deleted by current user- Parameters:
post
- The post- Returns:
- true if the post can be deleted
-
convertPostToString
Convert the content of a post to a string (removing HTML tags)- Parameters:
post
- The post- Returns:
- the content of the post as string.
-
_getPostDataFullInfo
Retrieves the post additional info (rights, parent id, etc...)- Parameters:
post
- The post- Returns:
- the post additional info (rights, parent id, etc...) in a map
-
_getUserRights
Get the user rights on the resource collection- Parameters:
node
- The explorer node- Returns:
- The user's rights
-
addThread
public Map<String,Object> addThread(String id, String inputName, String inputDescription) throws IllegalAccessException Add a thread- Parameters:
id
- The identifier of the parent in which the thread will be addedinputName
- The desired name for the threadinputDescription
- The thread description- Returns:
- The result map with id, parentId and name keys
- Throws:
IllegalAccessException
- If the user has no sufficient rights
-
editThread
public Map<String,Object> editThread(String id, String inputName, String inputDescription) throws IllegalAccessException Edit a thread- Parameters:
id
- The identifier of the threadinputName
- The new nameinputDescription
- The new description- Returns:
- The result map with id and name keys
- Throws:
IllegalAccessException
- If the user has no sufficient rights
-
renameThread
Rename a thread- Parameters:
id
- The id of the threadname
- The thread name- Returns:
- The result map with id, name and message keys
- Throws:
IllegalAccessException
- If the user has no sufficient rights
-
deleteThread
Delete a thread- Parameters:
id
- The id of the thread- Returns:
- The result map with id, parent id and message keys
- Throws:
IllegalAccessException
- If the user has no sufficient rights
-
addPost
public Map<String,Object> addPost(String threadId, String inputContent) throws IllegalAccessException, IOException Add a post- Parameters:
threadId
- The identifier of the thread in which the post will be addedinputContent
- The post content- Returns:
- The result map with id, parentId and message keys
- Throws:
IllegalAccessException
- If the user has no sufficient rightsIOException
- If an error occurs
-
setPostContent
Update the content of a post- Parameters:
post
- The post to updatecontent
- The content as string
-
getPostContent
Get the content of a post as a String- Parameters:
post
- the post- Returns:
- The content as String
- Throws:
AmetysRepositoryException
- if failed to parse content
-
getPostContentForEditing
Get the content of a post to edit as a String- Parameters:
post
- the post- Returns:
- The content as String
- Throws:
AmetysRepositoryException
- if failed to parse content
-
editPost
public Map<String,Object> editPost(String id, String inputContent) throws IllegalAccessException, IOException Edit a post- Parameters:
id
- The identifier of the postinputContent
- The post content- Returns:
- The result map with id, parentId and message keys
- Throws:
IllegalAccessException
- If the user has no sufficient rightsIOException
- If an error occurs
-
deletePost
Delete a post- Parameters:
id
- The id of the post- Returns:
- The result map with id, parent id and message keys
- Throws:
IllegalAccessException
- If the user has no sufficient rights
-
markAsRead
Mark a thread as read by the current user- Parameters:
id
- The thread id- Returns:
- The result map with id, parent id and message keys
-