Interface PageService

All Superinterfaces:
com.appiancorp.services.ContextSensitiveService, Service

@Deprecated public interface PageService extends com.appiancorp.services.ContextSensitiveService
Deprecated.
The Portal functionality will be removed in a future release. Use the Tempo Interface for similar functionality.
Defines methods for access and modification of pages. There are two kinds of pages: portal pages are pages that contain portlets (all information must be displayed through portlets); custom pages are custom-made external JSP/HTML pages. All pages can be associated with categories for searching/browsing. A page can also be associated with a group (Department/Team) in which case it will be listed in the main left navigation bar under the group name if the user has sufficient privileges for viewing the page.

Portal pages have a "zone count" attribute which specifies the number of zones the page has for placing portlets. The portlets contained in a portal page can be Deactivated or Deleted; deactivating a portlet just hides it from the page, while deleting a portlet removes it permanently along with all its content (for shared portlets, all instances of the portlet on other pages will also be removed).

Pages can be private or public. The security for private pages is defined as follows:

  • a Portal Administrator can Delete, Edit, Approve, View, Target, Rename, Change Template, and Categorize the page (all the possible opertions)
  • a Page Creator can Delete, Edit, View, Target, Rename, Change Template, and Categorize the page (same as Portal Administrator, but can't Approve)
  • a Page Administrator can Delete, Edit, View, Target, Rename, Change Template, and Categorize the page (same as Page Creator)
  • a Page Editor can View and Edit the page
  • a Page Approver can View and Approve the page
  • a Page Viewer can View the page
  • an Anonymous User or Basic User with no explicit privileges (such as Page Admin/Editor/Approver/Viewer) cannot perform any operations
For public pages, the security is the same, except that everyone is allowed to view the page (including Anonymous and Basic Users). Personal and Department/Team pages are defined as private.

Portlets within portal pages have an additional separate security map defined as follows:

  • a Portal Administrator, Portlet Creator, or Portlet Administrator can Delete, Edit, View, Rename, Change Container, and Target the portlet (all the possible opertions)
  • a Portlet Editor can View and Edit the portlet
  • a Portlet Viewer can View the portlet
  • an Anonymous User or Basic User with no explicit privileges (such as Portlet Admin/Editor/Approver/Viewer) cannot perform any operations

When a user edits a page, the page is locked and a draft is created. Unless a user has the privileges to break the lock on the page, he/she will not be able to edit the page. If the page options are set such that modifications to the page require approval, the draft first has to be approved at which point it is published. Once a draft is published, it will be visible to page viewers.

Contributions are a way to log and keep track of all the content additions made by users. When a user submits new/updated content, or removes content, addContribution(com.appiancorp.suiteapi.portal.Contribution)/updateContribution(com.appiancorp.suiteapi.portal.Contribution) or deleteContribution(com.appiancorp.suiteapi.portal.Contribution) should be called to log the event. This should be done for modifications of all content (not just pages but all Appian Type objects such as forums, documents, etc). The getContributionsForTypePaging(com.appiancorp.suiteapi.portal.Contribution, int, int, java.lang.Integer, java.lang.Integer) method can then be used later to retrieve the logged user content modifications.

Methods of service classes can all throw the unchecked exception ServiceException if any system-level error (for example, server failure) occurs, and will in general throw a checked exception (InvalidXXXException) when an entity to be retrieved is inaccessible, instead of returning null. Exceptions to this paradigm (including the use of ResultList as described below) are noted. All checked exceptions extend AppianException.

It may be necessary to retrieve a subset of results as opposed to an entire collection, and also to sort the subset by some property of the returned object. "Paging" methods which return a ResultPage are provided in certain instances for this purpose. The ResultPage will contain the sorted subset of results (via Result.getResults()), and the total number of items in the available result set (via ResultPage.getAvailableItems()).

It may also be necessary to retrieve some results, even if all results cannot be retrieved (for instance, some of the entities corresponding to a list of entity IDs may no longer exist). Methods which return a ResultList are provided for this purpose. The Result.getResults() method in this case will return all results which can be retrieved. In addition, there will be a list of result codes (ResultList.getResultCodes()) that represent the successful retrieval of an entity, or, if the entity could not be retrieved, the reason for the failure. See the CODE_XXX constants in ResultList for details.

See Also: