Liferay Portal 6 Enterprise Intranets

Transcription

Liferay Portal 6 EnterpriseIntranetsBuild and maintain impressive corporate intranetswith LiferayJonas X. YuanBIRMINGHAM - MUMBAI

Liferay Portal 6 Enterprise IntranetsCopyright 2010 Packt PublishingAll rights reserved. No part of this book may be reproduced, stored in a retrievalsystem, or transmitted in any form or by any means, without the prior writtenpermission of the publisher, except in the case of brief quotations embedded incritical articles or reviews.Every effort has been made in the preparation of this book to ensure the accuracyof the information presented. However, the information contained in this book issold without warranty, either express or implied. Neither the author, nor PacktPublishing, and its dealers and distributors will be held liable for any damagescaused or alleged to be caused directly or indirectly by this book.Packt Publishing has endeavored to provide trademark information about all of thecompanies and products mentioned in this book by the appropriate use of capitals.However, Packt Publishing cannot guarantee the accuracy of this information.First published: April 2010Production Reference: 1230410Published by Packt Publishing Ltd.32 Lincoln RoadOltonBirmingham, B27 6PA, UK.ISBN 978-1-849510-38-7www.packtpub.comCover Image by Karl Swedberg (karl@englishrules.com)

CreditsAuthorJonas X. YuanReviewerAmine BoustaAcquisition EditorDilip VenkateshDevelopment EditorMehul ShettyEditorial Team LeaderAanchal KumarProject Team LeaderLata BasantaniProject CoordinatorShubhanjan ChatterjeeProofreadersAaron NashLesley HarrisonTechnical EditorsAditya BelpathakGraphicsAlfred JohnGeetanjali SawantCharumathi SankaranNilesh MohiteCopy EditorsProduction CoordinatorsLeonard D'SilvaAvinish KumarSanchari MukherjeeAparna BhagatNilesh MohiteIndexersHemangini BariRekha NairCover WorkAparna Bhagat

About the AuthorDr. Jonas X. Yuan is a Senior Technical Analyst at CIGNEX. He holds a Ph. D. inComputer Science from the University of Zurich, specializing in Integrity Controlin Federated Database Systems. He earned his M.S. and B.S. degrees from China,where he conducted research on expert systems for predicting landslides. Jonas isexperienced in Systems Development Life Cycle (SDLC). Previously, he worked asa Project Manager and a Technical Architect in Web GIS (Geographic InformationSystem). He has hands-on skills in J2EE technologies. Most importantly, he hasdeveloped a BPEL (Business Process Execution Language) Engine called BPELPowerfrom scratch in the NASA data center. He has a lot of experience with contentmanagement and publishing such as Media/Games/Publishing. He is also an experton Liferay Portal, Content Management Systems (CMS) Alfresco, Ad Server OpenX,BPM Intalio, Business Intelligence Pentaho, LDAP, and SSO.

AcknowledgementI would like to thank all my team members at Liferay, specially Raymond Auge,Brian Chan, Bryan Cheung, Jorge Ferrer, Michael Young, Jerry Niu, Ed Shin, CraigKaneko, Brian Kim, Bruno Farache, Thiago Moreira, Amos Fong, Scott Lee, DavidTruong, Alexander Chow, Mika Koivisto, Julio Camarero, Douglas Wong, RyanPark, Eric Min, John Langkusch, Marco Abamonga, Ryan Park, Eric Min, JohnLangkusch, Marco Abamonga, Michael Han, Samuel Kong, Nate Cavanaugh, ArckoDuan, Richard Sezov, Joshua Asbury, Shuyang Zhou of Liferay for providing all thesupport and valuable information.A special thanks to all my team members at CIGNEX for making this book a reality.I would like to thank Paul Anthony, Munwar Shariff, and Rajesh Devidasani fortheir encouragement and great support; our sales and presales team, Amit Babaria,Harish Ramachandran, helped me understand what customers are looking at. Ourconsulting team Robert Chen, Mike Walker, Venkata Challagulla, Michael Venfordand Frank Yu presented me the various flavors of Liferay implementations with reallife examples. I am thankful to them.I sincerely thank and appreciate Dilip Venkatesh and Mehul Shetty, SeniorAcquisition Editor and Development Editor respectively at Packt Publishing forcriticizing and fixing my writing style. Thanks to Aditya Belpathak, Alfred John,Charumathi Sankaran, Shubhanjan Chatterjee and entire team at Packt Publishing; itis really joyful to work with them.Last but not least, I would like to thank my parents and my wife, Linda, for theirlove, understanding and encouragement. My special thanks to my wonderful andunderstanding kid Joshua.

