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;