You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by an...@apache.org on 2017/08/24 11:29:33 UTC
ranger git commit: RANGER-1726 : Users are not getting deleted when
Knox proxy is Enabled
Repository: ranger
Updated Branches:
refs/heads/master 053cdd7b7 -> 18a47ed4b
RANGER-1726 : Users are not getting deleted when Knox proxy is Enabled
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/18a47ed4
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/18a47ed4
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/18a47ed4
Branch: refs/heads/master
Commit: 18a47ed4b8ea910a2c93c8707a0128f9b2af6ce5
Parents: 053cdd7
Author: Nikhil P <ni...@gmail.com>
Authored: Tue Aug 22 12:03:02 2017 +0530
Committer: Ankita Sinha <an...@apache.org>
Committed: Thu Aug 24 16:59:09 2017 +0530
----------------------------------------------------------------------
.../java/org/apache/ranger/biz/XUserMgr.java | 2 +-
.../java/org/apache/ranger/rest/XUserREST.java | 35 +++++++++
.../webapp/scripts/model_bases/VXGroupBase.js | 3 +-
.../webapp/scripts/model_bases/VXUserBase.js | 3 +-
.../scripts/views/users/UserTableLayout.js | 79 +++++++++++++-------
5 files changed, 91 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ranger/blob/18a47ed4/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index 1ae1659..447aebb 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -1906,7 +1906,7 @@ public class XUserMgr extends XUserMgrBase {
}
}
- public void deleteXUser(Long id, boolean force) {
+ public synchronized void deleteXUser(Long id, boolean force) {
checkAdminAccess();
XXUserDao xXUserDao = daoManager.getXXUser();
XXUser xXUser = xXUserDao.getById(id);
http://git-wip-us.apache.org/repos/asf/ranger/blob/18a47ed4/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 6e9161e..739ea05 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
@@ -1026,6 +1026,7 @@ public class XUserREST {
return vXStringList;
}
+
@DELETE
@Path("/secure/users/delete")
@Produces({ "application/xml", "application/json" })
@@ -1046,6 +1047,7 @@ public class XUserREST {
}
}
+
@DELETE
@Path("/secure/groups/delete")
@Produces({ "application/xml", "application/json" })
@@ -1066,4 +1068,37 @@ public class XUserREST {
}
}
}
+
+ @DELETE
+ @Path("/secure/users/{userName}")
+ @Produces({ "application/xml", "application/json" })
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public void deleteSingleUserByUserName(@Context HttpServletRequest request, @PathParam("userName") String userName) {
+ String forceDeleteStr = request.getParameter("forceDelete");
+ boolean forceDelete = false;
+ if (StringUtils.isNotEmpty(forceDeleteStr) && "true".equalsIgnoreCase(forceDeleteStr)) {
+ forceDelete = true;
+ }
+
+ if (StringUtils.isNotEmpty(userName)) {
+ VXUser vxUser = xUserService.getXUserByUserName(userName);
+ xUserMgr.deleteXUser(vxUser.getId(), forceDelete);
+ }
+ }
+
+ @DELETE
+ @Path("/secure/groups/{groupName}")
+ @Produces({ "application/xml", "application/json" })
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public void deleteSingleGroupByGroupName(@Context HttpServletRequest request, @PathParam("groupName") String groupName) {
+ String forceDeleteStr = request.getParameter("forceDelete");
+ boolean forceDelete = false;
+ if (StringUtils.isNotEmpty(forceDeleteStr) && "true".equalsIgnoreCase(forceDeleteStr)) {
+ forceDelete = true;
+ }
+ if (StringUtils.isNotEmpty(groupName)) {
+ VXGroup vxGroup = xGroupService.getGroupByGroupName(groupName.trim());
+ xUserMgr.deleteXGroup(vxGroup.getId(), forceDelete);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/ranger/blob/18a47ed4/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 96e0946..b86120b 100644
--- a/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js
+++ b/security-admin/src/main/webapp/scripts/model_bases/VXGroupBase.js
@@ -89,10 +89,9 @@ define(function(require){
this.modelName = 'VXGroupBase';
},
deleteGroups : function(groupNameValues, options){
- var url = this.urlRoot + '/delete?forceDelete=true';
+ var url = this.urlRoot+'/'+ groupNameValues + '?forceDelete=true';
options = _.extend({
- data : JSON.stringify(groupNameValues),
contentType : 'application/json',
dataType : 'json',
http://git-wip-us.apache.org/repos/asf/ranger/blob/18a47ed4/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 db6d511..c4a0d6c 100644
--- a/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js
+++ b/security-admin/src/main/webapp/scripts/model_bases/VXUserBase.js
@@ -43,9 +43,8 @@ define(function(require){
},
deleteUsers : function(userNameValues,options){
- var url = this.urlRoot + '/delete?forceDelete=true';
+ var url = this.urlRoot +'/'+ userNameValues +'?forceDelete=true';
options = _.extend({
- data : JSON.stringify(userNameValues),
contentType : 'application/json',
dataType : 'json',
}, options);
http://git-wip-us.apache.org/repos/asf/ranger/blob/18a47ed4/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 8e465d7..17bde37 100644
--- a/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/users/UserTableLayout.js
@@ -520,38 +520,65 @@ define(function(require){
XAUtil.blockUI();
if(that.showUsers){
var model = new VXUser();
- model.deleteUsers(jsonUsers,{
- success: function(response,options){
- XAUtil.blockUI('unblock');
- that.collection.getFirstPage({fetch:true});
- XAUtil.notifySuccess('Success','User deleted successfully!');
- that.collection.selected = {};
- },
- error:function(response,options){
- XAUtil.blockUI('unblock');
- XAUtil.notifyError('Error', 'Error deleting User!');
- }
- });
- }
- else {
+ 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)
+ }
+ });
+ });
+ }else {
var model = new VXGroup();
- model.deleteGroups(jsonUsers,{
- success: function(response){
- XAUtil.blockUI('unblock');
- that.groupList.getFirstPage({fetch:true});
- XAUtil.notifySuccess('Success','Group deleted successfully!');
- that.groupList.selected = {};
- },
- error:function(response,options){
- XAUtil.blockUI('unblock');
- XAUtil.notifyError('Error', 'Error deleting Group!');
- }
- });
+ 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)
+ }
+ })
+ });
}
}
});
}
},
+ userCollection : function(numberOfUser, count, notDeletedUserName){
+ if(count == numberOfUser){
+ this.collection.getFirstPage({fetch:true});
+ this.collection.selected = {};
+ XAUtil.blockUI('unblock');
+ if(notDeletedUserName === ""){
+ XAUtil.notifySuccess('Success','User deleted successfully!');
+ }else{
+ XAUtil.notifyError('Error', 'Error occurred during deleting Users: '+ notDeletedUserName.slice(0 , -2));
+ }
+ }
+ },
+ groupCollection : function(numberOfGroup, count ,notDeletedGroupName){
+ if(count == numberOfGroup){
+ this.groupList.getFirstPage({fetch:true});
+ this.groupList.selected = {};
+ XAUtil.blockUI('unblock');
+ if(notDeletedGroupName === ""){
+ XAUtil.notifySuccess('Success','User deleted successfully!');
+ } else {
+ XAUtil.notifyError('Error', 'Error occurred during deleting Groups: '+ notDeletedGroupName.slice(0 , -2));
+ }
+ }
+ },
addVisualSearch : function(){
var that = this;
var coll,placeholder;