About the ReviewerAmine Bousta is a French Senior Technical Analyst in Groupe Open. He holdsa French diploma of Computer Engineering (equivalent to master's degree) and aTechnology Research Diploma in Artificial Intelligence (neural networks appliedto e-commerce). Specialized in JEE, he monitors and studies most of the relatedtechnologies and open source products in order to apply them as solutions forvarious companies' needs. From 2007, his technology watch on open source JavaPortal Engines led to Liferay Portal as the most flexible and complete free portletsengine. The Liferay Community Site gave him the opportunity to meet Dr Jonas X.Yuan and read his previous publications, then become the technical reviewer ofthis book.I would like to warmly thank my family, my dear co-workers, andmy friends for not spamming me with their usual pointless technicalquestions while I was reviewing this book!So. my special thanks to the following List of Nominees in JavaHarassment Category: Julien Nicolet, Laurent Witt, Jacques Scius,Nicolas Burg, Olivier Spieser, Angelo Zerr, Olivier Dub, DianaGarzon, Hadrien Beaufils, Mohamadou Kane, and MohamedCherroud.And in the Microsoft-Software-Time-Wasting-Questions Category:my beloved mom and sister. ;-)

Table of ContentsPrefaceChapter 1: Introducing Liferay for your IntranetWhat are we going to build?Hosted discussionsCollaborative documents using wikisTeam and individual blogsShared calendarsDocument stores—CMSWeb Content Management—WCMPersonalization and internalizationWorkflow, staging, scheduling, and publishingSocial network and Social OfficeAnd more.Everything in one placeIntroducing Palm Tree PublicationsLiferay portal frameworkService Oriented ArchitectureEnterprise Service BusWhy use Liferay to build an intranet?It has got the features we needIt's easy to set up and useIt's free and open sourceIt will grow with youIt works with other toolsIt is based on "standards"What else can Liferay do?Corporate extranetsCollaborative 1920212121

Table of ContentsContent management and web publishingInfrastructure portalsFinding more informationSummaryChapter 2: Setting Up a Home Page and Navigation Structure forthe IntranetExperiencing the portalGetting portal pagesWhat's happening?Experiencing portletsUsing the portlet containerHow does the portal work?2122222325262628282929Working of portlets30Portlet lifecycle31Terminologies, scope, and hierarchySetting up the portalUsing the Liferay portal bundled with JBoss 5.x in WindowsUsing Liferay portal bundled with Tomcat 6.x in Linux32333435More options for portal installationFlexible deployment matrixBuilding pagesAdding pagesRemoving pagesAdding portletsRemoving portletsChanging layout templatesSetting up portal pagesManaging pages38383940414242434444Clean and restartSetting up production serversSetting up domainsShortening the URLAdding a child pageChanging the display order363637374546Editing a page46Multiple languagesFriendly URLPage iconCopying pagesDeleting a pageChanging the look and feel: themesCustomizing portletsPortlet Look and Feel[ ii ]4647474748484950

