com.atlassian.jira.bc.portal
Class DefaultPortalPageService

java.lang.Object
  extended by com.atlassian.jira.bc.portal.DefaultPortalPageService
All Implemented Interfaces:
PortalPageService

public class DefaultPortalPageService
extends Object
implements PortalPageService

The base class for PortalPageService implementations

Since:
v3.13

Constructor Summary
DefaultPortalPageService(PortalPageManager portalPageManager, ShareTypeValidatorUtils shareTypeValidatorUtils, FavouritesManager<PortalPage> favouritesManager, PermissionManager permissionManager, UserUtil userUtil)
           
 
Method Summary
protected  boolean checkSystemDefaultSharePermissions(JiraServiceContext serviceCtx, SharedEntity.SharePermissions sharePermissions)
          Check that the passed permissions are valid for the System Dashboard.
 PortalPage createPortalPage(JiraServiceContext serviceCtx, PortalPage portalPage)
          Called to create and store the specified portalPage into the database.
 PortalPage createPortalPage(JiraServiceContext serviceCtx, PortalPage portalPage, boolean isFavourite)
          Called to create and store the specified portalPage into the database.
 PortalPage createPortalPageByClone(JiraServiceContext serviceCtx, PortalPage portalPage, Long clonePortalPageId, boolean isFavourite)
          Called to create and store the specified portalPage into the database by cloning its Portlet content from an existing PortalPage object.
 void decreasePortalPageSequence(JiraServiceContext serviceCtx, Long portalPageId)
          Decreases the position of the page configuration in the user's page configuration set.
 void deleteAllPortalPagesForUser(com.atlassian.crowd.embedded.api.User user)
          Delete all Portal Pages owned by a user.
 void deletePortalPage(JiraServiceContext serviceCtx, Long portalPageId)
          Called to delete the PortalPage with the specified portalPageId.
 Collection<PortalPage> getFavouritePortalPages(com.atlassian.crowd.embedded.api.User user)
          Retrieve all PortalPage's a user has favourited.
 Collection<PortalPage> getNonPrivatePortalPages(com.atlassian.crowd.embedded.api.User user)
          Get a user's non private PortalPage's.
 Collection<PortalPage> getOwnedPortalPages(com.atlassian.crowd.embedded.api.User user)
          Retrieve all PortalPage's a user owns/has created.
 PortalPage getPortalPage(JiraServiceContext context, Long portalPageId)
          Retrieve a given PortalPage by id.
 Collection<PortalPage> getPortalPagesFavouritedByOthers(com.atlassian.crowd.embedded.api.User user)
          Get PortalPage's owned by a given user that have been favourited by at least one other user
 List<List<PortletConfiguration>> getPortletConfigurations(JiraServiceContext serviceCtx, Long portalPageId)
          Returns all portlet configurations for a particular dashboard in colums and rows.
 PortalPage getSystemDefaultPortalPage()
          This returns the System Default PortalPage as defined by the JIRA Administrators
 void increasePortalPageSequence(JiraServiceContext serviceCtx, Long portalPageId)
          Increases the position of the page configuration in the user's page configuration set
 boolean isFavourite(com.atlassian.crowd.embedded.api.User user, PortalPage portalPage)
          Is the passed PortalPage a favourite of the passed User.
 void moveToEndPortalPageSequence(JiraServiceContext serviceCtx, Long portalPageId)
          Puts the given page to the end of the user's page configuration set.
 void moveToStartPortalPageSequence(JiraServiceContext serviceCtx, Long portalPageId)
          Puts the given page to the start of the user's page configuration set.
 void saveLegacyPortletConfiguration(JiraServiceContext serviceCtx, PortletConfiguration portletConfiguration)
          Save a specific PortletConfiguration to a database store.
 SharedEntitySearchResult<PortalPage> search(JiraServiceContext serviceCtx, SharedEntitySearchParameters searchParameters, int pagePosition, int pageWidth)
          Search for the PortalPages that match the passed SearchParameters.
 PortalPage updatePortalPage(JiraServiceContext serviceCtx, PortalPage portalPage, boolean isFavourite)
          Updates the specified PortalPage in the database
 PortalPage updatePortalPageUnconditionally(JiraServiceContext serviceCtx, com.atlassian.crowd.embedded.api.User user, PortalPage portalPage)
          Updates the specified PortalPage in the database , no permission checks are applied, but the user must be an administrator
 void validateForChangeOwner(JiraServiceContext serviceCtx, PortalPage page)
          This will validate that the dashboard page can be changed to the new owbner.
 boolean validateForChangePortalPageSequence(JiraServiceContext serviceCtx, Long portalPageId)
          Called to validate that sequence of a PortalPage can be changed.
 boolean validateForCreate(JiraServiceContext serviceCtx, PortalPage portalPage)
          Called to validate that the PortalPage object is in a valid state for creation.
 boolean validateForCreatePortalPageByClone(JiraServiceContext serviceCtx, PortalPage portalPage, Long clonePortalPageId)
          Called to validate that a new PortalPage can be created by cloning its Portlet content from an existing PortalPage object.
 boolean validateForDelete(JiraServiceContext serviceCtx, Long portalPageId)
          Called to validate that the specified portalPage with the portalPageId can be deleted.
 boolean validateForGetPortalPage(JiraServiceContext context, Long portalPageId)
          Check if the user in the service context has permission to get the portal page with the id provided.
 void validateForSearch(JiraServiceContext serviceCtx, SharedEntitySearchParameters searchParameters)
          This will validate that the input parameters are valid for a search that encompasses ANY share entity type.
 boolean validateForUpdate(JiraServiceContext serviceCtx, PortalPage portalPage)
          Called to validate that the PortalPage can be be updated
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultPortalPageService

