Author: michiel
Date: 2009-06-04 16:04:04 +0200 (Thu, 04 Jun 2009)
New Revision: 35731
Added:
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/UserStatus.java
Modified:
mmbase/trunk/applications/cloudcontext/src/main/config/builders/cloudcontext/mmbaseusers.fields.xml
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/BasicUserProvider.java
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status.properties
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status_nl.properties
Log:
Introduced UserStatus enum, and disallow users whos status is invalid (e.g. you
can easily override that 'NEW' users are not allowed to login
Modified:
mmbase/trunk/applications/cloudcontext/src/main/config/builders/cloudcontext/mmbaseusers.fields.xml
===================================================================
---
mmbase/trunk/applications/cloudcontext/src/main/config/builders/cloudcontext/mmbaseusers.fields.xml
2009-06-04 13:38:04 UTC (rev 35730)
+++
mmbase/trunk/applications/cloudcontext/src/main/config/builders/cloudcontext/mmbaseusers.fields.xml
2009-06-04 14:04:04 UTC (rev 35731)
@@ -91,7 +91,9 @@
<datatype base="integer" xmlns="http://www.mmbase.org/xmlns/datatypes">
<default value="0" />
<enumeration>
- <entry basename="org.mmbase.security.status" />
+ <entry
+
javaconstants="org.mmbase.security.implementation.cloudcontext.UserStatus"
+ basename="org.mmbase.security.status" />
</enumeration>
</datatype>
</field>
Modified:
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/BasicUserProvider.java
===================================================================
---
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/BasicUserProvider.java
2009-06-04 13:38:04 UTC (rev 35730)
+++
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/BasicUserProvider.java
2009-06-04 14:04:04 UTC (rev 35731)
@@ -75,10 +75,11 @@
return dbPasswordsEncoded;
}
+
public MMObjectNode getUser(final String userName, final String password,
final boolean encoded) {
if (log.isDebugEnabled()) {
- log.debug("username: '" + userName + "' password: '" + password +
"'");
+ log.debug("username: '" + userName + "' password: '" + password +
"' " + this);
}
final MMObjectNode user = getUser(userName);
@@ -127,10 +128,15 @@
}
if (userRank.getInt() < Rank.ADMIN.getInt() &&
getField(getStatusField()) != null) {
int status = user.getIntValue(getStatusField());
- if (status == -1) {
+ if (status == UserStatus.BLOCKED.getValue()) {
throw new SecurityException("account for '" + userName +
"' is blocked");
}
}
+
+ if (! isStatusValid(user)) {
+ throw new SecurityException("Account is not valid. Status " +
UserStatus.valueOf(user.getIntValue(getStatusField())));
+ }
+ log.debug("Status of " + user + " is valid");
if (userRank.getInt() < Rank.ADMIN_INT && getValidFromField() !=
null) {
long validFrom = user.getLongValue(getValidFromField());
if (validFrom != -1 && validFrom * 1000 >
System.currentTimeMillis() ) {
@@ -298,7 +304,7 @@
protected boolean isStatusValid(MMObjectNode node) {
- return node.getIntValue(getStatusField()) >= 0;
+ return node.getIntValue(getStatusField()) >= UserStatus.NEW.getValue();
}
/**
Added:
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/UserStatus.java
===================================================================
---
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/UserStatus.java
(rev 0)
+++
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/implementation/cloudcontext/UserStatus.java
2009-06-04 14:04:04 UTC (rev 35731)
@@ -0,0 +1,39 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+*/
+package org.mmbase.security.implementation.cloudcontext;
+
+
+/**
+ * @author Michiel Meeuwissen
+ * @version $Id: User.java 35335 2009-05-21 08:14:41Z michiel $
+ * @see org.mmbase.security.implementation.cloudcontext.builders.Users
+ */
+public enum UserStatus {
+
+ BLOCKED(-1),
+ NEW(0),
+ INUSE(1);
+
+ private final int i;
+ private UserStatus(int i) {
+ this.i = i;
+ }
+ public int getValue() {
+ return i;
+ }
+
+ public static UserStatus valueOf(int i) {
+ for (UserStatus us : UserStatus.values()) {
+ if (us.getValue() == i) return us;
+ }
+ throw new IllegalArgumentException();
+ }
+
+}
Modified:
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status.properties
===================================================================
---
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status.properties
2009-06-04 13:38:04 UTC (rev 35730)
+++
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status.properties
2009-06-04 14:04:04 UTC (rev 35731)
@@ -1,3 +1,3 @@
--1=blocked
-0=new
-1=in use
+BLOCKED=blocked
+NEW=new
+INUSE=in use
Modified:
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status_nl.properties
===================================================================
---
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status_nl.properties
2009-06-04 13:38:04 UTC (rev 35730)
+++
mmbase/trunk/applications/cloudcontext/src/main/java/org/mmbase/security/status_nl.properties
2009-06-04 14:04:04 UTC (rev 35731)
@@ -1,3 +1,3 @@
--1=geblokkeerd
-0=nieuw
-1=in gebruik
+BLOCKED=geblokkeerd
+NEW=nieuw
+INUSE=in gebruik
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs