============================ Introduction ============================ Why GeoPrisma -------------- We needed to make a Web mapping application with security on sensible datasets. This could have been accomplished with multiple applications and by putting a standard login+password access to them, but the project was too big and it would have been very complex to maintain. Adding a new dataset for example would require modifications of each application manually, adjustments of the security, etc. That's why we decided to develop our own Web mapping application that included access control on datasets using the OpenSource Web mapping applications availables. What is GeoPrisma ------------------ GeoPrisma is a Web mapping application featuring Access Control (Permissions) to geospacial data (Resources). A single Resource can be served by multiple different geodata servers (Services), such as WMS, TileCache, MapServer, FeatureServer, etc. Each combinaison of Service+Resource is called a DataStore. Theses Services, DataStore and Resources are defined in a configuration file. The communication to the Services is tunelled through a Proxy that is responsible of managing the Permissions, which correspond to a Role, a Resource and an Action. GeoPrisma also provides a mechanism for adaptive UI generation. Each UI feature (Widget) is selectively included or not, depending on the Permission the Resource it's linked to. Thereby, it allows the use of a single configuration file for all users in a project. The GeoPrisma UI wraps the features of the major FOSS JS libraries for mapping (OpenLayers, MapFish, GeoExt) and the Proxy can be easily made to interact with any geodata server. In summary ----------- In summary, the goals of GeoPrisma can be described in three major points : * **Security on Resources** with a combination of **Role+Resource+Action**. This triplet is called a **Permission**. * **Proxy** that authorize/deny access to Resources depending on your Permission on that Resource. It's also responsible of making requests to the Services a Resource uses. * **Dynamic User Interface** (UI) generated from a Template and Widgets associated to the Resources the User has access to. .. seealso:: :ref:`concepts-label`