You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by vd...@apache.org on 2009/11/20 23:20:14 UTC

svn commit: r882737 - in /incubator/esme/trunk/server/src/main/scala/org/apache/esme: lib/AccessPoolMgr.scala model/Privilege.scala

Author: vdichev
Date: Fri Nov 20 22:20:13 2009
New Revision: 882737

URL: http://svn.apache.org/viewvc?rev=882737&view=rev
Log:
ESME-69 Modified deletion of a user from a pool using another permission type

Modified:
    incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/AccessPoolMgr.scala
    incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Privilege.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=882737&r1=882736&r2=882737&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 Fri Nov 20 22:20:13 2009
@@ -176,7 +176,7 @@
      case d => Text(dateFormat.format(d))
    }
     
-    def disPlayUserName(uid: Long): NodeSeq = {
+    def displayUserName(uid: Long): NodeSeq = {
       User.find(uid) match {
         case Full(user) => <span>{user.nickname}</span>
         case _ => NodeSeq.Empty
@@ -188,9 +188,9 @@
         case Full(ap) => bind(
         "pool", in,
         "name" -> ap.getName,     
-        "creator" -> disPlayUserName(ap.creator),
+        "creator" -> displayUserName(ap.creator),
         "createdDate" -> getDateHtml(ap.createdDate),
-        "modifier" -> disPlayUserName(ap.modifier),
+        "modifier" -> displayUserName(ap.modifier),
         "lastModifyDate" -> getDateHtml(ap.lastModifyDate))
       case _ => NodeSeq.Empty
       }
@@ -206,40 +206,17 @@
     // get the current user
     val user = User.currentUser
 
-    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)
-    }
-    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
-    }
+      // Distributor ! Distributor.RefreshUser(userId)
     def doRender(): NodeSeq = {
     val accessPool = AccessPool.find(By(AccessPool.id, poolId.is))  
-    Privilege.findAll(By(Privilege.pool, poolId.is)) match {
+    Privilege.findAll(By(Privilege.pool, poolId.is), NotBy(Privilege.permission, Permission.Denied)) match {
       case Nil => NodeSeq.Empty
       case xs => bind("pool", in,
                       "user" -> 
                       (lst => xs.flatMap(i => bind("user", lst,
                                                    "name" -> User.find(i.user).map(
                                                              _.nickname.is).getOrElse(""),
-                                                   "privilege" -> i.permission.is.toString,
-                                                   "operations" -> operationLinks(i)  
+                                                   "privilege" -> i.permission.is.toString
                       ))))
     }
     }

Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Privilege.scala
URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Privilege.scala?rev=882737&r1=882736&r2=882737&view=diff
==============================================================================
--- incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Privilege.scala (original)
+++ incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Privilege.scala Fri Nov 20 22:20:13 2009
@@ -59,12 +59,14 @@
   
   def findViewablePools(userId: Long): Set[Long] =
   Set(Privilege.findMap(
-    By(Privilege.user, userId)
+    By(Privilege.user, userId),
+    NotBy(Privilege.permission, Permission.Denied)
   )(p => Full(p.pool.is)) :_*)
 
   def findWritablePools(userId: Long): Set[Long] = Set(Privilege.findMap(
     By(Privilege.user, userId),
-    NotBy(Privilege.permission, Permission.Read)
+    NotBy(Privilege.permission, Permission.Read),
+    NotBy(Privilege.permission, Permission.Denied)
   )(p => Full(p.pool.is)) :_*)
 
   def findAdminPools(userId: Long): Set[Long] = Set(Privilege.findMap(
@@ -92,5 +94,6 @@
   val Read = Value(0, "Read")
   val Write = Value(1, "Write")
   val Admin = Value(2, "Admin")
+  val Denied = Value(3, "Denied")
 }