Closed duncan-brown closed 4 years ago
INSERT INTO `Author` VALUES (1,'Duncan',NULL,'Brown',50,1,'2019-01-30','dabrown','Duncan Brown');
INSERT INTO `RemoteUser` VALUES (1,'dabrown@syr.edu',1,'dabrown@syr.edu');
INSERT INTO `EmailUser` VALUES (1,'dabrown','','Duncan Brown','dabrown@syr.edu',0,'2019-01-30',1,1,1,1);
INSERT INTO `UsersGroup` VALUES (1,1,45,'2019-01-30');
DocDB API
We need to write an API that an use the underlying CRUD REST API that rest-dcc implements to add users to the DocDB database. We never delete a user from the DCC author table, so the API only needs to add.
Managing Users
To make life simpler, we will create a new extended type in COmanage which will map to the user's ID in the DocDB database. To do this, create a new extended type names
DccDocDBID
and use it to add a sequential identifier assignment, as shown below.We will then set DocDB's
Author/AuthorID
=RemoteUser/RemoteUserID
=EmailUser/EmailUserID
= COmanage'sDccDocDBID
to keep things simple.Managing Security Groups
We will use the COGroup to map users to the DocDB
SecurityGroup
. The COGroup name can map directly to theSecurityGroup/Name
since this does not contain spaces.Managing Institutions
We can't guarantee that a user enters anything sensible in their institutional organization field. InCommon doesn't require this to be released as an attribute, and users from the same place might use different name variants (e.g. Syracuse University, SU, Syracuse, etc.)
To get around this, we will create an Attribute Enumeration for
Organization (CO Person Role)
with specific organization names that map toInstitution/LongName
in the DocDB database, with a catch-all "Cosmic Explorer Consortium" institution. We will ask users for their organizational institution, but not use it. The COmanage admin can then manually create new attribute enumerations based on these and assign users to CO Person Organizations.DocDB Tables
The relevant tables in the DocDB database are:
Author
RemoteUser
EmailUser
UsersGroup
SecurityGroup
Institution