Table of ContentsSetting up portlet configurationNavigating the structure of an intranet siteConfiguring portalConfiguring portal pathsCustomizing portal configurationAdding extended properties filesPortal structurePortal contextTerms of UseReminder queriesSession settingsLayout typesDefault user public layouts and private layoutsDefault adminGuest layoutsFriendly URLLook and Feel5152535455555657585960626365656666Dock bar menu68Database connections71Mail configuration75What's happening?Dock bar menu in themesMy Places687070JNDI namePropertiesPopulating with default dataTransaction isolationCustom SQL7272737474Mail sessionJava-mailMail hook757778Bring pages together in actionPage CommentsPage RatingsPage TemplatesPage FlagsHow do you share portlets within a portal page?Configuring Control PanelAdministrationMy AccountMy PagesConfiguration and settingsAdding custom portlets797980818283848585868788Summary89What's happening?[ iii ]89

Table of ContentsChapter 3: Bringing in Users91Role and permissionUserOrganization and LocationUserGroup and Community94949495Enterprise, departments, and locationsRole-based access controlOrganizationsAdding a top-level OrganizationManaging organizations9293959597Adding child organizationsViewing organizationsSearching organizationsEditing an organizationDeleting an organizationAssigning users to an organizationUsing organizations in an effective way97989899100101102Locations102Organization settings107Hierarchy, tree, and Shared Global109Adding a location for the enterpriseAdding locations for main organizationsViewing locationsSearching locationsEditing a locationDeleting a locationAssigning users to a locationUsing locations in an effective way102103104104105105106106Organization typesOrganization formsOverriding assignment and membership107108109Organization hierarchyOrganization treeShared Global110110110User groupsAdding a user groupManaging user groups111111112UsersAdding users114114Viewing user groupsSearching user groupsEditing a user groupDeleting user groupsAssigning users to a user group112113113113113What's happening?116Adding more users116[ iv ]

Table of ContentsAdding users in bulk117Managing users118User settings124Creating an account on the flyWhat to do when a user forgets the password?Viewing usersSearching for usersEditing a user profileDeactivating a userActivating a userDeleting a userImpersonating a userUsing the Actions tab117118119119120122123123124124User formsOverriding user-related properties125125AuthenticationsGeneral configuration126126LDAP authentication129SSO authentication133What's happening?Basic authenticationAuto login127128128What's happening?Using LDAP effectivelyLDAP authentication chainCAPTCHA130131132132What's happening?OpenID authenticationNTLM authenticationOpen SSO authenticationSiteMinder authenticationAuthentication token134136136137138139RolesAdding a role140140What's happening?141Managing roles141Viewing rolesSearching rolesEditing a roleDeleting rolesAssigning membersUsing roles in an effective wayWhat's sionPermissions in scope145145147Assigning portal-level permissions148[v]

Table of ContentsAssigning individual portlet permissionsUsing permissions in an effective way150150Permission algorithms151What's happening?Data migration152153SummaryChapter 4: Forums, Categorization, and Asset PublishingMessage BoardsManaging categoriesAdding categoriesEditing categoriesDeleting categories154155156156156158159Managing threads159Managing posts162Subscribing categories and threads166Customizing Message BoardsSetup168168Assigning permissions178Using Message Boards effectively184Add threadsEdit threadsDelete threads160161162Adding postsEditing postsBanning usersDeleting postsViewing postsSearching postsViewing My PostsViewing Recent PostsViewing StatisticsViewing Banned UsersUnsubscribing from categories and threadsWhat's happening?What's happening?Ban and unban usersThread viewsUsing Message Boards as a mailing listMessage Boards in scopeFriendly URLArchive, Export, and ImportPortlet 71172172173173175175177The permissions on Message Boards portletPermissions on Message Boards contentPermissions on categoryPermissions on messageCategory hierarchy178180181183185[ vi ]

Table of ContentsSemantics and Ontology185CategorizationTagging assets185186FolksonomiesTaxonomies186187Tags administration188Assigning permissions194Using tags effectively197Tags portletCategories portletTags configurationTags publishing188190192193Permissions on portletPermissions on tagsPermissions on tag, vocabulary, and categoryTags in scopeFolksonomiesTaxonomiesWhat makes tags interesting?Category TreeWhy it doesn't merge both kinds of tags using ontology194195195196197197198199199Asset PublisherMain ing assets manuallySelecting assets dynamicallyFlexible operators supportCustomizationWhat's happening?202204206207207Configurable look and feelShare assets across groups208208SummaryChapter 5: Wikis, Web Forms, and PollsWikisManaging nodesAdding nodesEditing a nodeDeleting a nodeViewing RSS feedsImporting pages209211212212212214214214215Managing pages216Adding pagesViewing pagesSearching pagesAdding comments216219220222[ vii ]

