You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2008/06/08 08:41:55 UTC
svn commit: r664455 - in
/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core:
CoreSession.java DefaultCoreSession.java
Author: akarasulu
Date: Sat Jun 7 23:41:54 2008
New Revision: 664455
URL: http://svn.apache.org/viewvc?rev=664455&view=rev
Log:
added isAdminstrator() and isAnAdministrator() methods on CoreSession
Modified:
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/CoreSession.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/CoreSession.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/CoreSession.java?rev=664455&r1=664454&r2=664455&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/CoreSession.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/CoreSession.java Sat Jun 7 23:41:54 2008
@@ -26,6 +26,7 @@
import javax.naming.ldap.Control;
+import org.apache.directory.server.constants.ServerDNConstants;
import org.apache.directory.server.core.authn.LdapPrincipal;
import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.entry.ServerEntry;
@@ -132,6 +133,27 @@
/**
+ * Returns true if the effective principal associated with this session is
+ * the administrator.
+ *
+ * @see {@link ServerDNConstants#ADMIN_SYSTEM_DN}
+ * @return true if authorized as the administrator, false otherwise
+ */
+ boolean isAdministrator();
+
+
+ /**
+ * Returns true if the effective principal associated with this session is
+ * the administrator or is within the administrators group.
+ *
+ * @see {@link ServerDNConstants#ADMIN_SYSTEM_DN}
+ * @see {@link ServerDNConstants#ADMINISTRATORS_GROUP_DN}
+ * @return true if authorized as an administrator, false otherwise
+ */
+ boolean isAnAdministrator();
+
+
+ /**
* Gets the authentication level associated with this session.
*
* @return the authentication level associated with the session
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java?rev=664455&r1=664454&r2=664455&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultCoreSession.java Sat Jun 7 23:41:54 2008
@@ -26,6 +26,7 @@
import javax.naming.ldap.Control;
+import org.apache.directory.server.constants.ServerDNConstants;
import org.apache.directory.server.core.authn.LdapPrincipal;
import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.entry.ServerEntry;
@@ -41,6 +42,7 @@
import org.apache.directory.server.core.interceptor.context.OperationContext;
import org.apache.directory.server.core.interceptor.context.RenameOperationContext;
import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
+import org.apache.directory.shared.ldap.NotImplementedException;
import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
import org.apache.directory.shared.ldap.entry.Modification;
import org.apache.directory.shared.ldap.filter.ExprNode;
@@ -207,6 +209,41 @@
// TODO Auto-generated method stub
return true;
}
+
+
+ /**
+ * TODO - perhaps we should just use a flag that is calculated on creation
+ * of this session
+ *
+ * @see org.apache.directory.server.core.CoreSession#isAdministrator()
+ */
+ public boolean isAdministrator()
+ {
+ String normName = getEffectivePrincipal().getJndiName().toNormName();
+ return normName.equals( ServerDNConstants.ADMIN_SYSTEM_DN_NORMALIZED );
+ }
+
+
+ /**
+ * TODO - this method impl does not check to see if the principal is in
+ * the administrators group - it only returns true of the principal is
+ * the actual admin user. need to make it check groups.
+ *
+ * TODO - perhaps we should just use a flag that is calculated on creation
+ * of this session
+ *
+ * @see org.apache.directory.server.core.CoreSession#isAnAdministrator()
+ */
+ public boolean isAnAdministrator()
+ {
+ if ( isAdministrator() )
+ {
+ return true;
+ }
+
+ // TODO fix this so it checks groups
+ return false;
+ }
/* (non-Javadoc)