public DefaultPortalPageService(PortalPageManager portalPageManager,
                                ShareTypeValidatorUtils shareTypeValidatorUtils,
                                FavouritesManager<PortalPage> favouritesManager,
                                PermissionManager permissionManager,
                                UserUtil userUtil)
Method Detail

getFavouritePortalPages

public Collection<PortalPage> getFavouritePortalPages(com.atlassian.crowd.embedded.api.User user)
Description copied from interface: PortalPageService
Retrieve all PortalPage's a user has favourited. Permission checks are done to ensure the user can see the PortalPage, as visibility may have been removed from underneath them.

Specified by:
getFavouritePortalPages in interface PortalPageService
Parameters:
user - The user who has favourite PortalPage's. Also to test visibility and with
Returns:
a Collection of PortalPage objects that represent PortalPage's the user has favourited.

isFavourite

public boolean isFavourite(com.atlassian.crowd.embedded.api.User user,
                           PortalPage portalPage)
Description copied from interface: PortalPageService
Is the passed PortalPage a favourite of the passed User.

Specified by:
isFavourite in interface PortalPageService
Parameters:
user - the user to check.
portalPage - the page to check.
Returns:
true if the PortalPage is a favourite of the passed User.

getOwnedPortalPages

public Collection<PortalPage> getOwnedPortalPages(com.atlassian.crowd.embedded.api.User user)
Description copied from interface: PortalPageService
Retrieve all PortalPage's a user owns/has created.

Specified by:
getOwnedPortalPages in interface PortalPageService
Parameters:
user - The user who created the PortalPage's.
Returns:
a Collection of PortalPage objects that represent PortalPage's the user has created.

getNonPrivatePortalPages

public Collection<PortalPage> getNonPrivatePortalPages(com.atlassian.crowd.embedded.api.User user)
Description copied from interface: PortalPageService
Get a user's non private PortalPage's. I.e. PortalPage's that other users can possibly see.

Specified by:
getNonPrivatePortalPages in interface PortalPageService
Parameters:
user - The author of the PortalPage's
Returns:
Collection of PortalPage objects that do not have private scope.

