airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject airavata git commit: Further updates to user model - AIRAVATA-1016
Date Sun, 12 Jun 2016 22:48:28 GMT
Repository: airavata
Updated Branches:
  refs/heads/develop d244ac7b6 -> df0df1007


Further updates to user model - AIRAVATA-1016


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/df0df100
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/df0df100
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/df0df100

Branch: refs/heads/develop
Commit: df0df1007a364050432629a69ce8db0e3061c8c6
Parents: d244ac7
Author: Suresh Marru <smarru@apache.org>
Authored: Sun Jun 12 18:48:23 2016 -0400
Committer: Suresh Marru <smarru@apache.org>
Committed: Sun Jun 12 18:48:23 2016 -0400

----------------------------------------------------------------------
 .../user-group-models/user_profile_model.thrift | 146 +++++++++++++++----
 1 file changed, 119 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/df0df100/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
b/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
index a0abaed..e0c939d 100644
--- a/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
+++ b/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
@@ -18,6 +18,8 @@
  *
  */
 
+ include "../../airavata-apis/airavata_commons.thrift"
+
  namespace java org.apache.airavata.model.user
  namespace php Airavata.Model.User
  namespace cpp apache.airavata.model.user
@@ -42,33 +44,79 @@ enum Status {
     EXPIRED
 }
 
-struct Publication {
-    1: optional string numCitations,
-    2: optional string name
+/**
+ * U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
+ *
+*/
+enum USCitizenship {
+    US_CITIZEN,
+    US_PERMANENT_RESIDENT,
+    OTHER_NON_US_CITIZEN
+}
+
+/**
+ * Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
+ *  Central American, or other Spanish culture or origin, regardless of race.
+ *
+*/
+enum ethnicity {
+    HISPANIC_LATINO,
+    NOT_HISPANIC_LATINO
 }
 
-struct Institution {
-    1: optional bool verified
+/**
+ * Asian - a person having origins in any of the original peoples of the Far East,
+ *      Southeast Asia, or the Indian subcontinent including, for example, Cambodia,
+  *      China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands,
+  *      Thailand, and Vietnam.
+ * American Indian or Alaskan Native - a person having origins in any of the original
+  *     peoples of North and South America (including Central America), and who maintains
+   *     tribal affiliation or community attachment.
+ * Black or African American - a person having origins in any of the black racial groups
+ *      of Africa.
+ * Native Hawaiian or Pacific Islander - a person having origins in any of the original
+ *      peoples of Hawaii, Guan, Samoa, or other Pacific Islands.
+ * White - a person having origins in any of the original peoples of Europe, the Middle East,
or North Africa.
+ *
+*/
+enum race {
+    ASIAN,
+    AMERICAN_INDIAN_OR_ALASKAN_NATIVE,
+    BLACK_OR_AFRICAN_AMERICAN,
+    NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER,
+    WHITE
 }
 
-struct Award {
-    1: optional string id,
-    2: optional string piLastName,
-    3: optional string title,
-    4: optional string awardeeName,
-    5: optional string piFirstName,
-    6: optional string awardeeStateCode,
-    7: optional string agency,
-    8: optional string date,
-    9: optional string fundsObligatedAmt,
-    10: optional string publicAccessMandate,
-    11: optional string awardeeCity
+enum disability {
+    HEARING_IMAPAIRED,
+    VISUAL_IMPAIRED,
+    MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT,
+    OTHER_IMPAIRMENT
 }
 
+/**
+ * A structure holding the NSF Demographic information.
+ *
+ *
+*/
+struct NSFDemographics {
+    1: optional string gender,
+    2: optional USCitizenship usCitizenship,
+    3: optional list<ethnicity> ethnicities,
+    4: optional list<race> races,
+    5: optional list<disability> disabilities
+}
 
 /**
  * A structure holding the user profile and its child models.
  *
+ * Notes:
+ *  The model does not include passwords as it is assumed an external identity provider is
used to authenticate user.
+ *  References:
+ *     NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
+ *     LDAP Schema - https://tools.ietf.org/html/rfc4519
+ *     SCIM 2.0 - https://tools.ietf.org/html/rfc7643
+ *
  * userModelVersion:
  *  Version number of profile
  *
@@ -76,17 +124,61 @@ struct Award {
  *  internal to Airavata, not intended to be used outside of the Airavata platform or possibly
by gateways
  *  (that is, never shown to users), never reassigned, REQUIRED
  *
+ * userId:
+ *  Externally assertable unique identifier. SAML (primarly in higher education, academic)
tends to keep
+ *   user name less opaque. OpenID Connect maintains them to be opaque.
+ *
+ * emails:
+ *   Email identifier are Verified, REQUIRED and MULTIVALUED
+ *
+ * userName:
+ *  Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a
string.
+ *   In the future these can be enumerated as:
+     *   Official name (as asserted possibly by some external identity provider)
+     *   Prefered name (as asserted or suggested by user directly)
+     *   Components:
+     *      givenName
+     *      surname (familyName)
+     *      displayName (often asserted by user to handle things like middle names, suffix,
prefix, and the like)
+ *
+ * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
+ *
+ * phones: Telephone MULTIVALUED
+ *
+ * country: Country of Residance
+ *
+ * nationality Countries of citizenship
+ *
+ * comments:
+ *   Free-form information (treated as opaque by Airavata and simply passed to resource).
+ *
+ * labeledURI:
+   * Google Scholar, Web of Science, ACS, e.t.c
+ *
+ * timeZone:
+ *  User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
+ *
 */
 
 struct UserProfile {
-    1: optional string userModelVersion = USER_PROFILE_VERSION,
-    2: optional string airavataInternalUserId = "DO_NOT_ADD_AT_CLIENT",
-    3: optional string
-    3: optional string email,
-    4: optional string name,
-    5: optional i64 tier,
-    6: optional list<Publication> publications,
-    7: optional list<Award> funding,
-    8: optional Institution institution,
-    9: optional string fundingID
+    1: required string userModelVersion = USER_PROFILE_VERSION,
+    2: required string airavataInternalUserId = airavata_commons.DEFAULT_ID,
+    3: required string userId,
+    4: required list<string> emails,
+    5: optional string userName,
+    6: optional string orcidId,
+    7: optional list<string> phones,
+    8: optional string country,
+    9: optional list<string> nationality,
+    10: optional string homeOrganization,
+    11: optional string orginationAffiliation,
+    12: required string creationTime,
+    13: required string lastAccessTime,
+    14: required string validUntil,
+    15: required Status State,
+    16: optional string comments,
+    17: optional list<string> labeledURI,
+    18: optional string gpgKey,
+    19: optional string timeZone,
+    20: optional NSFDemographics nsfDemographics
 }
\ No newline at end of file


Mime
View raw message