Table of ContentsAdding ratings223Subscribing nodes and Wiki pages224Assigning permissions224Using the Wiki portlet effectively228Using Liferay wikis230Configuration233Publishing wiki pages236What's happening?Permissions on the Wiki portletPermissions on WikiPermissions on Wiki nodesPermissions on Wiki pages224225226227228CharacteristicsPros and consWhat can Wikis be used for?228229229Classic modeCreole modeHTML modePlain text mode231232232232What's happening?Wiki in scopeWikis in communicationEnhancement233235236236Why the Wiki Display portlet?Assigning permissionsWhat's happening?238238240Converting documents with OpenOfficeHow to integrate OpenOfficeConfiguration241241241Web formsThe Web Form portlet244244What's happening?Convert documentsHow does it work?View modeEdit modeWhat's happening?Assign y UI FormsOrbeon Forms248250PollsThe Polls portlet252252How does it work?Create forms251251Editing a Question254[ viii ]

Table of ContentsDeleting a QuestionViewing VotesWhat's happening?Features254255255255The Polls Display portlet256Assigning permissions258Using polls effectively262How to achieve it?What's happening?Features256257258The Permissions on Polls portletPermissions on the Polls Display portletPermissions on PollsPermissions on Polls Questions258259260260Polls versus surveysPolls in scopeUse Polls through JSON servicesEnhancement263263264265SummaryChapter 6: Blogs, WYSIWYG Editors, and RSSBlogsAdding entriesManaging entriesEditing entriesDeleting entriesSearching entriesGiving your ratingEmploying RSS feedsFlagging inappropriate contentSocial g comments274Assigning permissions277Using blogs effectively281What’s happening?276Permissions on portletPermissions on Blogs entriesPermissions on Blogs entry277278279Blogs typesThe Blogs portletSetupWhat’s happening?Asset render framework, search, indexing, and social activityTags and categoriesBlogs in scopeFriendly URLBlogs in communicationEnhancement[ ix ]281282283284284285286287287287

Table of ContentsPublishing blogsThe Recent Bloggers portlet288288The Blogs Aggregator portlet290What’s happening?Enhancement289290What’s happening?Enhancement291292WYSIWYG editorsUpgrading FCKeditorEnd user featuresInserting images292293294296What’s happening?298Inserting links299Insert flashes, tables, smileys, and special characters303Link to documentsLink to pagesLink to imagesWhat’s happening?What’s happening?300301302302305Editing sourceCustomizationWhat’s happening?Adding more plugins in FCKEditorUsing different WYSIWYG editorsThe WYSIWYG editor in portletsThe WYSIWYG portlet306307307308310311311RSSThe RSS portlet312313Enhancement312What’s happening?314The Weather portlet315Announcements and Alerts317Using RSS effectively324What’s happening?316Managing entriesWhy Announcements portlet?What’s happening?Assigning permissionsWhat’s different between two portlets?Enhancement318320321322323323RSS specificationHow does it work?325326Summary326[x]

Table of ContentsChapter 7: Roll Out to Other TeamsWhat's a community?Adding a communityManaging communitiesViewing communitiesSearching communitiesEditing a communityDeleting a community329330331333333334334336Managing pages336Bringing users into the communities345Assigning permissions351What's happening?356Viewing pages336Importing and exporting pages337Updating look and feel of pages339Uploading a logo340Merging pages342Monitoring pages342Sitemap344Assigning usersAssigning User RolesJoinLeaveRequesting membershipPermissions on the portlet Enterprise Admin CommunitiesPermissions on communitiesWhat's the difference between community and 7348348349351352354356357357Site templates and page templatesPage templates358358Managing page templatesAssigning permissionsApplying page templatesWhat's happening?358360362363Site templates364Managing site templatesBuilding site templatesPermissions on site templatesApplying site templatesWhat's happening?364365366368369Virtual hostingSetting up virtual hostingUsing virtual hosting effectivelyWhat's happening?370371372373[ xi ]

