= Organization in GeoNetwork's domain model (originating from [http://nationaalgeoregister.nl Nationaal Georegister]) = || '''Date''' || 2009/09/03 || || '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Heikki Heikki Doeleman] || || '''Last edited''' || [[Timestamp]] || || '''Status''' || draft || || '''Assigned to release''' || 2.5 || || '''Resources''' || The work may be done in the NGR project || == Overview == In !GeoNetwork there is no concept of "Organization". In [http://nationaalgeoregister.nl NGR] and in [http://www.geocat.ch/ SwissTopo] the concept was needed and has been implemented as a small addition to the existing notion of "Group". It would be better, though, to not mix up those two concept and implement Organization as a first-class citizen in !GeoNetwork's domain model.[[BR]][[BR]] An Organizations page lists all the organizations in your !GeoNetwork node and provides a quick search link to search metadata by organization.[[BR]][[BR]] After [http://logs.qgis.org/geonetwork/%23geonetwork.2009-09-01.log this discussion on the IRC channel], I have made two class diagrams to be discussed, differing in how user roles are handled (see below). === Proposal Type === * '''Type''': GUI Change, Core Change * '''App''': !GeoNetwork * '''Module''': Data Manager, Group Manager, GUI === Links === * '''Email discussions''': on geonetwork-devel: [http://n2.nabble.com/Proposals-to-include-NGR-functionality-to-GeoNetwork-trunk-td3365623.html#a3365623 "Proposals to include NGR functionality to GeoNetwork trunk"] * '''IRC discussions''': [http://logs.qgis.org/geonetwork/%23geonetwork.2009-09-01.log September 1st, 2009 on GeoNetwork's IRC channel] === Voting History === * None as yet ---- == Motivations == The motivations for these changes are : '''1.''' The notion of Organization is lacking in !GeoNetwork's domain model[[BR]] '''2.''' The Organization Page gives more exposure to organizations publishing metadata and services, and improves search functionality[[BR]] == Proposal == The first class diagram extends my original proposal [here] in order to allow for "departments", i.e. an Organization that has a parent Organization. It also explicitly models the system groups "all", "intranet" and "guest", which are Groups but are not Organizations. The second class diagram builds on the first one but has the added feature that a User may have more than 1 combination. This combination is called a Participant. Every User is associated with at least one Participant. A Participant has 1 !UserRole and participates in 1 Group, and is the type of entity that can be logged in. This way, a User can act with more than one role in one or more Groups. A Group of course can have any number of Participants. The Organization page as it is in [http://nationaalgeoregister.nl NGR] is reprinted here: === Backwards Compatibility Issues === '''1.''' a database change is required. SQL script to update existing DBs will be available[[BR]] '''2.''' a database content change is required. A migration script to update existing DB's content will be available[[BR]] == Risks == == Participants == * As above