You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by le...@apache.org on 2011/05/09 13:17:15 UTC
svn commit: r1100960 - in
/esme/trunk/server/src/main/scala/org/apache/esme/model: User.scala
UserAuth.scala
Author: lester
Date: Mon May 9 11:17:15 2011
New Revision: 1100960
URL: http://svn.apache.org/viewvc?rev=1100960&view=rev
Log:
Added logic to save LDAP role for current user. Placed 'currentRole' var into HTTP session scope.
Modified:
esme/trunk/server/src/main/scala/org/apache/esme/model/User.scala
esme/trunk/server/src/main/scala/org/apache/esme/model/UserAuth.scala
Modified: esme/trunk/server/src/main/scala/org/apache/esme/model/User.scala
URL: http://svn.apache.org/viewvc/esme/trunk/server/src/main/scala/org/apache/esme/model/User.scala?rev=1100960&r1=1100959&r2=1100960&view=diff
==============================================================================
--- esme/trunk/server/src/main/scala/org/apache/esme/model/User.scala (original)
+++ esme/trunk/server/src/main/scala/org/apache/esme/model/User.scala Mon May 9 11:17:15 2011
@@ -189,10 +189,16 @@ object User extends User with KeyedMetaM
private object curUser extends RequestVar[Box[User]](currentUserId.flatMap(id => getSingleton.find(id)))
- private object currentRole extends RequestVar[Box[String]](currentUser.flatMap(u => Props.get("role."+u.niceName)))
+ private object currentRole extends SessionVar[Box[String]](currentUser.flatMap(u => Props.get("role."+u.niceName)))
+
+ def setRole(role : String) = {
+ logger.debug("User.setRole() is being called. Role: '%s'".format(role))
+ currentRole.set(Full(role))
+ }
def checkRole(role: String): Boolean = {
val userRole:String = currentRole.openOr("")
+ logger.debug("User.checkRole() is being called. Role to check: '%s'. Current role: '%s'".format(role, userRole))
userRole.equals(role)
}
Modified: esme/trunk/server/src/main/scala/org/apache/esme/model/UserAuth.scala
URL: http://svn.apache.org/viewvc/esme/trunk/server/src/main/scala/org/apache/esme/model/UserAuth.scala?rev=1100960&r1=1100959&r2=1100960&view=diff
==============================================================================
--- esme/trunk/server/src/main/scala/org/apache/esme/model/UserAuth.scala (original)
+++ esme/trunk/server/src/main/scala/org/apache/esme/model/UserAuth.scala Mon May 9 11:17:15 2011
@@ -281,6 +281,8 @@ trait LDAPBase {
object myLdapVendor extends LDAPVendor
+ var currentRole : String = _
+
def myLdap : LDAPVendor = {
val ldapSrvHost = Props.get("ldap.server.host") openOr ""
debug("LDAP server host: %s".format(ldapSrvHost))
@@ -349,7 +351,7 @@ trait LDAPBase {
def logInUser(who: User) {
User.logUserIn(who)
- //TODO: save role for user
+ User.setRole(currentRole)
S.notice(S.?("base_user_msg_welcome", who.niceName))
}
}
@@ -389,6 +391,7 @@ object ContainerManagedAuthModule extend
S.error(S.?("base_user_err_unknown_creds"))
} else {
currentRoles.map(cr => {
+ currentRole = cr
(for {
user <- UserAuth.find(By(UserAuth.authKey, username),
By(UserAuth.authType, moduleName)).flatMap(_.user.obj) or
@@ -429,12 +432,6 @@ object ContainerManagedAuthModule extend
S.redirectTo(from)
}
}
-
- def logInUser(who: User) {
- User.logUserIn(who)
- //TODO: save role for user
- S.notice(S.?("base_user_msg_welcome", who.niceName))
- }
}
def createHolder(): FieldSet = new FieldSet {
@@ -449,7 +446,7 @@ object LDAPAuthModule extends AuthModule
// It's possible to get roles list from some external source
// for example from LDAP via Lift API
val rolesToCheck = List(
- "esme-users"
+ "esme-users", "monitoring-admin"
)
override def isDefault = false
@@ -502,7 +499,10 @@ object LDAPAuthModule extends AuthModule
val ldapAttrs = getAttrs(constructDistinguishedName(role, true))
val uniqueMember = ldapAttrs("uniqueMember").head
debug("'uniqueMember' attribute value: '%s'".format(uniqueMember))
- if(who == uniqueMember) return true
+ if(who == uniqueMember) {
+ currentRole = role
+ return true
+ }
}
debug("No roles have been found")
return false;