Repository: ranger Updated Branches: refs/heads/master 11bf91527 -> 23046e9e8
RANGER-1819: Not able to delete group that is having special character(ampersand) from ranger admin Signed-off-by: Mehul Parikh <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/23046e9e Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/23046e9e Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/23046e9e Branch: refs/heads/master Commit: 23046e9e81941060df0faa76984a64832a42f516 Parents: 11bf915 Author: ni3galave <[email protected]> Authored: Wed Oct 4 15:18:41 2017 +0530 Committer: Mehul Parikh <[email protected]> Committed: Wed Oct 4 16:59:11 2017 +0530 ---------------------------------------------------------------------- .../java/org/apache/ranger/rest/XUserREST.java | 36 ++++++++++++-- .../webapp/scripts/model_bases/VXGroupBase.js | 10 ++-- .../webapp/scripts/model_bases/VXUserBase.js | 4 +- .../scripts/views/users/UserTableLayout.js | 51 ++++++++++---------- .../authentication/PasswordValidator.java | 2 +- 5 files changed, 66 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/23046e9e/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java b/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java index 5a58346..a07c243 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java @@ -354,7 +354,7 @@ public class XUserREST { SearchCriteria searchCriteria = searchUtil.extractCommonCriterias( request, xUserService.sortFields); String userName = null; - if(request != null && request.getUserPrincipal() != null){ + if (request.getUserPrincipal() != null){ userName = request.getUserPrincipal().getName(); } searchUtil.extractString(request, searchCriteria, "name", "User name",null); @@ -370,7 +370,7 @@ public class XUserREST { if (!(searchCriteria.getParamList().containsKey("name"))) { searchCriteria.addParam("name", userName); } - else if ((searchCriteria.getParamList().containsKey("name")) && userName.contains((String) searchCriteria.getParamList().get("name"))) { + else if ((searchCriteria.getParamList().containsKey("name")) && userName!= null && userName.contains((String) searchCriteria.getParamList().get("name"))) { searchCriteria.addParam("name", userName); } else { @@ -1122,4 +1122,34 @@ public class XUserREST { xUserMgr.deleteXGroup(vxGroup.getId(), forceDelete); } } -} + + @DELETE + @Path("/secure/users/id/{userId}") + @Produces({ "application/xml", "application/json" }) + @PreAuthorize("hasRole('ROLE_SYS_ADMIN')") + public void deleteSingleUserByUserId(@Context HttpServletRequest request, @PathParam("userId") Long userId) { + String forceDeleteStr = request.getParameter("forceDelete"); + boolean forceDelete = false; + if (StringUtils.isNotEmpty(forceDeleteStr) && "true".equalsIgnoreCase(forceDeleteStr)) { + forceDelete = true; + } + if (userId != null) { + xUserMgr.deleteXUser(userId, forceDelete); + } + } + + @DELETE + @Path("/secure/groups/id/{groupId}") + @Produces({ "application/xml", "application/json" }) + @PreAuthorize("hasRole('ROLE_SYS_ADMIN')") + public void deleteSingleGroupByGroupId(@Context HttpServletRequest request, @PathParam("groupId") Long groupId) { + String forceDeleteStr = request.getParameter("forceDelete"); + boolean forceDelete = false; + if (StringUtils.isNotEmpty(forceDeleteStr) && "true".equalsIgnoreCase(forceDeleteStr)) { + forceDelete = true; + } + if (groupId != null) { + xUserMgr.deleteXGroup(groupId, forceDelete); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ranger/blob/23046e9e/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js b/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js index b86120b..fce4cf6 100644 --- a/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js +++ b/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js @@ -88,14 +88,12 @@ define(function(require){ initialize: function() { this.modelName = 'VXGroupBase'; }, - deleteGroups : function(groupNameValues, options){ - var url = this.urlRoot+'/'+ groupNameValues + '?forceDelete=true'; - - options = _.extend({ + deleteGroups : function(groupId, options){ + var url = this.urlRoot + '/id/' + groupId + '?forceDelete=true'; + options = _.extend({ contentType : 'application/json', dataType : 'json', - - }, options); + }, options); return this.constructor.nonCrudOperation.call(this, url, 'DELETE', options); }, http://git-wip-us.apache.org/repos/asf/ranger/blob/23046e9e/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js b/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js index c4a0d6c..5f59874 100644 --- a/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js +++ b/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js @@ -42,8 +42,8 @@ define(function(require){ this.modelName = 'VXUserBase'; }, - deleteUsers : function(userNameValues,options){ - var url = this.urlRoot +'/'+ userNameValues +'?forceDelete=true'; + deleteUsers : function(userId,options){ + var url = this.urlRoot + '/id/' + userId +'?forceDelete=true'; options = _.extend({ contentType : 'application/json', dataType : 'json', http://git-wip-us.apache.org/repos/asf/ranger/blob/23046e9e/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js index 65a1d18..9febd99 100644 --- a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js +++ b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js @@ -485,15 +485,16 @@ define(function(require){ var message = ''; collection.each(function(obj){ if(obj.selected){ - selArr.push(obj.get('name')); + selArr.push({"value" : obj.get('name') , "id" : obj.get('id')}); } }); var vXStrings = []; var jsonUsers = {}; for(var i in selArr) { - var item = selArr[i]; + var itemName = selArr[i].value , itemId = selArr[i].id; vXStrings.push({ - "value" : item, + "value" : itemName, + "id" : itemId }); } jsonUsers.vXStrings = vXStrings; @@ -522,33 +523,33 @@ define(function(require){ var model = new VXUser(); var count = 0 , notDeletedUserName = ""; _.map(jsonUsers.vXStrings , function(m){ - model.deleteUsers(m.value,{ - success: function(response,options){ - count += 1; - that.userCollection(jsonUsers.vXStrings.length, count, notDeletedUserName) - }, - error:function(response,options){ - count += 1; - notDeletedUserName += m.value + ", "; - that.userCollection(jsonUsers.vXStrings.length, count, notDeletedUserName) - } - }); + model.deleteUsers(m.id,{ + success: function(response,options){ + count += 1; + that.userCollection(jsonUsers.vXStrings.length, count, notDeletedUserName) + }, + error:function(response,options){ + count += 1; + notDeletedUserName += m.value + ", "; + that.userCollection(jsonUsers.vXStrings.length, count, notDeletedUserName) + } + }); }); }else { var model = new VXGroup(); var count = 0, notDeletedGroupName =""; _.map(jsonUsers.vXStrings, function(m){ - model.deleteGroups(m.value,{ - success: function(response){ - count += 1; - that.groupCollection(jsonUsers.vXStrings.length,count,notDeletedGroupName) - }, - error:function(response,options){ - count += 1; - notDeletedGroupName += m.value + ", "; - that.groupCollection(jsonUsers.vXStrings.length,count, notDeletedGroupName) - } - }) + model.deleteGroups(m.id,{ + success: function(response){ + count += 1; + that.groupCollection(jsonUsers.vXStrings.length,count,notDeletedGroupName) + }, + error:function(response,options){ + count += 1; + notDeletedGroupName += m.value + ", "; + that.groupCollection(jsonUsers.vXStrings.length,count, notDeletedGroupName) + } + }) }); } } http://git-wip-us.apache.org/repos/asf/ranger/blob/23046e9e/unixauthservice/src/main/java/org/apache/ranger/authentication/PasswordValidator.java ---------------------------------------------------------------------- diff --git a/unixauthservice/src/main/java/org/apache/ranger/authentication/PasswordValidator.java b/unixauthservice/src/main/java/org/apache/ranger/authentication/PasswordValidator.java index d3e25fe..59cc914 100644 --- a/unixauthservice/src/main/java/org/apache/ranger/authentication/PasswordValidator.java +++ b/unixauthservice/src/main/java/org/apache/ranger/authentication/PasswordValidator.java @@ -114,7 +114,7 @@ public class PasswordValidator implements Runnable { if (userName != null && writer != null ) { String res = "FAILED: unable to validate due to error " + t.getMessage(); writer.println(res); - LOG.error("Response [" + res + "] for user: " + userName+","+ t.getMessage()); + LOG.error("Response [" + res + "] for user: " + userName+", "+ t.getMessage()); } } finally {