Table of ContentsSetup373Staging, workflow, and publishingStaging374374Activating stagingWhat's happening?375376Publishing locally376Workflow378Publishing pagesWhat's happening?376378Activating workflowCreating task proposalsAssigning permissionsEnhancementScheduling and remote publishingHow to publishOptionsSchedulerWhat's ying community toolsMy Communities portletBookmarks portlet386387388ConfigurationAssigning permissionsWhat's happening?389389391Directory portlet392Invitation portlet393Setup392SetupWhat's happening?393393Summary394Chapter 8: CMS and WCM395The Image Gallery portletManaging folders396396Adding sub-foldersUpdating folders397398Managing images399Assigning permissions403Viewing images as a slideshowSearching imagesEditing imagesDeleting imagesExporting and Importing400401401402402Permissions on portletPermissions on Image Gallery403404[ xii ]

Table of ContentsPermissions on foldersPermissions on images404405What's happening?406Why WebDAV?411SetupImages in scopeCustomizationPersist for imagesSetting up the image size in databaseCustomizing default imagesEnhancement406407408409409410411SetupWhat's happening?412413The Document Library portletManaging folders413414Adding sub-foldersUpdating folders415416Managing documents417Assigning permissions422Publishing documents426What's happening?427Document persistence432Adding documents in bulkAdding shortcutsViewing documentsSearching documents and shortcutsEditing documents and shortcutsDeleting documents and shortcutsViewing version historyGiving your ratingAdding commentsExporting and Importing417418419420420421421421422422Permissions on the portletPermissions on Document LibraryPermissions on foldersPermissions on documentsPermissions on shortcuts422423424424426Document Library DisplayRecent Documents426427SetupConfigurationDocument presentationCheck-in and check-out lockable documentsDocuments in scopeSetupWhen do we use Advanced File System Hook?Why JCR Jackrabbit?Enhancement[ xiii ]427428429430431432433434435

Table of ContentsWeb Content Management portletManaging structures436436Viewing structuresEditing structuresDeleting structuresWhat's happening?438439440440Managing templates443Managing Web Content448Assigning permissions453What's happening?458Viewing templatesEditing templatesDeleting templatesWhat's happening?444445446446Viewing articlesEditing articlesDeleting articlesManaging feedsSetup450451452452453Permissions on portletPermissions on Web Content ManagementPermissions on Web ContentPermissions on structures, templates, and feedsEnhancementBuilding structuresCreating templatesConstructing articlesSetupConfigurationCustomizationDefault tokensCustom tokensDefault 6Publishing Web ContentThe Web Content Display portletThe Web Content List portletOther WCM tools466466468470Summary472Nested PortletsThe XSL Content portlet470471Chapter 9: Social Office, Hooks, and Custom FieldsThe Chat portletSample of a Chat portletChecking for online friendsBeginning with chattingFolder structure[ xiv ]473474474474475476

Table of ContentsEmploying AJAXSetting up a Chat portletAccess on the portletConfiguration of a Chat portletService modelEnhancement476477478478479479The Mail portletWorking of a Mail portletManaging e-mails480480480Assigning permissions483Configuring e-mail accountsChecking e-mailSending e-mail481482482SetupMail Engine settingsThe mail repositoryConfigurationAccess on the portletEnhancement483484485485486486Using the Mail portlet effectivelySMS Text MessengerSMS Text Messenger portletWhat's happening?487487488489How to fully install Social OfficeThe SO theme490491Accessing on the portletMail w does it work?Setup491492493495The SO portlet496The Extending Calendar portlet505The Contacts portlet508StructureSetupHow does it work?What's happening?Enhancement498501502503505Task Management SystemToday's Event505507SetupConfigurationHow does it work?What's happening?Service model508510511511512[ xv ]

