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/05/21 19:56:50 UTC
svn commit: r777202 - in
/incubator/esme/branches/access-pools/server/src/main:
scala/org/apache/esme/model/AccessPool.scala
scala/org/apache/esme/model/Privilege.scala
scala/org/apache/esme/snippet/UserSnip.scala
webapp/templates-hidden/message.html
Author: vdichev
Date: Thu May 21 17:56:43 2009
New Revision: 777202
URL: http://svn.apache.org/viewvc?rev=777202&view=rev
Log:
ESME-55 Web UI for sending a message to an access pool
Modified:
incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/AccessPool.scala
incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/Privilege.scala
incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala
incubator/esme/branches/access-pools/server/src/main/webapp/templates-hidden/message.html
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=777202&r1=777201&r2=777202&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 May 21 17:56:43 2009
@@ -59,6 +59,8 @@
case Nil => Full(this.name(in))
case List(_,_*) => Failure("Duplicate access pool name!")
}
+
+ def getName() = name.is
private def sameName(name: String) =
AccessPool.findAll(By(AccessPool.name, name)).
Modified: incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/Privilege.scala
URL: http://svn.apache.org/viewvc/incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/Privilege.scala?rev=777202&r1=777201&r2=777202&view=diff
==============================================================================
--- incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/Privilege.scala (original)
+++ incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/model/Privilege.scala Thu May 21 17:56:43 2009
@@ -38,6 +38,11 @@
def findViewablePools(userId: Long) = Privilege.findMap(
By(Privilege.user, userId)
)(p => Full(p.pool.is))
+
+ def findWritablePools(userId: Long) = Privilege.findMap(
+ By(Privilege.user, userId),
+ NotBy(Privilege.permission, Permission.Read)
+ )(p => Full(p.pool.is))
}
class Privilege extends LongKeyedMapper[Privilege] {
Modified: incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala
URL: http://svn.apache.org/viewvc/incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala?rev=777202&r1=777201&r2=777202&view=diff
==============================================================================
--- incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala (original)
+++ incubator/esme/branches/access-pools/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala Thu May 21 17:56:43 2009
@@ -48,6 +48,11 @@
case _ => Empty
}
+ val pool = map.get("access_pool").map(toLong) match {
+ case Some(x) if x > 0L => Some(x)
+ case _ => None
+ }
+
Distributor !
Distributor.UserCreatedMessage(user.id, msg,
Tag.split(tags),
@@ -55,7 +60,7 @@
Empty,
"web",
replyTo,
- None)
+ pool)
}
Noop
@@ -71,7 +76,8 @@
"followers" -> followers _,
"following" -> following _,
"loginForm" -> loginForm _,
- "loggedIn" -> loggedInFilter _)
+ "loggedIn" -> loggedInFilter _,
+ "accessPools" -> accessPools _)
def loggedInFilter(in: NodeSeq): NodeSeq = {
val lookFor = if (User.loggedIn_?) "in" else "out"
@@ -113,6 +119,15 @@
Text(User.currentUser.map(_.wholeName) openOr "")
}
+ def accessPools(in: NodeSeq): NodeSeq = {
+ for(user <- User.currentUser.toSeq;
+ p <- Privilege.findWritablePools(user.id))
+ // slow?
+ yield <option value={p}>
+ {AccessPool.find(p).get.getName}
+ </option>
+ }
+
def postScript(in: NodeSeq): NodeSeq =
<xml:group>
{Script(JsonPoster.is._2)}
@@ -120,9 +135,11 @@
JsonPoster.is._1("post",
JsObj("msg" -> ValById("textdude"),
"tags" -> ValById("tagdude"),
+ "access_pool" -> ValById("access_pool"),
"reply-to" -> JsVar("currentConvNumber"))) &
SetValById("textdude", "") &
SetValById("tagdude", "") &
+ SetValById("access_pool", "0") &
JsRaw("clearReplyTo();")
))
}
Modified: incubator/esme/branches/access-pools/server/src/main/webapp/templates-hidden/message.html
URL: http://svn.apache.org/viewvc/incubator/esme/branches/access-pools/server/src/main/webapp/templates-hidden/message.html?rev=777202&r1=777201&r2=777202&view=diff
==============================================================================
--- incubator/esme/branches/access-pools/server/src/main/webapp/templates-hidden/message.html (original)
+++ incubator/esme/branches/access-pools/server/src/main/webapp/templates-hidden/message.html Thu May 21 17:56:43 2009
@@ -242,6 +242,14 @@
</div>
</div>
+ <div class="row clear">
+ <label>Access pool</label>
+ <select id="access_pool">
+ <option id="0">--public--</option>
+ <lift:UserSnip.accessPools />
+ </select>
+ </div>
+
<div class="row clear"><a class="btn" href="javascript:post_msg();"><img src="/images/send-message.png" alt="Send Message" /></a></div>
<script>