getPortalPagesFavouritedByOthers

public Collection<PortalPage> getPortalPagesFavouritedByOthers(com.atlassian.crowd.embedded.api.User user)
Description copied from interface: PortalPageService
Get PortalPage's owned by a given user that have been favourited by at least one other user

Specified by:
getPortalPagesFavouritedByOthers in interface PortalPageService
Parameters:
user - The author of the PortalPage's
Returns:
Collection of PortalPage objects owned by the given user and favourited by at least one other user

getPortalPage

public PortalPage getPortalPage(JiraServiceContext context,
                                Long portalPageId)
Description copied from interface: PortalPageService
Retrieve a given PortalPage by id.

Specified by:
getPortalPage in interface PortalPageService
Parameters:
context - JIRA Service context containing an error collection and user requesting (to run) the PortalPage. The PortalPage must exist and the user must be able to see PortalPage else an error will result.
portalPageId - The id of the PortalPage to retrieve. Id must not be null.
Returns:
The PortalPage as specified by the id, or null if none exists for the user.

validateForGetPortalPage

public boolean validateForGetPortalPage(JiraServiceContext context,
                                        Long portalPageId)
Description copied from interface: PortalPageService
Check if the user in the service context has permission to get the portal page with the id provided.

Specified by:
validateForGetPortalPage in interface PortalPageService
Parameters:
context - Context containing user, error collection and i18n bean
portalPageId - The id of the portal page to get
Returns:
true if the user has permission, false if the user has no permission, or if the page doesn't exist.

getSystemDefaultPortalPage

public PortalPage getSystemDefaultPortalPage()
Description copied from interface: PortalPageService
This returns the System Default PortalPage as defined by the JIRA Administrators

Specified by:
getSystemDefaultPortalPage in interface PortalPageService
Returns:
the system default PortalPage

validateForCreate

public boolean validateForCreate(JiraServiceContext serviceCtx,
                                 PortalPage portalPage)
Description copied from interface: PortalPageService
Called to validate that the PortalPage object is in a valid state for creation. Call this before calling the create method .

Specified by:
validateForCreate in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage object that is to be validated for create
Returns:
true if the PortalPage is valid or false. The ErrorCollection of the serviceCtx will have any errors in it.

createPortalPage

public PortalPage createPortalPage(JiraServiceContext serviceCtx,
                                   PortalPage portalPage)
Description copied from interface: PortalPageService
Called to create and store the specified portalPage into the database.

Specified by:
createPortalPage in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage object that is to be created
Returns:
a fully fledged PortalPage with the new Id in it.

createPortalPage

public PortalPage createPortalPage(JiraServiceContext serviceCtx,
                                   PortalPage portalPage,
                                   boolean isFavourite)
Description copied from interface: PortalPageService
Called to create and store the specified portalPage into the database.

Specified by:
createPortalPage in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage object that is to be created
isFavourite - set to true if the PortalPage should be marked as a favourite
Returns:
a fully fledged PortalPage with the new Id in it.

validateForCreatePortalPageByClone

public boolean validateForCreatePortalPageByClone(JiraServiceContext serviceCtx,
                                                  PortalPage portalPage,
                                                  Long clonePortalPageId)
Description copied from interface: PortalPageService
Called to validate that a new PortalPage can be created by cloning its Portlet content from an existing PortalPage object.

Specified by:
validateForCreatePortalPageByClone in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage object that is to be created
clonePortalPageId - the id of an existing PortalPage to clone
Returns:
true if the PortalPage can be cloned from another page

createPortalPageByClone

public PortalPage createPortalPageByClone(JiraServiceContext serviceCtx,
                                          PortalPage portalPage,
                                          Long clonePortalPageId,
                                          boolean isFavourite)
Description copied from interface: PortalPageService
Called to create and store the specified portalPage into the database by cloning its Portlet content from an existing PortalPage object.