Table of ContentsEnhancement512HooksSetupWhat's happening?512513515Custom FieldsManaging custom fields518518Assigning permissions522What's happening?524Portal Properties HooksLanguage Properties HooksCustom JSP HooksPortal Service HooksEnhancement515515516517517Adding custom fieldsViewing custom fieldsAdding/updating values for custom fieldsApplying custom fields on any resourcesPermissions on portletPermissions on Expando onCustomizationCustom attribute displayEnhancement524525526527Summary527Federated searchThe Search portlet530530Chapter 10: Search, WAP, CRM, Widgets, Reporting and Auditing 529What's earch in plugins534CSZ Search537Maps search538What's OpenSearch?540How does it work?Web servicesRESTful servicesCMIS534535535536How does it work?What's happening?537538How does it work?What's happening?539539Design principlesOpenSearch specification540540Web Content Search542[ xvi ]

Table of ContentsSetupWhat's happening?542543ConfigurationLucene search engine543544Searching Engine OptimizationSitemap545545Customizing sitemaps for pages546What's happening?547XML sitemap format547Pluggable Enterprise SearchCaching settings548549Configure Hibernate cachingSetting up EHCache cachingCustomization550551551Indexing settings553Solr search556Lucene searchIndex storageIndexer framework553554555Install Solr instanceConfiguring the Solr pluginWhat's happening?556557558Plugins managementPlugins installation559559Plugins configuration562The Plugin Installer portletPlugins administrationAuto DeployWhat's happening?559560560561What's happening?563WAPJedi Mobile theme563564StructureHow does it work?What's happening?564564564iPhone theme565iPhone Redirect theme566ReportingJasperReports EngineThe Reports portlets567567567How does it work?What's happening?565565How does it work?What's happening?566566SetupStructure569570[ xvii ]

Table of ContentsAssign permissionsWhat's happening?571573Audit serviceAudit hookHow does it work?574574574The Audit portlet576Document Library Record577What's happening?575How does it work?The Service modelWhat's happening?576576577How does it work?The Service model portletWhat's dgets and gadgetsWidgets—Netvibes580581How does it work?580How does it work?SetupWhat's happening?Mash-ups581581582583The Widget Consumer portlet584How does it work?584SummaryChapter 11: Ongoing Admin TasksSystems administrationServer managementResourcesShutdownLog levelsPropertiesFile uploadMailWhat's es management592Monitoring portal and portlets operations595Database read-writer596Updating portal instancesAdding portal instancesWhat's happening?SetupSetupWhat's happening?592593594595596597[ xviii ]

Table of ContentsDatabase sharding597Portal administrationPassword policies600601SetupWhat's happening?598599Assigning permissionsWhat's happening?602603Portal settings604Monitoring live users' activities612General informationUsersEmail notificationsDisplay settingsHow does it work?What's happening?605606606607607608How does it work?What's happening?613613Clustering - high availabilityHTTP services613615Configuring mod jkConfiguring TomcatConfiguring JBossConfiguring portalDatabase replication and clusteringRepository clusteringUrlRewrite filterConfiguration615617617618618619621621Cloud ComputingData backup and migrationData backupData migration622623624624Performance tuningIntegrating with Alfresco, SSO CAS,and LDAPAlfresco, LDAP and SSO CAS626Database migrationRepository migrationWhat's happening?How does it work?625625626629630633Alfresco web client as a set of portlets633Full Integration—Liferay, Alfresco, LDAP,and SSO CAS635How does it work?How does it work?What's happening?[ xix ]634636637

Table of ContentsIntegrating with Ad server OpenXOpenX integrationAd Manager639639640How does it work?What's happening?Enhancement641641641Ad Viewer642Ad Services643What's happening?Enhancement642643How does it work?Enhancement644645More integrationSummary645646Index647[ xx ]

