X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fvalidation.py;h=a081ffa449b761ce3f1f5b4e58b43be7a2798163;hp=a244ac11e17238cfb653391065e028d6d602f667;hb=cf042d30e8b7a1a9cbd1b2064e83c5d20ffcec9b;hpb=38dcfeb4a5d8c8da65b9ee2d2c2f58bc6164f6bf diff --git a/osm_nbi/validation.py b/osm_nbi/validation.py index a244ac1..a081ffa 100644 --- a/osm_nbi/validation.py +++ b/osm_nbi/validation.py @@ -566,16 +566,35 @@ pdu_edit_schema = { } # USERS -project_role_mapping = { - "title": "", +project_role_mappings = { + "title": "list pf projects/roles", "$schema": "http://json-schema.org/draft-04/schema#", - "type": "object", - "properties": { - "project": shortname_schema, - "role": shortname_schema + "type": "array", + "items": { + "type": "object", + "properties": { + "project": shortname_schema, + "role": shortname_schema + }, + "required": ["project", "role"], + "additionalProperties": False }, - "required": ["project", "role"], - "additionalProperties": False + "minItems": 1 +} +project_role_mappings_optional = { + "title": "list of projects/roles or projects only", + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "array", + "items": { + "type": "object", + "properties": { + "project": shortname_schema, + "role": shortname_schema + }, + "required": ["project"], + "additionalProperties": False + }, + "minItems": 1 } user_new_schema = { "$schema": "http://json-schema.org/draft-04/schema#", @@ -585,11 +604,7 @@ user_new_schema = { "username": shortname_schema, "password": passwd_schema, "projects": nameshort_list_schema, - "project_role_mappings": { - "type": "array", - "items": project_role_mapping, - "minItems": 1 - }, + "project_role_mappings": project_role_mappings, }, "required": ["username", "password"], "additionalProperties": False @@ -607,11 +622,9 @@ user_edit_schema = { array_edition_schema ] }, - "project_role_mappings": { - "type": "array", - "items": project_role_mapping, - "minItems": 1 - }, + "project_role_mappings": project_role_mappings, + "add_project_role_mappings": project_role_mappings, + "remove_project_role_mappings": project_role_mappings_optional, }, "minProperties": 1, "additionalProperties": False