Adding role add/update/delete related changes

revert-70aa11f8
Ace 8 years ago
parent 6a580994fb
commit e5a4c0f795

@ -47,7 +47,7 @@
<div id="role-create-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<label class="wr-input-label">Domain *</label>
<label class="wr-input-label">User Store Domain</label>
<div class="wr-input-control">
<select id="domain" class="form-control select">
@ -106,6 +106,7 @@
</div>
</div>
<!-- /content -->
<div id="app-context" data-app-context="{{@app.context}}" class="hidden"></div>
</div>
</div>
<!-- /content/body -->

@ -31,6 +31,8 @@ function inputIsValid(regExp, inputString) {
var validateInline = {};
var clearInline = {};
var apiBasePath = "/api/device-mgt/v1.0";
var enableInlineError = function (inputField, errorMsg, errorSign) {
var fieldIdentifier = "#" + inputField;
var errorMsgIdentifier = "#" + inputField + " ." + errorMsg;
@ -113,12 +115,12 @@ function formatRepoSelection (user) {
}
$(document).ready(function () {
var appContext = $("#app-context").data("app-context");
$("#users").select2({
multiple:true,
tags: false,
ajax: {
url: window.location.origin + "/devicemgt/api/invoker/execute/",
url: appContext + "/api/invoker/execute/",
method: "POST",
dataType: 'json',
delay: 250,
@ -128,15 +130,17 @@ $(document).ready(function () {
data: function (params) {
var postData = {};
postData.actionMethod = "GET";
postData.actionUrl = "/devicemgt_admin/users/view-users?username=" + params.term;
postData.actionUrl = apiBasePath + "/users/search/usernames?filter=" + params.term;
postData.actionPayload = null;
return JSON.stringify(postData);
},
processResults: function (data, page) {
var newData = [];
$.each(data.responseContent, function (index, value) {
value.id = value.username;
newData.push(value);
$.each(data, function (index, value) {
var user = {};
user.username = value.username;
user.id = value.username;
newData.push(user);
});
return {
results: newData
@ -153,7 +157,7 @@ $(document).ready(function () {
/**
* Following click function would execute
* when a user clicks on "Add Role" button
* on Add Role page in WSO2 Devicemgt Console.
* on Add Role page in WSO2 MDM Console.
*/
$("button#add-role-btn").click(function() {
var rolenameInput = $("input#rolename");
@ -188,7 +192,7 @@ $(document).ready(function () {
}
addRoleFormData.users = users;
var addRoleAPI = "/devicemgt_admin/roles";
var addRoleAPI = apiBasePath + "/roles";
invokerUtil.post(
addRoleAPI,
@ -205,10 +209,10 @@ $(document).ready(function () {
//// Refreshing with success message
//$("#role-create-form").addClass("hidden");
//$("#role-created-msg").removeClass("hidden");
window.location.href = '/devicemgt/role/edit-permission/' + roleName + '?wizard=true';
window.location.href = appContext + '/role/edit-permission/' + roleName;
}
}, function (data) {
if (JSON.parse(data.responseText).errorMessage.indexOf("RoleExisting") > -1) {
if (JSON.parse(data).errorMessage.indexOf("RoleExisting") > -1) {
$(errorMsg).text("Role name : " + roleName + " already exists. Pick another role name.");
} else {
$(errorMsg).text(JSON.parse(data.responseText).errorMessage);

@ -78,6 +78,20 @@
</a>
</div>
</div>
<div id="child-deselect-error-content" class="hide">
<div class="content">
<div class="row">
<div class="col-lg-5 col-md-6 col-centered">
<h3>Can't deselect child permissions when parent permission is selected.</h3>
<div class="buttons">
<a href="#" id="child-deselect-error-link" class="btn-operations">
Ok
</a>
</div>
</div>
</div>
</div>
</div>
<!-- /content -->
</div>
</div>

@ -26,7 +26,7 @@ function onRequest(context) {
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
var uri = request.getRequestURI();
var uriMatcher = new URIMatcher(String(uri));
var isMatched = uriMatcher.match("/{context}/roles/edit-role-permission/{rolename}");
var isMatched = uriMatcher.match("/{context}/role/edit-permission/{rolename}");
if (isMatched) {
var matchedElements = uriMatcher.elements();

@ -31,6 +31,8 @@
var modalPopup = ".wr-modalpopup";
var modalPopupContent = modalPopup + " .modalpopup-content";
var apiBasePath = "/api/device-mgt/v1.0";
/*
* hide popup function.
*/
@ -96,29 +98,33 @@ $(document).ready(function () {
var listPartialSrc = $("#list-partial").attr("src");
var treeTemplateSrc = $("#tree-template").attr("src");
var roleName = $("#permissionList").data("currentrole");
var serviceUrl = "/devicemgt_admin/roles/permissions?rolename=" + encodeURIComponent(roleName);
var serviceUrl = apiBasePath + "/roles/" +encodeURIComponent(roleName)+"/permissions";
$.registerPartial("list", listPartialSrc, function(){
$.template("treeTemplate", treeTemplateSrc, function (template) {
invokerUtil.get(serviceUrl,
function(data){
data = JSON.parse(data);
var treeData = data.responseContent;
var treeData = data;
if(treeData.nodeList.length > 0){
treeData = { nodeList: treeData.nodeList };
var content = template(treeData);
$("#permissionList").html(content);
$("#permissionList").on("click", ".permissionTree .permissionItem", function() {
$("#permissionList").on("click", ".permissionTree .permissionItem", function(){
var parentValue = $(this).prop('checked');
$(this).closest("li").find("li input").each(function () {
$(this).prop('checked',parentValue);
});
});
}
$("#permissionList li input").click(function() {
$("#permissionList li input").click(function(){
var parentInput = $(this).parents("ul:eq(1) > li").find('input:eq(0)');
if(parentInput && parentInput.is(':checked')){
parentInput.prop('checked', false);
return true;
$(modalPopupContent).html($('#child-deselect-error-content').html());
showPopup();
$("a#child-deselect-error-link").click(function () {
hidePopup();
});
return false;
}
});
$('#permissionList').tree_view();
@ -135,24 +141,25 @@ $(document).ready(function () {
*/
$("button#update-permissions-btn").click(function() {
var roleName = $("#permissionList").data("currentrole");
var updateRolePermissionAPI = "/devicemgt_admin/roles?rolename=" + roleName;
var updateRolePermissionAPI = apiBasePath + "/roles/" + roleName;
var updateRolePermissionData = {};
var perms = [];
$("#permissionList li input:checked").each(function(){
perms.push($(this).data("resourcepath"));
});
})
updateRolePermissionData.permissions = perms;
invokerUtil.put(
updateRolePermissionAPI,
updateRolePermissionData,
function (jqXHR) {
if (JSON.parse(jqXHR).status == 200 || jqXHR.status == 200) {
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200) {
// Refreshing with success message
$("#role-create-form").addClass("hidden");
$("#role-created-msg").removeClass("hidden");
}
}, function (data) {
$(errorMsg).text(JSON.parse(data.responseText).errorMessage);
var payload = JSON.parse(data.responseText);
$(errorMsg).text(payload.message);
$(errorMsgWrapper).removeClass("hidden");
}
);
@ -162,4 +169,4 @@ $(document).ready(function () {
function get(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
}

@ -29,7 +29,7 @@
<div id="role-create-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
<label class="wr-input-label">Domain *</label>
<label class="wr-input-label">Domain</label>
<div class="wr-input-control">
<select id="domain" class="form-control select">
<option>PRIMARY</option>
@ -81,6 +81,7 @@
</div>
</div>
<!-- /content -->
<div id="app-context" data-app-context="{{@app.context}}" class="hidden"></div>
</div>
</div>
<!-- /content/body -->

@ -1,21 +1,3 @@
/*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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
* "AS IS" 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.
*/
/**
* Checks if provided input is valid against RegEx input.
*
@ -31,6 +13,8 @@ function inputIsValid(regExp, inputString) {
var validateInline = {};
var clearInline = {};
var apiBasePath = "/api/device-mgt/v1.0";
var enableInlineError = function (inputField, errorMsg, errorSign) {
var fieldIdentifier = "#" + inputField;
var errorMsgIdentifier = "#" + inputField + " ." + errorMsg;
@ -113,12 +97,12 @@ function formatRepoSelection (user) {
}
$(document).ready(function () {
var appContext = $("#app-context").data("app-context");
$("#users").select2({
multiple:true,
tags: false,
ajax: {
url: window.location.origin + "/devicemgt/api/invoker/execute/",
url: appContext + "/api/invoker/execute/",
method: "POST",
dataType: 'json',
delay: 250,
@ -128,7 +112,7 @@ $(document).ready(function () {
data: function (params) {
var postData = {};
postData.actionMethod = "GET";
postData.actionUrl = "/devicemgt_admin/users/view-users?username=" + params.term;
postData.actionUrl = apiBasePath + "/users/search/usernames?filter=" + params.term;
postData.actionPayload = null;
return JSON.stringify(postData);
},
@ -155,7 +139,7 @@ $(document).ready(function () {
/**
* Following click function would execute
* when a user clicks on "Add Role" button
* on Add Role page in WSO2 Devicemgt Console.
* on Add Role page in WSO2 MDM Console.
*/
$("button#add-role-btn").click(function() {
var rolenameInput = $("input#rolename");
@ -183,12 +167,12 @@ $(document).ready(function () {
addRoleFormData.roleName = domain + "/" + roleName;
}
var addRoleAPI = "/devicemgt_admin/roles?rolename=" + encodeURIComponent(currentRoleName);
var addRoleAPI = apiBasePath + "/roles/" + currentRoleName;
invokerUtil.put(
addRoleAPI,
addRoleFormData,
function (jqXHR) {
if (JSON.parse(jqXHR).status == 200 || jqXHR.status == 200) {
function (data, textStatus, jqXHR) {
if (jqXHR.status == 200) {
// Clearing user input fields.
$("input#rolename").val("");
$("#domain").val("");
@ -197,7 +181,8 @@ $(document).ready(function () {
$("#role-created-msg").removeClass("hidden");
}
}, function (data) {
$(errorMsg).text(JSON.parse(data.responseText).errorMessage);
var payload = JSON.parse(data.responseText);
$(errorMsg).text(payload.message);
$(errorMsgWrapper).removeClass("hidden");
}
);

@ -16,7 +16,7 @@
* under the License.
*/
var loadRoleBasedActionURL = function (action, rolename) {
var href = $("#ast-container").data("app-context") + "roles/" + action + "?rolename=" + rolename;
var href = $("#ast-container").data("app-context") + "role/" + action + "/" + rolename;
$(location).attr('href', href);
};
@ -113,13 +113,13 @@ function loadRoles(searchQuery) {
class: "text-right content-fill text-left-on-grid-view no-wrap",
data: null,
render: function ( data, type, row, meta ) {
return '<a onclick="javascript:loadRoleBasedActionURL(\'edit-role\', \'' + data.name + '\')" data-role="' + data.name +
return '<a onclick="javascript:loadRoleBasedActionURL(\'edit\', \'' + data.name + '\')" data-role="' + data.name +
'" data-click-event="edit-form" class="btn padding-reduce-on-grid-view edit-role-link"><span class="fw-stack fw-lg">' +
'<i class="fw fw-ring fw-stack-2x"></i><i class="fw fw-user fw-stack-1x"></i>' +
'<span class="fw-stack fw-move-right fw-move-bottom"><i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>' +
'<i class="fw fw-circle fw-stack-2x"></i><i class="fw fw-edit fw-stack-1x fw-inverse"></i></span></span>' +
'<span class="hidden-xs hidden-on-grid-view">Edit</span></a>' +
'<a onclick="javascript:loadRoleBasedActionURL(\'edit-role-permission\', \'' + data.name +
'<a onclick="javascript:loadRoleBasedActionURL(\'edit-permission\', \'' + data.name +
'\')" data-role="' + data.name + '" data-click-event="edit-form" class="btn padding-reduce-on-grid-view edit-permission-link">' +
'<span class="fw-stack fw-lg"><i class="fw fw-ring fw-stack-2x"></i><i class="fw fw-security-policy fw-stack-1x"></i>' +
'<span class="fw-stack fw-move-right fw-move-bottom"><i class="fw fw-circle fw-stack-2x fw-stroke fw-inverse"></i>' +

Loading…
Cancel
Save