PrefaceWhen you plan to build an amazing website based on a portal, you may commonlyconsider a lot of questions. Some of them might be: Are you planning to build a website with an open source enterprise portalsolution using SOA framework, ESB, and Web 2.0 technologies? Do you want to add collaborative tools, like Wikis, Blogs, Discussion Forums,Shared Calendar, RSS, mail, folksonomy and taxonomy, instant messaging,knowledge base, and tools for building social networking and Social Office inthe same website? Do you want to manage, publish (both locally and remotely), maintain andaudit web content, documents, and many other assets in the same website? Are you eager to integrate with LDAP, SSO, and third-party systems suchas JBoss jBPM, Drools, Solr, Alfresco, OpenX, Terracotta, Orbeon Forms,and Pentaho BI/Reporting in the same website?Liferay would be the best choice in terms of answering the above questions. LiferayPortal is one of the most mature portal frameworks in the market and offers theabove basic benefits. Liferay is backed by a comprehensive professional servicesnetwork, and it offers custom development, training, and support across the world.As the world's leading open source portal platform, Liferay provides a unified webinterface to data and tools scattered across many sources. Within Liferay Portal,a portal interface is composed of a number of portlets—self-contained interactiveelements that are written to a particular standard. Since portlets are developedindependently of the portal itself, and loosely coupled with the portal, they areapparently SOA (Service-Oriented Architecture).

PrefaceLiferay has a wide range of portlets freely available for things such as Blogs,Calendar, Document Library, Image Gallery, Mail, Message Boards, Polls, RSS feeds,Wiki, folksonomies and taxonomies, Auditing, Reporting, Rule base, Knowledgebase, and many others. Liferay Portal also ships with Liferay CMS (ContentManagement Systems) and WCM (Web Content Management), which provides alot of ECMS (Enterprise Content Management Systems) features. If you need a robustenterprise content management system then you can integrate it with Alfresco.Liferay is a good portal on top for small team collaboration. The data for events canbe specific to a small group within a company. In any organization, some data will berelevant at a team level—and other data, across the whole business. Liferay has verygood support for such things.As the world's leading open source enterprise portal solution, Liferay portal usesthe latest in Java, J2EE, and Web 2.0 technologies in order to deliver solutions toenterprises across both the public and private sectors. Meanwhile, Liferay CMSand WCM publish, manage, maintain and audit web content, documents, andother assets. In addition, Collaboration Suite takes advantage of the benefits ofthe virtualized work environment for collaboration; Social Office provides a socialcollaboration solution for the enterprise—full virtual workstation streamlinescommunication, saving you time, building group cohesion, and raising productivity.The best part of Social Office is that you don't need any IT intervention—all you haveto do is install and log in.This book is your complete guide to build an intranet with Liferay—assess yourneeds, install the software, start using it, deploy portlets, customize as per yourrequirements, and train users. The book focuses on leveraging the Liferay frameworkby configuring the XML files and the properties files without changing theunderlying Java code.What this book coversChapter 1: Introducing Liferay for Your Intranet introduces Liferay portal, CMS andWCM, collaboration, social networking, and Social Office.Chapter 2: Setting Up a Home Page and Navigation Structure for the Intranet discusseshow to implement a portal page with portlets. It also shows how to customize thelook and feel of pages and portlets through themes and look and feel preferences.It helps us understand the portal, portlet container, and portlet according to theJSR-286 specification—how to set up the portal, including installation options anddeployment matrix, how to configure the home page and all the other pages of theintranet website. Then it introduces us to building basic pages, as well as setting[2]

Prefaceup the portal pages. Going further, it discusses how to navigate the structure of theintranet via portlets, for example, Site Map, Breadcrumb, and Navigation. It alsoshows how to configure the portal, how to customize the Dock bar menu, and how toconfigure database and mail. Finally, it provides guidance to bring pages together inaction, to share any portlet with

Open SSO authentication 137 SiteMinder authentication 138 Authentication token 139: Roles 140 Adding a role 140: What's happening? 141: Managing roles 141: Viewing roles 141 Searching roles 142 Editing a role 142 Deleting roles 142 Assigning members 142 Using roles in an effective way 143