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/04/23 20:20:35 UTC
svn commit: r768001 - in
/incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme:
api/RestAPI.scala model/AccessPool.scala
Author: vdichev
Date: Thu Apr 23 18:20:34 2009
New Revision: 768001
URL: http://svn.apache.org/viewvc?rev=768001&view=rev
Log:
ESME-57 Add AccessPool realm and validation for duplicate name.
Modified:
incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/api/RestAPI.scala
incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/AccessPool.scala
Modified: incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/api/RestAPI.scala
URL: http://svn.apache.org/viewvc/incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/api/RestAPI.scala?rev=768001&r1=768000&r2=768001&view=diff
==============================================================================
--- incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/api/RestAPI.scala (original)
+++ incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/api/RestAPI.scala Thu Apr 23 18:20:34 2009
@@ -346,8 +346,9 @@
def addPool(poolName: String): LiftResponse = {
val r: Box[Boolean] =
for (user <- User.currentUser;
- pool = AccessPool.create.name(poolName).saveMe;
- privilegeSaved = Privilege.create.pool(pool).user(user).permission(Permission.Admin).save
+ pool <- AccessPool.create.realm("Native").setName(poolName);
+ privilegeSaved = Privilege.create.pool(pool.saveMe).user(user).
+ permission(Permission.Admin).save
) yield privilegeSaved
r
Modified: incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/AccessPool.scala
URL: http://svn.apache.org/viewvc/incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/AccessPool.scala?rev=768001&r1=768000&r2=768001&view=diff
==============================================================================
--- incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/AccessPool.scala (original)
+++ incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/AccessPool.scala Thu Apr 23 18:20:34 2009
@@ -23,16 +23,41 @@
import net.liftweb._
import mapper._
+import http._
import util._
+import scala.xml.Text
+
object AccessPool extends AccessPool with LongKeyedMetaMapper[AccessPool] {
}
class AccessPool extends LongKeyedMapper[AccessPool] {
- def getSingleton = AccessPool // what's the "meta" server
+ def getSingleton = AccessPool
def primaryKeyField = id
+ private def sameName(name: String) =
+ AccessPool.findAll(By(AccessPool.name, name)).
+ filter(_.realm.is.equalsIgnoreCase(this.realm.is))
+
object id extends MappedLongIndex(this)
- object name extends MappedText(this)
+
+ private[model] object name extends MappedString(this, 256) {
+
+ override def validations = checkDuplicate _ :: super.validations
+
+ def checkDuplicate(in: String): List[FieldError] =
+ sameName(in).map(p =>
+ FieldError(this, Text("Duplicate pool: " + in + " in realm " + p.realm.is ))
+ )
+
+ }
+
+ def setName(in: String) = sameName(in) match {
+ case Nil => Full(this.name(in))
+ case List(_,_*) => Failure("Duplicate access pool name!")
+ }
+
+ object realm extends MappedString(this, 256)
+
}