fix bug 823; fix bug 800
Change-Id: Idafe6cd3ab8db26cb763be9f334809429dbec913
Signed-off-by: lombardofr <lombardo@everyup.it>
diff --git a/rolehandler/templates/modal/role_create.html b/rolehandler/templates/modal/role_create.html
index d8282a7..bd734ad 100644
--- a/rolehandler/templates/modal/role_create.html
+++ b/rolehandler/templates/modal/role_create.html
@@ -1,3 +1,18 @@
+<!--
+Copyright 2019 EveryUP srl
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
<div class="modal" id="modal_new_role" xmlns="http://www.w3.org/1999/html">
<div class="modal-dialog">
<div class="modal-content">
@@ -19,18 +34,12 @@
</div>
</div>
+
<div class="form-group">
+ <label for="permissions" class="col-sm-3 control-label">Permissions </label>
<div class="col-sm-6">
- <div class="checkbox">
- <label><input type="checkbox" id="create_root" name="root"> Root</label>
- </div>
- </div>
- </div>
- <div class="form-group">
- <label for="definition" class="col-sm-3 control-label">Definition </label>
- <div class="col-sm-6">
- <textarea class="form-control" id="definition" name="definition" placeholder="Yaml definition"
- rows="3"></textarea>
+ <textarea class="form-control" id="permissions" name="permissions" placeholder="Yaml permissions"
+ rows="10"></textarea>
</div>
</div>
diff --git a/rolehandler/templates/modal/role_edit.html b/rolehandler/templates/modal/role_edit.html
index ca3c4c0..515073b 100644
--- a/rolehandler/templates/modal/role_edit.html
+++ b/rolehandler/templates/modal/role_edit.html
@@ -1,3 +1,18 @@
+<!--
+Copyright 2019 EveryUP srl
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
<div class="modal" id="modal_edit_role" xmlns="http://www.w3.org/1999/html">
<div class="modal-dialog">
<div class="modal-content">
@@ -21,19 +36,12 @@
</div>
</div>
- <div class="form-group">
- <div class="col-sm-6">
- <div class="checkbox">
- <label><input type="checkbox" id="edit_root" name="root"> Root</label>
- </div>
- </div>
- </div>
<div class="form-group">
- <label for="definition" class="col-sm-3 control-label">Definition </label>
+ <label for="permissions" class="col-sm-3 control-label">Permissions </label>
<div class="col-sm-6">
- <textarea class="form-control" id="edit_definition" name="definition" placeholder="Yaml definition"
- rows="3"></textarea>
+ <textarea class="form-control" id="edit_permissions" name="permissions" placeholder="Yaml permissions"
+ rows="10"></textarea>
</div>
</div>
diff --git a/rolehandler/views.py b/rolehandler/views.py
index a13e28d..2537175 100644
--- a/rolehandler/views.py
+++ b/rolehandler/views.py
@@ -44,17 +44,16 @@
client = Client()
role_data ={
'name': request.POST['name'],
- 'root': True if request.POST.get('root') else False
}
try:
- if 'definition' in request.POST and request.POST.get('definition') != '':
- role_definition = yaml.load(request.POST.get('definition'))
+ if 'permissions' in request.POST and request.POST.get('permissions') != '':
+ role_permissions = yaml.load(request.POST.get('permissions'))
- if not isinstance(role_definition, dict):
- raise ValueError('Role definition should be provided in a key-value fashion')
- for key, value in role_definition.items():
+ if not isinstance(role_permissions, dict):
+ raise ValueError('Role permissions should be provided in a key-value fashion')
+ for key, value in role_permissions.items():
if not isinstance(value, bool):
- raise ValueError('Value in a role definition should be boolean')
+ raise ValueError("Value of '{}' in a role permissionss should be boolean".format(key))
role_data[key] = value
except Exception as e:
return __response_handler(request, {'status': 400, 'code': 'BAD_REQUEST', 'detail': e.message} , url=None, status=400)
@@ -86,19 +85,17 @@
user = osmutils.get_user(request)
client = Client()
payload = {
- '_id': role_id,
'name': request.POST['name'],
- 'root': True if request.POST.get('root') else False
}
try:
- if 'definition' in request.POST and request.POST.get('definition') != '':
- role_definition = yaml.load(request.POST.get('definition'))
+ if 'permissions' in request.POST and request.POST.get('permissions') != '':
+ role_permissions = yaml.load(request.POST.get('permissions'))
- if not isinstance(role_definition, dict):
- raise ValueError('Role definition should be provided in a key-value fashion')
- for key, value in role_definition.items():
+ if not isinstance(role_permissions, dict):
+ raise ValueError('Role permissions should be provided in a key-value fashion')
+ for key, value in role_permissions.items():
if not isinstance(value, bool):
- raise ValueError('Value in a role definition should be boolean')
+ raise ValueError('Value in a role permissions should be boolean')
payload[key] = value
except Exception as e:
return __response_handler(request, {'status': 400, 'code': 'BAD_REQUEST', 'detail': e.message} , url=None, status=400)
@@ -126,8 +123,7 @@
result = {
'_id': role['_id'],
'name': role['name'],
- 'root': role['root'],
- 'definition': { key:value for key, value in role.items() if key not in ['_id', 'name', 'root', '_admin'] }
+ 'permissions': { key:value for key, value in role['permissions'].items() if key not in ['_id', 'name', 'root', '_admin'] }
}
return __response_handler(request, result, url=None, status=200)