Specified by:
createPortalPageByClone in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage object that is to be created
clonePortalPageId - the id of an existing PortalPage to clone
isFavourite - set to true if the PortalPage should be marked as a favourite
Returns:
a fully fledged PortalPage with the new Id in it.

validateForDelete

public boolean validateForDelete(JiraServiceContext serviceCtx,
                                 Long portalPageId)
Description copied from interface: PortalPageService
Called to validate that the specified portalPage with the portalPageId can be deleted.

Specified by:
validateForDelete in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPageId - the id of the PortalPage to delete
Returns:
true if the PortalPage can be deleted. The ErrorCollection of the serviceCtx will have any errors in it.

deleteAllPortalPagesForUser

public void deleteAllPortalPagesForUser(com.atlassian.crowd.embedded.api.User user)
Description copied from interface: PortalPageService
Delete all Portal Pages owned by a user. This method will also remove all favourites for all portlets as well as remove all favourites for the user. A nice big cleanup method for when deleting a user.

Specified by:
deleteAllPortalPagesForUser in interface PortalPageService
Parameters:
user - The user to clean up after.

deletePortalPage

public void deletePortalPage(JiraServiceContext serviceCtx,
                             Long portalPageId)
Description copied from interface: PortalPageService
Called to delete the PortalPage with the specified portalPageId.

Specified by:
deletePortalPage in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPageId - the id of the PortalPage to delete

validateForUpdate

public boolean validateForUpdate(JiraServiceContext serviceCtx,
                                 PortalPage portalPage)
Description copied from interface: PortalPageService
Called to validate that the PortalPage can be be updated

Specified by:
validateForUpdate in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage to update
Returns:
true if the PortalPage is valid or false. The ErrorCollection of the serviceCtx will have any errors in it.

updatePortalPage

public PortalPage updatePortalPage(JiraServiceContext serviceCtx,
                                   PortalPage portalPage,
                                   boolean isFavourite)
Description copied from interface: PortalPageService
Updates the specified PortalPage in the database

Specified by:
updatePortalPage in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
portalPage - the PortalPage to update
isFavourite - set to true if the PortalPage is to be marked as a favourite
Returns:
a newly updated PortalPage

validateForChangeOwner

public void validateForChangeOwner(JiraServiceContext serviceCtx,
                                   PortalPage page)
Description copied from interface: PortalPageService
This will validate that the dashboard page can be changed to the new owbner.

Specified by:
validateForChangeOwner in interface PortalPageService
Parameters:
serviceCtx - Context containing user, error collection and i18n bean
page - the PortalPage to validate

updatePortalPageUnconditionally

public PortalPage updatePortalPageUnconditionally(JiraServiceContext serviceCtx,
                                                  com.atlassian.crowd.embedded.api.User user,
                                                  PortalPage portalPage)
Description copied from interface: PortalPageService
Updates the specified PortalPage in the database , no permission checks are applied, but the user must be an administrator

Specified by:
updatePortalPageUnconditionally in interface PortalPageService
Parameters:
serviceCtx - the JiraServiceContext in play
user - must be admin in order to make the change
portalPage - the PortalPage to update
Returns:
a newly updated PortalPage

validateForChangePortalPageSequence

public boolean validateForChangePortalPageSequence(JiraServiceContext serviceCtx,
                                                   Long portalPageId)
Description copied from interface: PortalPageService
Called to validate that sequence of a PortalPage can be changed.

Specified by:
validateForChangePortalPageSequence in interface PortalPageService
Parameters:
serviceCtx - the context of the service call
portalPageId - the id of the PortalPage to re-sequence
Returns:
true if the PortalPage can be re-sequenced

increasePortalPageSequence

public void increasePortalPageSequence(JiraServiceContext serviceCtx,
                                       Long portalPageId)
Description copied from interface: PortalPageService
Increases the position of the page configuration in the user's page configuration set

