conversations.from: human
conversations.value: a title for a book about Java, OpenXava, Enterprise with the genre: Computers & Technology, Programming
conversations.from: assistant
conversations.value: A title for this book could be 'Rapid Java Web Development'
conversations.from: human
conversations.value: Give me the first five paragraphs for this book.
conversations.from: assistant
conversations.value: Rapid Java Web Development
  This way the Welcome portlet is easily filled with content. Only two little details remain: modifying the font size and inserting a suitable title (figure 13.22).
  Congratulations! You application is deployed in Liferay with a navigation structure and even a welcome page. Configuring this has been quite easy with the prebundled Liferay portlets. However, there still remains a small deficiency: everyone can access all the Invoicing modules. We're going to fix this in the next section.
  One of the best things about working with a portal is that you get a complete user management system running "for free". Therefore, we can start now to add the roles and users needed to configure the access control security of the application.
  Though Liferay allows granting rights directly to individual users, it's usually much better to configure access control security around roles, and to associate these roles with the individual users. Table 13.1 shows the roles we are going to define for the Invoicing application.
  Follow the instructions from figure 13.23 to add the roles Invoicing admin, Orderer, Seller and Customer.
conversations.from: human
conversations.value: Give me five more paragraphs.
conversations.from: assistant
conversations.value: Users with the Seller role can view invoices, but they cannot modify them or add new ones. Therefore, assigning the Invoices page to this role is not a valid solution, because the portlet there allows the user to modify and add invoices. We must add a new module to consult invoices. Edit the application.xml file of your project adding the module of listing 13.2.
  In this simple way we define a read-only module for Invoice. Now, redeploy your application and configure the security for this new module. During the course of this chapter you have learned how to do it. You have to:
  Here you see how to give each user type (role) different privileges. Just create modules with distinct capacities (distinct controllers) and assign them to the desired roles inside Liferay.
  Sometimes we want to limit not only the available functionality but also the data the user can see. For example, we can allow the customers to login, and see the list of their own orders, but obviously not the orders of other customers.
  We can achieve this by filtering the complete list using a condition which selects only orders which are associated with a given user id. Just add a new @Tab annotation to the Order entity, as shown in listing 13.3.
conversations.from: human
conversations.value: Give me the last four paragraphs.
conversations.from: assistant
conversations.value: In this chapter you have seen how to integrate your application into the Liferay portal. Navigation and access control security can be added to your application with no programming effort. Liferay is a very powerful tool and here we have only scratched its surface. I invite you to learn more in the documentation section of Liferay site6.
  The combination between OpenXava and Liferay offers you an enterprise grade tool to develop and deploy your applications.
  A complete reference of all syntax and semantic of OpenXava. It's included in the OpenXava distribution and in the wiki:
  The API documentation for all classes and annotations of OpenXava is included in OpenXava distribution and in the web site: