Class ProjectsCatalogueManager
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.plugins.workspaces.project.ProjectsCatalogueManager
-
- All Implemented Interfaces:
Component
,Contextualizable
,LogEnabled
,Serviceable
public class ProjectsCatalogueManager extends AbstractLogEnabled implements Serviceable, Component, Contextualizable
Manager for the Projects Catalogue service
-
-
Field Summary
Fields Modifier and Type Field Description private static String[]
__ALLOWED_FORM_DATA
List of allowed field received from the frontprivate static String
__RIGHT_PROJECT_CREATE
private static String
__RIGHT_PROJECT_DELETE
private static String
__RIGHT_PROJECT_EDIT
private static String
__RIGHT_PROJECT_FO_CREATE
private static String
__RIGHT_PROJECT_FO_DELETE
private static String
__RIGHT_PROJECT_FO_EDIT
protected CategoryProviderExtensionPoint
_categoryProviderEP
The extension point for project's categoriesprotected Context
_context
The avalon contextprotected CurrentUserProvider
_currentUserProvider
Current user providerprotected GroupDirectoryContextHelper
_groupDirectoryContextHelper
Helper for group directory's contextprotected I18nUtils
_i18nUtils
Utils for i18nprotected KeywordProviderExtensionPoint
_keywordProviderEP
The extension point for project's keywordsprotected LanguagesManager
_languagesManager
The language managerprotected WorkspaceModuleExtensionPoint
_moduleManagerEP
The extension point for workspace's modulesprotected ObservationManager
_observationManager
The observation managerprotected PopulationContextHelper
_populationContextHelper
Helper for user populationprotected ProfileAssignmentStorageExtensionPoint
_profileAssignmentStorageExtensionPoint
The extension point for profiles' storageprotected ProjectManager
_projectManager
The project managerprotected ProjectMemberManager
_projectMemberManager
The project members' managerprotected ProjectRightHelper
_projectRightHelper
Helper for project's rightsprotected ProjectTagProviderExtensionPoint
_projectTagProviderEP
The extension point for project's tagsprotected AmetysObjectResolver
_resolver
Ametys Object Resolverprotected RightManager
_rightManager
The right managerprotected SiteConfigurationManager
_siteConfigurationManager
The site's configuration managerprotected SiteDAO
_siteDAO
The site daoprotected SourceResolver
_sourceResolver
The source resolverprotected UserManager
_userManager
The user managerstatic String
ROLE
Avalon Role
-
Constructor Summary
Constructors Constructor Description ProjectsCatalogueManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
_addDefaultValuesForMissingParameters(Map<String,Object> values, Collection<ElementDefinition> siteParameters)
private void
_assignPopulationsAndManager(Project project, Map<String,Object> formData)
private List<Map<String,Object>>
_categoryProviderTagsToJson(Map<String,Category> categoriesFromProvider)
private Map<String,Object>
_categoryProviderToJson(TagProvider<Category> provider)
private Map<String,Object>
_categoryTagToJson(Category categoryTag)
private Project
_createProject(Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder, Map<String,Object> siteConfiguration, List<String> errors)
private Map<String,Object>
_getCategoryTagsJson()
private List<I18nizableText>
_getDefaultTagsLeafTitle(Collection<DefaultTag> rootTags)
private List<Object>
_getGlobalKeywords()
private Map<String,Object>
_getNewSiteConfiguration(Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder)
protected Map<String,Object>
_getProjectParameters(String projectId, ModelAwareDataHolder serviceDataHolder)
Retrieves the parameters of the given projectprivate Map<String,Object>
_getProjectTagsJson()
private Map<String,Object>
_getSiteConfiguration(Site site)
protected Project
_postProjectCreation(Project project, Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder, Map<String,Object> siteConfiguration, List<String> errors)
some post action when the project is created in the repoprivate List<Map<String,Object>>
_providerTagsToJson(Map<String,DefaultTag> tagsFromProvider)
private Map<String,Object>
_providerToJson(TagProvider<DefaultTag> provider)
private void
_sendAskToJoinMail(String message, Project project, UserIdentity joiningUser)
private void
_setProjectCoverImage(Project project, Map<String,Object> formData, Part coverImage)
private void
_setProjectIllustration(Project project, Map<String,Object> formData, Part illustration)
private Map<String,Object>
_tagToJson(DefaultTag tag)
private void
_updateModules(Project project, Map<String,Object> formData)
protected void
_updateProject(Project project, Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder)
Update a projectprivate void
_updateSiteConfiguration(Project project, Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder, List<String> errors)
private void
_validateImageUpload(String error, Part illustration, Part coverImage)
Map<String,Object>
askToJoinProject(String projectId, String message)
Send a demand to join a project to the project's manager, if the project's inscriptions are moderatedvoid
contextualize(Context context)
Map<String,Object>
createProject(Map<String,Object> formData, String zoneItemId)
Create a new projectMap<String,Object>
createProject(Part image, Map<String,Object> formData, String zoneItemId)
Create a new projectMap<String,Object>
createProject(Part illustration, Part coverImage, Map<String,Object> formData, String zoneItemId)
Create a new projectMap<String,Object>
deleteProject(String projectId)
Delete a projectMap<String,Object>
editProject(String projectId, Map<String,Object> formData, String zoneItemId)
Edit a projectMap<String,Object>
editProject(Part image, String projectId, Map<String,Object> formData, String zoneItemId)
Edit a projectMap<String,Object>
editProject(Part illustration, Part coverImage, String projectId, Map<String,Object> formData, String zoneItemId)
edit a projectprotected String
getAddUserUrl(Project project, UserIdentity user)
Get the absolute url to add a user to a projectprotected String[]
getAllowedFormData()
Get the list of allowed data in the formMap<String,Object>
getNewProjectData(String zoneItemId)
Retrieve the data required to create a new projectMap<String,Object>
getProjectData(String projectId, String zoneItemId)
Retrieve the data of a project to edit, or the data for a new projectMap<String,Object>
getRights()
Get the rights to create, edit or delete projects, for the current userMap<String,Object>
joinProject(String projectId)
Add the current user to the project, if the project's inscriptions are openedvoid
service(ServiceManager manager)
-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
__RIGHT_PROJECT_CREATE
private static final String __RIGHT_PROJECT_CREATE
- See Also:
- Constant Field Values
-
__RIGHT_PROJECT_EDIT
private static final String __RIGHT_PROJECT_EDIT
- See Also:
- Constant Field Values
-
__RIGHT_PROJECT_DELETE
private static final String __RIGHT_PROJECT_DELETE
- See Also:
- Constant Field Values
-
__RIGHT_PROJECT_FO_CREATE
private static final String __RIGHT_PROJECT_FO_CREATE
- See Also:
- Constant Field Values
-
__RIGHT_PROJECT_FO_EDIT
private static final String __RIGHT_PROJECT_FO_EDIT
- See Also:
- Constant Field Values
-
__RIGHT_PROJECT_FO_DELETE
private static final String __RIGHT_PROJECT_FO_DELETE
- See Also:
- Constant Field Values
-
__ALLOWED_FORM_DATA
private static final String[] __ALLOWED_FORM_DATA
List of allowed field received from the front
-
_resolver
protected AmetysObjectResolver _resolver
Ametys Object Resolver
-
_currentUserProvider
protected CurrentUserProvider _currentUserProvider
Current user provider
-
_projectMemberManager
protected ProjectMemberManager _projectMemberManager
The project members' manager
-
_rightManager
protected RightManager _rightManager
The right manager
-
_projectManager
protected ProjectManager _projectManager
The project manager
-
_projectRightHelper
protected ProjectRightHelper _projectRightHelper
Helper for project's rights
-
_languagesManager
protected LanguagesManager _languagesManager
The language manager
-
_sourceResolver
protected SourceResolver _sourceResolver
The source resolver
-
_siteConfigurationManager
protected SiteConfigurationManager _siteConfigurationManager
The site's configuration manager
-
_populationContextHelper
protected PopulationContextHelper _populationContextHelper
Helper for user population
-
_moduleManagerEP
protected WorkspaceModuleExtensionPoint _moduleManagerEP
The extension point for workspace's modules
-
_profileAssignmentStorageExtensionPoint
protected ProfileAssignmentStorageExtensionPoint _profileAssignmentStorageExtensionPoint
The extension point for profiles' storage
-
_userManager
protected UserManager _userManager
The user manager
-
_i18nUtils
protected I18nUtils _i18nUtils
Utils for i18n
-
_observationManager
protected ObservationManager _observationManager
The observation manager
-
_groupDirectoryContextHelper
protected GroupDirectoryContextHelper _groupDirectoryContextHelper
Helper for group directory's context
-
_projectTagProviderEP
protected ProjectTagProviderExtensionPoint _projectTagProviderEP
The extension point for project's tags
-
_categoryProviderEP
protected CategoryProviderExtensionPoint _categoryProviderEP
The extension point for project's categories
-
_keywordProviderEP
protected KeywordProviderExtensionPoint _keywordProviderEP
The extension point for project's keywords
-
-
Constructor Detail
-
ProjectsCatalogueManager
public ProjectsCatalogueManager()
-
-
Method Detail
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
getRights
public Map<String,Object> getRights()
Get the rights to create, edit or delete projects, for the current user- Returns:
- The map of rights for the current user
-
getNewProjectData
public Map<String,Object> getNewProjectData(String zoneItemId)
Retrieve the data required to create a new project- Parameters:
zoneItemId
- The zone item of the project catalogue- Returns:
- The new project data
-
getProjectData
public Map<String,Object> getProjectData(String projectId, String zoneItemId)
Retrieve the data of a project to edit, or the data for a new project- Parameters:
projectId
- The project id. Can be null.zoneItemId
- The zone item of the project catalog- Returns:
- The project data
-
_getProjectParameters
protected Map<String,Object> _getProjectParameters(String projectId, ModelAwareDataHolder serviceDataHolder)
Retrieves the parameters of the given project- Parameters:
projectId
- Identifier of the projectserviceDataHolder
- data holder of the project catalog service- Returns:
- a Map containing the parameters of the project
-
_getProjectTagsJson
private Map<String,Object> _getProjectTagsJson()
-
_providerToJson
private Map<String,Object> _providerToJson(TagProvider<DefaultTag> provider)
-
_providerTagsToJson
private List<Map<String,Object>> _providerTagsToJson(Map<String,DefaultTag> tagsFromProvider)
-
_tagToJson
private Map<String,Object> _tagToJson(DefaultTag tag)
-
_getCategoryTagsJson
private Map<String,Object> _getCategoryTagsJson()
-
_categoryProviderToJson
private Map<String,Object> _categoryProviderToJson(TagProvider<Category> provider)
-
_categoryProviderTagsToJson
private List<Map<String,Object>> _categoryProviderTagsToJson(Map<String,Category> categoriesFromProvider)
-
_categoryTagToJson
private Map<String,Object> _categoryTagToJson(Category categoryTag)
-
_getGlobalKeywords
private List<Object> _getGlobalKeywords()
-
_getDefaultTagsLeafTitle
private List<I18nizableText> _getDefaultTagsLeafTitle(Collection<DefaultTag> rootTags)
-
createProject
public Map<String,Object> createProject(Map<String,Object> formData, String zoneItemId) throws IllegalAccessException, AmetysRepositoryException, IOException
Create a new project- Parameters:
formData
- The project datazoneItemId
- The zone item of the project catalogue- Returns:
- The result
- Throws:
IllegalAccessException
- If an error occurredIOException
- If an error occurredAmetysRepositoryException
- If an error occurred
-
createProject
public Map<String,Object> createProject(Part image, Map<String,Object> formData, String zoneItemId) throws IllegalAccessException, AmetysRepositoryException, IOException
Create a new project- Parameters:
image
- An image, can be either the illustration or the coverImage, which can be identify through formDataformData
- The project datazoneItemId
- The zone item of the project catalogue- Returns:
- The result
- Throws:
IllegalAccessException
- If an error occurredIOException
- If an error occurredAmetysRepositoryException
- If an error occurred
-
createProject
public Map<String,Object> createProject(Part illustration, Part coverImage, Map<String,Object> formData, String zoneItemId) throws IllegalAccessException, AmetysRepositoryException, IOException
Create a new project- Parameters:
illustration
- The project illustration file. Can be nullcoverImage
- The cover image. Can be nullformData
- The project datazoneItemId
- The zone item of the project catalogue- Returns:
- The result
- Throws:
IllegalAccessException
- If an error occurredIOException
- If an error occurredAmetysRepositoryException
- If an error occurred
-
_validateImageUpload
private void _validateImageUpload(String error, Part illustration, Part coverImage)
-
_getNewSiteConfiguration
private Map<String,Object> _getNewSiteConfiguration(Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder)
-
_createProject
private Project _createProject(Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder, Map<String,Object> siteConfiguration, List<String> errors)
-
_postProjectCreation
protected Project _postProjectCreation(Project project, Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder, Map<String,Object> siteConfiguration, List<String> errors)
some post action when the project is created in the repo- Parameters:
project
- the projectformData
- the forms dataserviceDataHolder
- service data holdersiteConfiguration
- site configurationerrors
- list of errors- Returns:
- the project
-
_assignPopulationsAndManager
private void _assignPopulationsAndManager(Project project, Map<String,Object> formData)
-
editProject
public Map<String,Object> editProject(String projectId, Map<String,Object> formData, String zoneItemId) throws IllegalAccessException, AmetysRepositoryException, RepositoryException, IOException
Edit a project- Parameters:
projectId
- the project idformData
- The project datazoneItemId
- The zone item of the project catalogue- Returns:
- The result
- Throws:
IllegalAccessException
- If an error occurredRepositoryException
- If an error occurredAmetysRepositoryException
- If an error occurredIOException
- If an error occurred
-
editProject
public Map<String,Object> editProject(Part image, String projectId, Map<String,Object> formData, String zoneItemId) throws IllegalAccessException, AmetysRepositoryException, RepositoryException, IOException
Edit a project- Parameters:
image
- An image, can be either the illustration or the coverImage, which can be identify through formDataprojectId
- the project idformData
- The project datazoneItemId
- The zone item of the project catalogue- Returns:
- The result
- Throws:
IllegalAccessException
- If an error occurredRepositoryException
- If an error occurredAmetysRepositoryException
- If an error occurredIOException
- If an error occurred
-
editProject
public Map<String,Object> editProject(Part illustration, Part coverImage, String projectId, Map<String,Object> formData, String zoneItemId) throws IllegalAccessException, AmetysRepositoryException, RepositoryException, IOException
edit a project- Parameters:
illustration
- The project illustration file. Can be nullcoverImage
- The cover image. Can be nullprojectId
- the project idformData
- The project datazoneItemId
- The zone item of the project catalogue- Returns:
- The result
- Throws:
IllegalAccessException
- If an error occurredRepositoryException
- If an error occurredAmetysRepositoryException
- If an error occurredIOException
- If an error occurred
-
_updateProject
protected void _updateProject(Project project, Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder)
Update a project- Parameters:
project
- the project to updateformData
- form dataserviceDataHolder
- service parameters
-
_updateSiteConfiguration
private void _updateSiteConfiguration(Project project, Map<String,Object> formData, ModelAwareDataHolder serviceDataHolder, List<String> errors)
-
_getSiteConfiguration
private Map<String,Object> _getSiteConfiguration(Site site)
-
_addDefaultValuesForMissingParameters
private void _addDefaultValuesForMissingParameters(Map<String,Object> values, Collection<ElementDefinition> siteParameters)
-
_updateModules
private void _updateModules(Project project, Map<String,Object> formData)
-
_setProjectIllustration
private void _setProjectIllustration(Project project, Map<String,Object> formData, Part illustration) throws AmetysRepositoryException, IOException
- Throws:
AmetysRepositoryException
IOException
-
_setProjectCoverImage
private void _setProjectCoverImage(Project project, Map<String,Object> formData, Part coverImage) throws AmetysRepositoryException, IOException
- Throws:
AmetysRepositoryException
IOException
-
deleteProject
public Map<String,Object> deleteProject(String projectId) throws IllegalAccessException
Delete a project- Parameters:
projectId
- The project id- Returns:
- The result
- Throws:
IllegalAccessException
- if an error occurred
-
joinProject
public Map<String,Object> joinProject(String projectId) throws javax.mail.MessagingException
Add the current user to the project, if the project's inscriptions are opened- Parameters:
projectId
- The project id- Returns:
- The result
- Throws:
javax.mail.MessagingException
- If an error occurred sending a notification mail to the project manager
-
askToJoinProject
public Map<String,Object> askToJoinProject(String projectId, String message) throws javax.mail.MessagingException
Send a demand to join a project to the project's manager, if the project's inscriptions are moderated- Parameters:
projectId
- The project to joinmessage
- A message to send to the project's manager.- Returns:
- The result
- Throws:
javax.mail.MessagingException
- If an error occurred sending the email to the project's manager
-
_sendAskToJoinMail
private void _sendAskToJoinMail(String message, Project project, UserIdentity joiningUser) throws javax.mail.MessagingException
- Throws:
javax.mail.MessagingException
-
getAddUserUrl
protected String getAddUserUrl(Project project, UserIdentity user)
Get the absolute url to add a user to a project- Parameters:
project
- The projectuser
- the identity of user to add- Returns:
- the absolute page url
-
getAllowedFormData
protected String[] getAllowedFormData()
Get the list of allowed data in the form- Returns:
- the list of allowed data in the form
-
-