Specified by:
increasePortalPageSequence in interface PortalPageService
Parameters:
serviceCtx - the context of the service call
portalPageId - the id of the PortalPage to re-sequence

decreasePortalPageSequence

public void decreasePortalPageSequence(JiraServiceContext serviceCtx,
                                       Long portalPageId)
Description copied from interface: PortalPageService
Decreases the position of the page configuration in the user's page configuration set.

Specified by:
decreasePortalPageSequence in interface PortalPageService
Parameters:
serviceCtx - the context of the service call
portalPageId - the id of the PortalPage to re-sequence

moveToStartPortalPageSequence

public void moveToStartPortalPageSequence(JiraServiceContext serviceCtx,
                                          Long portalPageId)
Description copied from interface: PortalPageService
Puts the given page to the start of the user's page configuration set.

Specified by:
moveToStartPortalPageSequence in interface PortalPageService
Parameters:
serviceCtx - the context of the service call
portalPageId - the id of the PortalPage to re-sequence

moveToEndPortalPageSequence

public void moveToEndPortalPageSequence(JiraServiceContext serviceCtx,
                                        Long portalPageId)
Description copied from interface: PortalPageService
Puts the given page to the end of the user's page configuration set.

Specified by:
moveToEndPortalPageSequence in interface PortalPageService
Parameters:
serviceCtx - the context of the service call
portalPageId - the id of the PortalPage to re-sequence

saveLegacyPortletConfiguration

public void saveLegacyPortletConfiguration(JiraServiceContext serviceCtx,
                                           PortletConfiguration portletConfiguration)
Description copied from interface: PortalPageService
Save a specific PortletConfiguration to a database store.

Specified by:
saveLegacyPortletConfiguration in interface PortalPageService
Parameters:
serviceCtx - the context of the service call
portletConfiguration - The portletConfiguration to update

validateForSearch

public void validateForSearch(JiraServiceContext serviceCtx,
                              SharedEntitySearchParameters searchParameters)
Description copied from interface: PortalPageService
This will validate that the input parameters are valid for a search that encompasses ANY share entity type.

Specified by:
validateForSearch in interface PortalPageService
Parameters:
serviceCtx - Context containing user, error collection and i18n bean
searchParameters - the SharedEntitySearchParameters to validate

search

public SharedEntitySearchResult<PortalPage> search(JiraServiceContext serviceCtx,
                                                   SharedEntitySearchParameters searchParameters,
                                                   int pagePosition,
                                                   int pageWidth)
Description copied from interface: PortalPageService
Search for the PortalPages that match the passed SearchParameters. The result can be paged so that a subset of the results can be returned.

Specified by:
search in interface PortalPageService
Parameters:
serviceCtx - Context containing user, error collection and i18n bean
searchParameters - the searchParameters to query.
pagePosition - the page to return.
pageWidth - the number of results per page.
Returns:
the result of the search.

getPortletConfigurations

public List<List<PortletConfiguration>> getPortletConfigurations(JiraServiceContext serviceCtx,
                                                                 Long portalPageId)
Description copied from interface: PortalPageService
Returns all portlet configurations for a particular dashboard in colums and rows. The portlet configurations are returned sorted correctly in each column by row.

Specified by:
getPortletConfigurations in interface PortalPageService
Parameters:
serviceCtx - Context containing user, error collection and i18n bean
portalPageId - The id of the portal page to get
Returns:
A list of lists representing all portlet configs in all columns for the gadget in question.

checkSystemDefaultSharePermissions

protected boolean checkSystemDefaultSharePermissions(JiraServiceContext serviceCtx,
                                                     SharedEntity.SharePermissions sharePermissions)
Check that the passed permissions are valid for the System Dashboard.

Parameters:
serviceCtx - the JiraServiceContext in play
sharePermissions - the Set of SharePermission's to check
Returns:
true if they are valid


Copyright © 2002-2012 Atlassian. All Rights Reserved.