Author: rhirsch
Date: Sun Oct 25 08:13:47 2009
New Revision: 829509
URL: http://svn.apache.org/viewvc?rev=829509&view=rev
Log:
[ESME-87] The current access pool UI doesn't allow users to be deleted to an
access pool.
Patch from Xuefeng Wu applied
Modified:
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/AccessPoolMgr.scala
Modified:
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/AccessPoolMgr.scala
URL:
http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/AccessPoolMgr.scala?rev=829509&r1=829508&r2=829509&view=diff
==============================================================================
---
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/AccessPoolMgr.scala
(original)
+++
incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/AccessPoolMgr.scala
Sun Oct 25 08:13:47 2009
@@ -206,21 +206,29 @@
// get the current user
val user = User.currentUser
- def deleteUserFromPool(in: Privilege) {
- //Delete current admin only if admin permissions by other users exist
- if(in.permission.is == Permission.Admin ||
+ def validateDeleteUser(in: Privilege): Boolean = {
+ //Delete current admin only if admin permissions by other users exist
+ !(in.permission.is == Permission.Admin &&
Privilege.find(By(Privilege.pool, in.pool),
By(Privilege.permission,Permission.Admin),
NotBy(Privilege.user, in.user)).isEmpty)
- throw new Exception("No other admin users in pool!")
-
+ }
+ def deleteUserFromPool(in: Privilege) {
+ if(validateDeleteUser(in))
+ {
val userId = in.user.is
-
in.delete_!
-
Distributor ! Distributor.RefreshUser(userId)
}
+ else
+ throw new Exception("No other admin users in pool!")
+ }
+ def operationLinks(in: Privilege): NodeSeq = {
+ if (validateDeleteUser(in))
+ link("", () => deleteUserFromPool(in), Text("Delete"))//delete user
from pool
+ else NodeSeq.Empty
+ }
def doRender(): NodeSeq = {
val accessPool = AccessPool.find(By(AccessPool.id, poolId.is))
Privilege.findAll(By(Privilege.pool, poolId.is)) match {
@@ -231,7 +239,7 @@
"name" ->
User.find(i.user).map(
_.nickname.is).getOrElse(""),
"privilege" ->
i.permission.is.toString,
- "operations" -> link("", ()
=> deleteUserFromPool(i), Text("Delete"))//delete user from pool
+ "operations" ->
operationLinks(i)
))))
}
}