You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2007/11/26 16:52:16 UTC
svn commit: r598319 [5/12] - in /roller/trunk: ./ apps/planet/
apps/planet/testdata/ apps/weblogger/ apps/weblogger/custom/
apps/weblogger/nbproject/ apps/weblogger/src/java/META-INF/
apps/weblogger/src/java/org/apache/roller/weblogger/business/ apps/w...
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.java Mon Nov 26 07:51:43 2007
@@ -22,22 +22,25 @@
import java.sql.Timestamp;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.roller.util.UUIDGenerator;
+import org.apache.roller.weblogger.business.WebloggerFactory;
/**
* Tag bean.
- *
* @author Elias Torres
*/
public class WeblogEntryTag implements Serializable {
+ private static Log log = LogFactory.getLog(WeblogEntryTag.class);
private static final long serialVersionUID = -2602052289337573384L;
private String id = UUIDGenerator.generateUUID();
private Weblog website = null;
private WeblogEntry weblogEntry = null;
- private User user = null;
+ private String userName = null;
private String name = null;
private Timestamp time = null;
@@ -45,14 +48,17 @@
public WeblogEntryTag() {
}
- public WeblogEntryTag(String id,
- Weblog website,WeblogEntry weblogEntry,
- User user, String name,
+ public WeblogEntryTag(
+ String id,
+ Weblog website,
+ WeblogEntry weblogEntry,
+ User user,
+ String name,
Timestamp time) {
//this.id = id;
this.website = website;
this.weblogEntry = weblogEntry;
- this.user = user;
+ this.userName = user.getUserName();
this.name = name;
this.time = time;
}
@@ -93,11 +99,20 @@
public User getUser() {
- return this.user;
+ try {
+ return WebloggerFactory.getWeblogger().getUserManager().getUserByUserName(getCreatorUserName());
+ } catch (Exception e) {
+ log.error("ERROR fetching user object for username: " + getCreatorUserName(), e);
+ }
+ return null;
}
- public void setUser( User user ) {
- this.user = user;
+ public String getCreatorUserName() {
+ return userName;
+ }
+
+ public void setCreatorUserName(String userName) {
+ this.userName = userName;
}
/**
@@ -148,5 +163,5 @@
.append(getWeblogEntry())
.toHashCode();
}
-
+
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.orm.xml?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.orm.xml (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntryTag.orm.xml Mon Nov 26 07:51:43 2007
@@ -25,14 +25,14 @@
<basic name="time">
<column name="time" insertable="true" updatable="true" unique="false"/>
</basic>
+ <basic name="creatorUserName">
+ <column name="creator" insertable="true" updatable="true" unique="false"/>
+ </basic>
<many-to-one name="weblog" target-entity="org.apache.roller.weblogger.pojos.Weblog">
<join-column name="websiteid" insertable="true" updatable="true" nullable="false"/>
</many-to-one>
<many-to-one name="weblogEntry" target-entity="org.apache.roller.weblogger.pojos.WeblogEntry">
<join-column name="entryid" insertable="true" updatable="true"/>
- </many-to-one>
- <many-to-one name="user" target-entity="org.apache.roller.weblogger.pojos.User">
- <join-column name="userid" insertable="true" updatable="true"/>
</many-to-one>
</attributes>
</entity>
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.java Mon Nov 26 07:51:43 2007
@@ -1,8 +1,8 @@
/*
- * Copyright 2005 Sun Microsystems, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
@@ -11,18 +11,21 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
*/
package org.apache.roller.weblogger.pojos;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.roller.util.UUIDGenerator;
+import java.security.Permission;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.WebloggerFactory;
/**
- * Represents a user's permissions within a website.
- *
+ * Permission for one specific weblog
* @ejb:bean name="WeblogPermission"
* @struts.form include-all="true"
* @hibernate.class lazy="true" table="roller_user_permissions"
@@ -30,124 +33,100 @@
*
* @author Dave Johnson
*/
-public class WeblogPermission
-{
- private String id = UUIDGenerator.generateUUID();
- private Weblog website = null;
- private User user = null;
- private boolean pending = true;
- public static short LIMITED = 0x00; // 0000
- public static short AUTHOR = 0x01; // 0001
- public static short ADMIN = 0x03; // 0011
- private short permissionMask = LIMITED;
-
- /** Creates a new instance of PermissionsData */
- public WeblogPermission()
- {
- }
-
- /**
- * Check for specific permission.
- */
- public boolean has(short priv)
- {
- return (getPermissionMask() & priv) == priv;
- }
- /**
- * @ejb:persistent-field
- * @hibernate.id column="id"
- * generator-class="assigned"
- */
- public String getId()
- {
- return id;
- }
- /** @ejb:persistent-field */
- public void setId(String id)
- {
- // Form bean workaround: empty string is never a valid id
- if (id != null && id.trim().length() == 0) return;
- this.id = id;
- }
- /**
- * @hibernate.many-to-one column="website_id" cascade="none" not-null="false"
- */
- public Weblog getWebsite()
- {
- return website;
- }
- public void setWebsite(Weblog website)
- {
- this.website = website;
- }
- /**
- * @hibernate.many-to-one column="user_id" cascade="none" not-null="false"
- */
- public User getUser()
- {
- return user;
- }
- public void setUser(User user)
- {
- this.user = user;
- }
- /**
- * Bit mask that encodes user's permissions in website.
- * @ejb:persistent-field
- * @hibernate.property column="permission_mask" non-null="true" unique="false"
- */
- public short getPermissionMask()
- {
- return permissionMask;
- }
- /** @ejb:persistent-field */
- public void setPermissionMask(short permissionMask)
- {
- this.permissionMask = permissionMask;
- }
- /**
- * True if user has been invited to join site but has not yet accepted.
- * And false if user is member of website.
- * @ejb:persistent-field
- * @hibernate.property column="pending" non-null="true" unique="false"
- */
- public boolean isPending()
- {
- return pending;
- }
- /** @ejb:persistent-field */
- public void setPending(boolean pending)
- {
- this.pending = pending;
- }
+public class WeblogPermission extends ObjectPermission {
+ public static final String EDIT_DRAFT = "editdraft";
+ public static final String POST = "post";
+ public static final String ADMIN = "admin";
+ public static final List<String> ALL_ACTIONS = new ArrayList<String>();
- //------------------------------------------------------- Good citizenship
+ static {
+ ALL_ACTIONS.add(EDIT_DRAFT);
+ ALL_ACTIONS.add(POST);
+ ALL_ACTIONS.add(ADMIN);
+ }
+
+ public WeblogPermission(Weblog weblog, User user, String actions) {
+ super("WeblogPermission user: " + user.getUserName());
+ setActions(actions);
+ objectType = "Weblog";
+ objectId = weblog.getHandle();
+ userName = user.getUserName();
+ }
+
+ public WeblogPermission(Weblog weblog, User user, List<String> actions) {
+ super("WeblogPermission user: " + user.getUserName());
+ setActionsAsList(actions);
+ objectType = "Weblog";
+ objectId = weblog.getHandle();
+ userName = user.getUserName();
+ }
+
+ public WeblogPermission(Weblog weblog, List<String> actions) {
+ super("WeblogPermission user: N/A");
+ setActionsAsList(actions);
+ objectType = "Weblog";
+ objectId = weblog.getHandle();
+ }
+
+ public Weblog getWeblog() throws WebloggerException {
+ if (objectId != null) {
+ return WebloggerFactory.getWeblogger().getWeblogManager().getWeblogByHandle(objectId, null);
+ }
+ return null;
+ }
+
+ public User getUser() throws WebloggerException {
+ if (userName != null) {
+ return WebloggerFactory.getWeblogger().getUserManager().getUserByUserName(userName);
+ }
+ return null;
+ }
+
+ public boolean equals(Object arg0) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public int hashCode() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ public boolean implies(Permission perm) {
+ if (perm instanceof WeblogPermission) {
+ WeblogPermission rperm = (WeblogPermission)perm;
+
+ if (hasAction(ADMIN)) {
+ // admin implies all other permissions
+ return true;
+
+ } else if (hasAction(POST)) {
+ // Best we've got is POST, so make sure perm doesn't specify POST
+ for (String action : rperm.getActionsAsList()) {
+ if (action.equals(ADMIN)) return false;
+ }
+
+ } else if (hasAction(EDIT_DRAFT)) {
+ // Best we've got is EDIT_DRAFT, so make sure perm doesn't specify anything else
+ for (String action : rperm.getActionsAsList()) {
+ if (action.equals(POST)) return false;
+ if (action.equals(ADMIN)) return false;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
public String toString() {
- StringBuffer buf = new StringBuffer();
- buf.append("{");
- buf.append(this.id);
- buf.append(", ").append(this.permissionMask);
- buf.append(", ").append(this.pending);
- buf.append("}");
- return buf.toString();
- }
-
- public boolean equals(Object other) {
- if (other == this) return true;
- if (other instanceof WeblogPermission != true) return false;
- WeblogPermission o = (WeblogPermission)other;
- return new EqualsBuilder()
- .append(user, o.user)
- .append(website, o.website)
- .isEquals();
- }
-
- public int hashCode() {
- return new HashCodeBuilder()
- .append(user)
- .append(website)
- .toHashCode();
+ StringBuilder sb = new StringBuilder();
+ sb.append("GlobalPermission: ");
+ for (String action : getActionsAsList()) {
+ sb.append(" ").append(action).append(" ");
+ }
+ return sb.toString();
}
-
}
+
+
+
+
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml Mon Nov 26 07:51:43 2007
@@ -6,37 +6,41 @@
<persistence-unit-metadata>
<persistence-unit-defaults>
<access>PROPERTY</access>
- </persistence-unit-defaults>
+ </persistence-unit-defaults>
</persistence-unit-metadata>
<package>org.apache.roller.weblogger.pojos</package>
<entity metadata-complete="true" name="WeblogPermission"
class="org.apache.roller.weblogger.pojos.WeblogPermission">
- <table name="roller_user_permissions"/>
- <named-query name="WeblogPermission.getByWebsiteAndUser">
- <query>SELECT p FROM WeblogPermission p WHERE p.website = ?1 AND p.user = ?2</query>
- </named-query>
- <named-query name="WeblogPermission.getByUserAndPending">
- <query>SELECT p FROM WeblogPermission p WHERE p.user = ?1 AND p.pending = ?2</query>
- </named-query>
- <named-query name="WeblogPermission.getByWebsiteAndPending">
- <query>SELECT p FROM WeblogPermission p WHERE p.website = ?1 AND p.pending = ?2</query>
- </named-query>
- <attributes>
- <id name="id">
- <column name="id"/>
- </id>
- <basic name="permissionMask">
- <column name="permission_mask" insertable="true" updatable="true" unique="false"/>
- </basic>
- <basic name="pending">
- <column name="pending" insertable="true" updatable="true" unique="false"/>
- </basic>
- <many-to-one name="website" target-entity="org.apache.roller.weblogger.pojos.Weblog">
- <join-column name="website_id" insertable="true" updatable="true" nullable="true"/>
- </many-to-one>
- <many-to-one name="user" target-entity="org.apache.roller.weblogger.pojos.User">
- <join-column name="user_id" insertable="true" updatable="true" nullable="true"/>
- </many-to-one>
- </attributes>
+ <discriminator-value>Weblog</discriminator-value>
+
+ <named-query name="WeblogPermission.getAll">
+ <query>SELECT p FROM WeblogPermission p</query>
+ </named-query>
+
+ <named-query name="WeblogPermission.getByUserName">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND p.pending <> TRUE</query>
+ </named-query>
+
+ <named-query name="WeblogPermission.getByWeblogId">
+ <query>SELECT p FROM WeblogPermission p WHERE p.objectId = ?1 AND p.pending <> TRUE</query>
+ </named-query>
+
+ <named-query name="WeblogPermission.getByUserName&WeblogId">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND p.objectId = ?2</query>
+ </named-query>
+
+ <named-query name="WeblogPermission.getByUserName&WeblogId&NotPending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND p.objectId = ?2 AND p.pending <> true</query>
+ </named-query>
+
+
+ <named-query name="WeblogPermission.getByUserName&Pending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND p.pending = TRUE</query>
+ </named-query>
+
+ <named-query name="WeblogPermission.getByWeblogId&Pending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.objectId = ?1 AND p.pending = true</query>
+ </named-query>
+
</entity>
</entity-mappings>
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerSession.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerSession.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerSession.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerSession.java Mon Nov 26 07:51:43 2007
@@ -47,7 +47,7 @@
static final long serialVersionUID = 5890132909166913727L;
// the id of the user represented by this session
- private String userId = null;
+ private String userName = null;
private static Log log = LogFactory.getLog(RollerSession.class);
@@ -64,25 +64,34 @@
HttpSession session = request.getSession(false);
if (session != null) {
rollerSession = (RollerSession)session.getAttribute(ROLLER_SESSION);
+
if (rollerSession == null) {
// HttpSession with no RollerSession?
// Must be a session that was de-serialized from a previous run.
rollerSession = new RollerSession();
session.setAttribute(ROLLER_SESSION, rollerSession);
}
+
Principal principal = request.getUserPrincipal();
- if (rollerSession.getAuthenticatedUser() == null && principal != null) {
+
+ // If we've got a principal but no user object, then attempt to get
+ // user object from user manager but *only* do this if we have been
+ // bootstrapped because under an SSO scenario we may have a
+ // principal even before we have been bootstrapped.
+ if (rollerSession.getAuthenticatedUser() == null && principal != null && WebloggerFactory.isBootstrapped()) {
try {
+
UserManager umgr = WebloggerFactory.getWeblogger().getUserManager();
User user = umgr.getUserByUserName(principal.getName());
// try one time to auto-provision, only happens if user==null
// which means installation has SSO-enabled in security.xml
- if(user == null && WebloggerConfig.getBooleanProperty("users.sso.autoProvision.enabled")) {
+ if (user == null && WebloggerConfig.getBooleanProperty("users.sso.autoProvision.enabled")) {
+
// provisioning enabled, get provisioner and execute
AutoProvision provisioner = RollerContext.getAutoProvision();
if(provisioner != null) {
- boolean userProvisioned = provisioner.execute();
+ boolean userProvisioned = provisioner.execute(request);
if(userProvisioned) {
// try lookup again real quick
user = umgr.getUserByUserName(principal.getName());
@@ -90,9 +99,10 @@
}
}
// only set authenticated user if user is enabled
- if(user != null && user.getEnabled().booleanValue()) {
+ if (user != null && user.getEnabled().booleanValue()) {
rollerSession.setAuthenticatedUser(user);
}
+
} catch (WebloggerException e) {
log.error("ERROR: getting user object",e);
}
@@ -137,12 +147,12 @@
public User getAuthenticatedUser() {
User authenticUser = null;
- if(userId != null) {
+ if(userName != null) {
try {
UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
- authenticUser = mgr.getUser(userId);
+ authenticUser = mgr.getUserByUserName(userName);
} catch (WebloggerException ex) {
- log.warn("Error looking up authenticated user "+userId, ex);
+ log.warn("Error looking up authenticated user "+userName, ex);
}
}
@@ -154,7 +164,7 @@
* Authenticated user associated with this session.
*/
public void setAuthenticatedUser(User authenticatedUser) {
- this.userId = authenticatedUser.getId();
+ this.userName = authenticatedUser.getUserName();
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java Mon Nov 26 07:51:43 2007
@@ -18,7 +18,7 @@
package org.apache.roller.weblogger.ui.core.security;
import java.util.Iterator;
-
+import java.util.List;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.ldap.LdapDataAccessException;
@@ -48,12 +48,14 @@
*/
public GrantedAuthority[] getGrantedAuthorities(LdapUserDetails userDetails) throws LdapDataAccessException {
-
User userData = null;
+ List roles = null;
try {
Weblogger roller = WebloggerFactory.getWeblogger();
UserManager umgr = roller.getUserManager();
userData = umgr.getUserByUserName(userDetails.getUsername(), Boolean.TRUE);
+ roles = umgr.getRoles(userData);
+
} catch (WebloggerException ex) {
throw new LdapDataAccessException("ERROR in user lookup", ex);
}
@@ -62,11 +64,12 @@
throw new LdapDataAccessException("ERROR no user: " + userDetails.getUsername());
}
- int roleCount = userData.getRoles().size();
+
+ int roleCount = roles.size();
if (defaultRole != null) roleCount++;
GrantedAuthority[] authorities = new GrantedAuthorityImpl[roleCount];
int i = 0;
- for (Iterator it = userData.getRoles().iterator(); it.hasNext();) {
+ for (Iterator it = roles.iterator(); it.hasNext();) {
UserRole role = (UserRole) it.next();
authorities[i++] = new GrantedAuthorityImpl(role.getRole());
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AutoProvision.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AutoProvision.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AutoProvision.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AutoProvision.java Mon Nov 26 07:51:43 2007
@@ -17,8 +17,10 @@
*/
package org.apache.roller.weblogger.ui.core.security;
+import javax.servlet.http.HttpServletRequest;
+
public interface AutoProvision {
- public boolean execute();
+ public boolean execute(HttpServletRequest request);
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java Mon Nov 26 07:51:43 2007
@@ -17,6 +17,8 @@
*/
package org.apache.roller.weblogger.ui.core.security;
+import javax.servlet.http.HttpServletRequest;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
@@ -37,8 +39,8 @@
*
* @see org.apache.roller.weblogger.ui.core.security.AutoProvision#execute()
*/
- public boolean execute() {
- User ud = CustomUserRegistry.getUserDetailsFromAuthentication();
+ public boolean execute(HttpServletRequest request) {
+ User ud = CustomUserRegistry.getUserDetailsFromAuthentication(request);
if(ud != null) {
UserManager mgr;
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/CustomUserRegistry.java Mon Nov 26 07:51:43 2007
@@ -18,11 +18,13 @@
package org.apache.roller.weblogger.ui.core.security;
import java.util.Locale;
+import java.util.Set;
import java.util.TimeZone;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
+import javax.servlet.http.HttpServletRequest;
import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContextHolder;
@@ -39,21 +41,24 @@
*/
public class CustomUserRegistry {
- private static Log log = LogFactory.getLog(CustomUserRegistry.class);
-
- private static String DEFAULT_SNAME_LDAP_ATTRIBUTE = "screenname";
- private static String DEFAULT_NAME_LDAP_ATTRIBUTE = "cn";
- private static String DEFAULT_EMAIL_LDAP_ATTRIBUTE = "mail";
- private static String DEFAULT_LOCALE_LDAP_ATTRIBUTE = "locale";
- private static String DEFAULT_TIMEZONE_LDAP_ATTRIBUTE = "timezone";
-
- private static String SNAME_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.screenname";
- private static String NAME_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.name";
- private static String EMAIL_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.email";
- private static String LOCALE_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.locale";
- private static String TIMEZONE_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.timezone";
+ private static final Log log = LogFactory.getLog(CustomUserRegistry.class);
+
+ private static final String DEFAULT_SNAME_LDAP_ATTRIBUTE = "screenname";
+ private static final String DEFAULT_UID_LDAP_ATTRIBUTE = "uid";
+ private static final String DEFAULT_NAME_LDAP_ATTRIBUTE = "cn";
+ private static final String DEFAULT_EMAIL_LDAP_ATTRIBUTE = "mail";
+ private static final String DEFAULT_LOCALE_LDAP_ATTRIBUTE = "locale";
+ private static final String DEFAULT_TIMEZONE_LDAP_ATTRIBUTE = "timezone";
- public static User getUserDetailsFromAuthentication() {
+ private static final String SNAME_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.screenname";
+ private static final String UID_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.uid";
+ private static final String NAME_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.name";
+ private static final String EMAIL_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.email";
+ private static final String LOCALE_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.locale";
+ private static final String TIMEZONE_LDAP_PROPERTY = "users.sso.registry.ldap.attributes.timezone";
+
+ public static User getUserDetailsFromAuthentication(HttpServletRequest request) {
+
boolean usingSSO = WebloggerConfig.getBooleanProperty("users.sso.enabled");
if(!usingSSO) {
log.info("SSO is not enabled. Skipping CustomUserRegistry functionality.");
@@ -62,82 +67,107 @@
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+ User ud = new User();
+ // setting default
+ ud.setId(null);
+ ud.setLocale(Locale.getDefault().toString());
+ ud.setTimeZone(TimeZone.getDefault().getID());
+ ud.setDateCreated(new java.util.Date());
+
+ String userName = null;
+ String password = null;
+ String fullName = null;
+ String email = null;
+ String screenName = null;
+ String locale = null;
+ String timezone = null;
+ boolean enabled = false;
+
if(authentication == null) {
- log.warn("No Authentication found in SecurityContextHolder.");
- return null;
- }
+ // Try to get SSO data from HttpServletRequest
+ userName = getRequestAttribute(request, WebloggerConfig.getProperty(UID_LDAP_PROPERTY, DEFAULT_SNAME_LDAP_ATTRIBUTE));
+
+ screenName = getRequestAttribute(request, WebloggerConfig.getProperty(SNAME_LDAP_PROPERTY, DEFAULT_SNAME_LDAP_ATTRIBUTE));
+
+ fullName = getRequestAttribute(request, WebloggerConfig.getProperty(NAME_LDAP_PROPERTY, DEFAULT_NAME_LDAP_ATTRIBUTE));
+
+ email = getRequestAttribute(request, WebloggerConfig.getProperty(EMAIL_LDAP_PROPERTY, DEFAULT_EMAIL_LDAP_ATTRIBUTE));
+
+ locale = getRequestAttribute(request, WebloggerConfig.getProperty(LOCALE_LDAP_PROPERTY, DEFAULT_LOCALE_LDAP_ATTRIBUTE));
+
+ timezone = getRequestAttribute(request, WebloggerConfig.getProperty(TIMEZONE_LDAP_PROPERTY, DEFAULT_TIMEZONE_LDAP_ATTRIBUTE));
+
+
+ if (userName == null && fullName == null && screenName == null &&
+ email == null && locale == null && timezone == null) {
+
+ log.warn("No Authentication found in SecurityContextHolder and HttpServletRequest.");
+ return null;
+ } else {
+ enabled = true;
+ }
+ } else {
- Object oPrincipal = authentication.getPrincipal();
+ Object oPrincipal = authentication.getPrincipal();
- if(oPrincipal == null) {
- log.warn("Principal is null. Skipping auto-registration.");
- return null;
- }
+ if(oPrincipal == null) {
+ log.warn("Principal is null. Skipping auto-registration.");
+ return null;
+ }
- if (!(oPrincipal instanceof UserDetails)) {
- log.warn("Unsupported Principal type in Authentication. Skipping auto-registration.");
- return null;
- }
+ if (!(oPrincipal instanceof UserDetails)) {
+ log.warn("Unsupported Principal type in Authentication. Skipping auto-registration.");
+ return null;
+ }
- UserDetails userDetails = (UserDetails) oPrincipal;
+ UserDetails userDetails = (UserDetails) oPrincipal;
- String userName = userDetails.getUsername();
- String password = userDetails.getPassword();
- boolean enabled = userDetails.isEnabled();
+ userName = userDetails.getUsername();
+ password = userDetails.getPassword();
+ enabled = userDetails.isEnabled();
- User ud = new User();
- ud.setId(null);
- ud.setUserName(userName);
+ if(userDetails instanceof RollerUserDetails) {
+ RollerUserDetails rollerDetails = (RollerUserDetails) userDetails;
+
+ screenName = rollerDetails.getScreenName();
+ fullName = rollerDetails.getFullName();
+ email = rollerDetails.getEmailAddress();
+ locale = rollerDetails.getLocale();
+ timezone = rollerDetails.getTimeZone();
+
+ } else if(userDetails instanceof LdapUserDetails) {
+ LdapUserDetails ldapDetails = (LdapUserDetails) userDetails;
+
+ Attributes attributes = ldapDetails.getAttributes();
+ screenName = getLdapAttribute(attributes, WebloggerConfig.getProperty(SNAME_LDAP_PROPERTY, DEFAULT_SNAME_LDAP_ATTRIBUTE));
+ fullName = getLdapAttribute(attributes, WebloggerConfig.getProperty(NAME_LDAP_PROPERTY, DEFAULT_NAME_LDAP_ATTRIBUTE));
+ email = getLdapAttribute(attributes, WebloggerConfig.getProperty(EMAIL_LDAP_PROPERTY, DEFAULT_EMAIL_LDAP_ATTRIBUTE));
+ locale = getLdapAttribute(attributes, WebloggerConfig.getProperty(LOCALE_LDAP_PROPERTY, DEFAULT_LOCALE_LDAP_ATTRIBUTE));
+ timezone = getLdapAttribute(attributes, WebloggerConfig.getProperty(TIMEZONE_LDAP_PROPERTY, DEFAULT_TIMEZONE_LDAP_ATTRIBUTE));
+
+ }
+ }
+
boolean storePassword = WebloggerConfig.getBooleanProperty("users.sso.passwords.save");
if(!storePassword) {
password = WebloggerConfig.getProperty("users.sso.passwords.defaultValue","<unknown>");
}
+
ud.setPassword(password);
ud.setEnabled(enabled ? Boolean.TRUE : Boolean.FALSE);
- ud.setLocale(Locale.getDefault().toString());
- ud.setTimeZone(TimeZone.getDefault().getID());
- ud.setDateCreated(new java.util.Date());
-
- if(userDetails instanceof RollerUserDetails) {
- RollerUserDetails rollerDetails = (RollerUserDetails) userDetails;
-
- ud.setScreenName(rollerDetails.getScreenName());
-
- ud.setFullName(rollerDetails.getFullName());
- //TODO: Bug here as setting email addy to a full name value?
- ud.setEmailAddress(rollerDetails.getFullName());
- if(rollerDetails.getTimeZone() != null) {
- ud.setTimeZone(rollerDetails.getTimeZone());
- }
-
- if(rollerDetails.getLocale() != null) {
- ud.setLocale(rollerDetails.getLocale());
- }
-
- } else if(userDetails instanceof LdapUserDetails) {
- LdapUserDetails ldapDetails = (LdapUserDetails) userDetails;
- Attributes attributes = ldapDetails.getAttributes();
- String sname = getLdapAttribute(attributes, WebloggerConfig.getProperty(SNAME_LDAP_PROPERTY, DEFAULT_SNAME_LDAP_ATTRIBUTE));
- String name = getLdapAttribute(attributes, WebloggerConfig.getProperty(NAME_LDAP_PROPERTY, DEFAULT_NAME_LDAP_ATTRIBUTE));
- String email = getLdapAttribute(attributes, WebloggerConfig.getProperty(EMAIL_LDAP_PROPERTY, DEFAULT_EMAIL_LDAP_ATTRIBUTE));
-
- ud.setScreenName(sname);
- ud.setFullName(name);
- ud.setEmailAddress(email);
-
- String locale = getLdapAttribute(attributes, WebloggerConfig.getProperty(LOCALE_LDAP_PROPERTY, DEFAULT_LOCALE_LDAP_ATTRIBUTE));
- String timezone = getLdapAttribute(attributes, WebloggerConfig.getProperty(TIMEZONE_LDAP_PROPERTY, DEFAULT_TIMEZONE_LDAP_ATTRIBUTE));
-
- if(locale != null) {
- ud.setLocale(locale);
- }
- if(timezone != null) {
- ud.setTimeZone(timezone);
- }
+ ud.setUserName(userName);
+ ud.setFullName(fullName);
+ ud.setEmailAddress(email);
+ ud.setScreenName(screenName);
+ if (locale != null) {
+ ud.setLocale(locale);
}
-
+ if (timezone != null) {
+ ud.setTimeZone(timezone);
+ }
+
return ud;
}
@@ -164,6 +194,22 @@
}
return oValue.toString();
+ }
+
+ private static String getRequestAttribute(HttpServletRequest request, String attributeName) {
+
+ String attr = null;
+ Object attrObj = request.getAttribute(attributeName);
+ if (attrObj instanceof String) {
+ attr = (String)attrObj;
+ } else if (attrObj instanceof Set) {
+ Set attrSet = (Set)attrObj;
+ if (!attrSet.isEmpty()) {
+ attr = (String)attrSet.iterator().next();
+ }
+ }
+
+ return attr;
}
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java Mon Nov 26 07:51:43 2007
@@ -1,6 +1,6 @@
package org.apache.roller.weblogger.ui.core.security;
-import java.util.Iterator;
+import java.util.List;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.userdetails.UserDetails;
@@ -10,9 +10,9 @@
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
-import org.apache.roller.weblogger.pojos.UserRole;
import org.apache.roller.weblogger.pojos.User;
import org.springframework.dao.DataAccessException;
+import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.dao.DataRetrievalFailureException;
/**
@@ -21,31 +21,34 @@
public class RollerUserDetailsService implements UserDetailsService {
public UserDetails loadUserByUsername(String userName)
- throws UsernameNotFoundException, DataAccessException {
-
- User userData = null;
+ throws UsernameNotFoundException, DataAccessException {
try {
+
Weblogger roller = WebloggerFactory.getWeblogger();
UserManager umgr = roller.getUserManager();
- userData = umgr.getUserByUserName(userName, Boolean.TRUE);
+ User userData = null;
+ try {
+ userData = umgr.getUserByUserName(userName, Boolean.TRUE);
+ } catch (WebloggerException ex) {
+ throw new DataRetrievalFailureException("ERROR in user lookup", ex);
+ }
+
+ if (userData == null) {
+ throw new UsernameNotFoundException("ERROR no user: " + userName);
+ }
+
+ List<String> roles = umgr.getRoles(userData);
+ GrantedAuthority[] authorities = new GrantedAuthorityImpl[roles.size()];
+ int i = 0;
+ for (String role : roles) {
+ authorities[i++] = new GrantedAuthorityImpl(role);
+ }
+
+ return new org.acegisecurity.userdetails.User(userData.getUserName(), userData.getPassword(), true, authorities);
+
} catch (WebloggerException ex) {
- throw new DataRetrievalFailureException("ERROR in user lookup", ex);
- }
-
- if (userData == null) {
- throw new UsernameNotFoundException("ERROR no user: " + userName);
- }
-
- GrantedAuthority[] authorities =
- new GrantedAuthorityImpl[userData.getRoles().size()];
- int i = 0;
- for (Iterator it = userData.getRoles().iterator(); it.hasNext();) {
- UserRole role = (UserRole)it.next();
- authorities[i++] = new GrantedAuthorityImpl(role.getRole());
+ throw new DataAccessResourceFailureException("ERROR: fetching roles", ex);
}
-
- return new org.acegisecurity.userdetails.User(
- userData.getUserName(), userData.getPassword(), true, authorities);
}
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java Mon Nov 26 07:51:43 2007
@@ -26,7 +26,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
import org.apache.roller.util.DateUtil;
@@ -53,7 +53,7 @@
protected void loadWeblogEntries(Date startDate, Date endDate, String catName) {
try {
- WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ WeblogEntryManager mgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
monthMap = mgr.getWeblogEntryObjectMap(
weblog, // website
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java Mon Nov 26 07:51:43 2007
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
@@ -105,7 +105,7 @@
// Get entries before startDate, using category restriction limit 1
// Use entry's date as previous month
try {
- WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ WeblogEntryManager mgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
List prevEntries = mgr.getWeblogEntries(
weblog, // website
@@ -117,7 +117,7 @@
null,WeblogEntry.PUBLISHED, // status
null, // text
null, // sortby (null means pubTime)
- WeblogManager.DESCENDING, // sortorder, null means DESCENDING
+ WeblogEntryManager.DESCENDING, // sortorder, null means DESCENDING
locale, // locale
0, 1); // offset, range
if (prevEntries.size() > 0) {
@@ -132,7 +132,7 @@
// Get entries after endDate, using category restriction limit 1
// Use entry's date as next month
try {
- WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ WeblogEntryManager mgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
List nextEntries = mgr.getWeblogEntries(
weblog, // website
@@ -144,7 +144,7 @@
null,WeblogEntry.PUBLISHED, // status
null, // text
null, // sortby (null means pubTime)
- WeblogManager.ASCENDING, // sortorder
+ WeblogEntryManager.ASCENDING, // sortorder
locale, // locale
0, 1); // offset, range
if (nextEntries.size() > 0) {
@@ -167,7 +167,7 @@
protected void loadWeblogEntries(Date startDate, Date endDate, String catName) {
try {
- WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ WeblogEntryManager mgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
monthMap = mgr.getWeblogEntryStringMap(
weblog, // website
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.java Mon Nov 26 07:51:43 2007
@@ -25,10 +25,15 @@
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.UserManager;
+import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.config.WebloggerConfig;
-import org.apache.roller.weblogger.pojos.WeblogPermission;
+import org.apache.roller.weblogger.pojos.GlobalPermission;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogPermission;
+import org.apache.roller.weblogger.util.Utilities;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -49,10 +54,14 @@
try {
// parse menus and cache so we can efficiently reuse them
// TODO: there is probably a better way than putting the whole path
- ParsedMenu editorMenu = unmarshall(MenuHelper.class.getResourceAsStream("/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml"));
+ ParsedMenu editorMenu = unmarshall(
+ MenuHelper.class.getResourceAsStream(
+ "/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml"));
menus.put("editor", editorMenu);
- ParsedMenu adminMenu = unmarshall(MenuHelper.class.getResourceAsStream("/org/apache/roller/weblogger/ui/struts2/admin/admin-menu.xml"));
+ ParsedMenu adminMenu = unmarshall(
+ MenuHelper.class.getResourceAsStream(
+ "/org/apache/roller/weblogger/ui/struts2/admin/admin-menu.xml"));
menus.put("admin", adminMenu);
} catch (Exception ex) {
@@ -73,7 +82,11 @@
// do we know the specified menu config?
ParsedMenu menuConfig = (ParsedMenu) menus.get(menuId);
if(menuConfig != null) {
- menu = buildMenu(menuConfig, currentAction, user, weblog);
+ try {
+ menu = buildMenu(menuConfig, currentAction, user, weblog);
+ } catch (WebloggerException ex) {
+ log.debug("ERROR: fethcing user roles", ex);
+ }
}
return menu;
@@ -81,16 +94,17 @@
private static Menu buildMenu(ParsedMenu menuConfig, String currentAction,
- User user, Weblog weblog) {
+ User user, Weblog weblog) throws WebloggerException {
log.debug("creating menu for action - "+currentAction);
Menu tabMenu = new Menu();
+ UserManager umgr = WebloggerFactory.getWeblogger().getUserManager();
// iterate over tabs from parsed config
ParsedTab configTab = null;
Iterator tabsIter = menuConfig.getTabs().iterator();
- while(tabsIter.hasNext()) {
+ while (tabsIter.hasNext()) {
configTab = (ParsedTab) tabsIter.next();
log.debug("config tab = "+configTab.getName());
@@ -103,21 +117,34 @@
includeTab = ! WebloggerConfig.getBooleanProperty(configTab.getDisabledProperty());
}
- if(includeTab) {
+ if (includeTab) {
// user roles check
- if(configTab.getRole() != null) {
- if(!user.hasRole(configTab.getRole())) {
+ if (configTab.getGlobalPermissionActions() != null
+ && !configTab.getGlobalPermissionActions().isEmpty()) {
+ try {
+ GlobalPermission perm =
+ new GlobalPermission(configTab.getGlobalPermissionActions());
+ if (!umgr.checkPermission(perm, user)) {
+ includeTab = false;
+ }
+ } catch (WebloggerException ex) {
+ log.debug("ERROR: fetching user roles", ex);
includeTab = false;
}
}
}
- if(includeTab) {
+ if (includeTab) {
// weblog permissions check
- includeTab = isPermitted(configTab.getPerm(), user, weblog);
+ if (configTab.getWeblogPermissionActions() != null
+ && !configTab.getWeblogPermissionActions().isEmpty()) {
+ WeblogPermission perm =
+ new WeblogPermission(weblog, configTab.getWeblogPermissionActions());
+ includeTab = umgr.checkPermission(perm, user);
+ }
}
- if(includeTab) {
+ if (includeTab) {
log.debug("tab allowed - "+configTab.getName());
// all checks passed, tab should be included
@@ -128,33 +155,40 @@
boolean firstItem = true;
ParsedTabItem configTabItem = null;
Iterator itemsIter = configTab.getTabItems().iterator();
- while(itemsIter.hasNext()) {
+ while (itemsIter.hasNext()) {
configTabItem = (ParsedTabItem) itemsIter.next();
log.debug("config tab item = "+configTabItem.getName());
boolean includeItem = true;
- if(configTabItem.getEnabledProperty() != null) {
+ if (configTabItem.getEnabledProperty() != null) {
includeItem = WebloggerConfig.getBooleanProperty(configTabItem.getEnabledProperty());
- } else if(configTabItem.getDisabledProperty() != null) {
+ } else if (configTabItem.getDisabledProperty() != null) {
includeItem = ! WebloggerConfig.getBooleanProperty(configTabItem.getDisabledProperty());
}
- if(includeItem) {
+ if (includeItem) {
// user roles check
- if(configTabItem.getRole() != null) {
- if(!user.hasRole(configTabItem.getRole())) {
+ if (configTabItem.getGlobalPermissionActions() != null
+ && !configTabItem.getGlobalPermissionActions().isEmpty()) {
+ GlobalPermission perm =
+ new GlobalPermission(configTabItem.getGlobalPermissionActions());
+ if (!umgr.checkPermission(perm, user)) {
includeItem = false;
}
}
}
- if(includeItem) {
+ if (includeItem) {
// weblog permissions check
- includeItem = isPermitted(configTabItem.getPerm(), user, weblog);
+ if (configTab.getWeblogPermissionActions() != null
+ && !configTab.getWeblogPermissionActions().isEmpty()) {
+ WeblogPermission perm = new WeblogPermission(weblog, configTab.getWeblogPermissionActions());
+ includeTab = umgr.checkPermission(perm, user);
+ }
}
- if(includeItem) {
+ if (includeItem) {
log.debug("tab item allowed - "+configTabItem.getName());
// all checks passed, item should be included
@@ -163,13 +197,13 @@
tabItem.setAction(configTabItem.getAction());
// is this the selected item?
- if(isSelected(currentAction, configTabItem)) {
+ if (isSelected(currentAction, configTabItem)) {
tabItem.setSelected(true);
tab.setSelected(true);
}
// the url for the tab is the url of the first item of the tab
- if(firstItem) {
+ if (firstItem) {
tab.setAction(tabItem.getAction());
firstItem = false;
}
@@ -185,41 +219,20 @@
}
return tabMenu;
- }
-
-
- private static boolean isPermitted(String perm, User user, Weblog weblog) {
-
- // convert permissions string to short
- short permMask = -1;
- if(perm == null) {
- return true;
- } else if("limited".equals(perm)) {
- permMask = WeblogPermission.LIMITED;
- } else if("author".equals(perm)) {
- permMask = WeblogPermission.AUTHOR;
- } else if("admin".equals(perm)) {
- permMask = WeblogPermission.ADMIN;
- } else {
- // unknown perm
- return false;
- }
-
- return weblog.hasUserPermissions(user, permMask);
- }
+ }
private static boolean isSelected(String currentAction, ParsedTabItem tabItem) {
- if(currentAction.equals(tabItem.getAction())) {
+ if (currentAction.equals(tabItem.getAction())) {
return true;
}
// an item is also considered selected if it's subforwards are the current action
String[] subActions = tabItem.getSubActions();
- if(subActions != null && subActions.length > 0) {
+ if (subActions != null && subActions.length > 0) {
for(int i=0; i < subActions.length; i++) {
- if(currentAction.equals(subActions[i])) {
+ if (currentAction.equals(subActions[i])) {
return true;
}
}
@@ -236,7 +249,7 @@
private static ParsedMenu unmarshall(InputStream instream)
throws IOException, JDOMException {
- if(instream == null)
+ if (instream == null)
throw new IOException("InputStream is null!");
ParsedMenu config = new ParsedMenu();
@@ -261,8 +274,12 @@
ParsedTab tab = new ParsedTab();
tab.setName(element.getAttributeValue("name"));
- tab.setPerm(element.getAttributeValue("perms"));
- tab.setRole(element.getAttributeValue("roles"));
+ if (element.getAttributeValue("weblogPerms") != null) {
+ tab.setWeblogPermissionActions(Utilities.stringToStringList(element.getAttributeValue("weblogPerms"),","));
+ }
+ if (element.getAttributeValue("globalPerms") != null) {
+ tab.setGlobalPermissionActions(Utilities.stringToStringList(element.getAttributeValue("globalPerms"),","));
+ }
tab.setEnabledProperty(element.getAttributeValue("enabledProperty"));
tab.setDisabledProperty(element.getAttributeValue("disabledProperty"));
@@ -285,12 +302,16 @@
tabItem.setAction(element.getAttributeValue("action"));
String subActions = element.getAttributeValue("subactions");
- if(subActions != null) {
+ if (subActions != null) {
tabItem.setSubActions(subActions.split(","));
}
- tabItem.setPerm(element.getAttributeValue("perms"));
- tabItem.setRole(element.getAttributeValue("roles"));
+ if (element.getAttributeValue("weblogPerms") != null) {
+ tabItem.setWeblogPermissionActions(Utilities.stringToStringList(element.getAttributeValue("weblogPerms"), ","));
+ }
+ if (element.getAttributeValue("globalPerms") != null) {
+ tabItem.setGlobalPermissionActions(Utilities.stringToStringList(element.getAttributeValue("globalPerms"), ","));
+ }
tabItem.setEnabledProperty(element.getAttributeValue("enabledProperty"));
tabItem.setDisabledProperty(element.getAttributeValue("disabledProperty"));
@@ -298,3 +319,4 @@
}
}
+
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.java Mon Nov 26 07:51:43 2007
@@ -28,8 +28,8 @@
public class ParsedTab {
private String name = null;
- private String perm = null;
- private String role = null;
+ private List<String> weblogPermissionActions = null;
+ private List<String> globalPermissionActions = null;
private String enabledProperty = null;
private String disabledProperty = null;
@@ -49,20 +49,20 @@
this.name = name;
}
- public String getPerm() {
- return perm;
+ public List<String> getWeblogPermissionActions() {
+ return weblogPermissionActions;
}
- public void setPerm(String perm) {
- this.perm = perm;
+ public void setWeblogPermissionActions(List<String> actions) {
+ this.weblogPermissionActions = actions;
}
- public String getRole() {
- return role;
+ public List<String> getGlobalPermissionActions() {
+ return globalPermissionActions;
}
- public void setRole(String role) {
- this.role = role;
+ public void setGlobalPermissionActions(List<String> actions) {
+ this.globalPermissionActions = actions;
}
public String getEnabledProperty() {
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.java Mon Nov 26 07:51:43 2007
@@ -18,6 +18,8 @@
package org.apache.roller.weblogger.ui.core.util.menu;
+import java.util.List;
+
/**
* A parsed "tab-item" from an xml defined menu config.
@@ -27,8 +29,8 @@
private String name = null;
private String action = null;
private String[] subActions = null;
- private String perm = null;
- private String role = null;
+ private List<String> weblogPermissionActions = null;
+ private List<String> globalPermissionActions = null;
private String enabledProperty = null;
private String disabledProperty = null;
@@ -57,20 +59,20 @@
this.subActions = subActions;
}
- public String getPerm() {
- return perm;
+ public List<String> getWeblogPermissionActions() {
+ return weblogPermissionActions;
}
- public void setPerm(String perm) {
- this.perm = perm;
+ public void setWeblogPermissionActions(List<String> perms) {
+ this.weblogPermissionActions = perms;
}
- public String getRole() {
- return role;
+ public List<String> getGlobalPermissionActions() {
+ return globalPermissionActions;
}
- public void setRole(String role) {
- this.role = role;
+ public void setGlobalPermissionActions(List<String> perms) {
+ this.globalPermissionActions = perms;
}
public String getEnabledProperty() {
@@ -87,6 +89,6 @@
public void setDisabledProperty(String disabledProperty) {
this.disabledProperty = disabledProperty;
- }
-
+ }
}
+
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java Mon Nov 26 07:51:43 2007
@@ -383,8 +383,8 @@
boolean isWeblog = false;
try {
- UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
- Weblog weblog = mgr.getWebsiteByHandle(potentialHandle);
+ Weblog weblog = WebloggerFactory.getWeblogger().getWeblogManager()
+ .getWeblogByHandle(potentialHandle);
if(weblog != null) {
isWeblog = true;
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/MenuModel.java Mon Nov 26 07:51:43 2007
@@ -18,10 +18,13 @@
package org.apache.roller.weblogger.ui.rendering.model;
+import java.util.Collections;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.WebloggerFactory;
+import org.apache.roller.weblogger.pojos.GlobalPermission;
import org.apache.roller.weblogger.ui.core.util.menu.Menu;
import org.apache.roller.weblogger.ui.core.util.menu.MenuHelper;
import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
@@ -71,8 +74,16 @@
* currently logged in and is an admin.
*/
public Menu getAdminMenu() {
- if(pageRequest.isLoggedIn() && pageRequest.getUser().hasRole("admin")) {
- return MenuHelper.getMenu("admin", "noAction", pageRequest.getUser(), pageRequest.getWeblog());
+ try {
+ GlobalPermission adminPerm =
+ new GlobalPermission(Collections.singletonList(GlobalPermission.ADMIN));
+ boolean hasAdmin = WebloggerFactory.getWeblogger().getUserManager()
+ .checkPermission(adminPerm, pageRequest.getUser());
+ if (pageRequest.isLoggedIn() && hasAdmin) {
+ return MenuHelper.getMenu("admin", "noAction", pageRequest.getUser(), pageRequest.getWeblog());
+ }
+ } catch (WebloggerException ex) {
+ logger.debug("ERROR: fetching user roles");
}
return null;
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java Mon Nov 26 07:51:43 2007
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
@@ -49,11 +50,13 @@
private static Log log = LogFactory.getLog(PlanetModel.class);
private WeblogRequest weblogRequest = null;
- private URLStrategy urlStrategy = null;
- private String pageLink = null;
+ private String pageLink = null;
private int pageNum = 0;
- private Weblog weblog = null;
+ private Weblog weblog = null;
+ private URLStrategy urlStrategy = null;
+ private org.apache.roller.planet.business.URLStrategy planetUrlStrategy = null;
+
public String getModelName() {
return "planet";
@@ -79,6 +82,8 @@
urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
}
+ planetUrlStrategy = PlanetFactory.getPlanet().getURLStrategy();
+
// extract weblog object
weblog = weblogRequest.getWeblog();
}
@@ -192,4 +197,58 @@
return list;
}
+
+ /**
+ * Get PlanetGroups defined.
+ * @return List of Planet groups defined.
+ */
+ public List<PlanetGroup> getGroups() {
+ List list = new ArrayList<PlanetGroup>();
+ try {
+ PlanetManager planetManager = PlanetFactory.getPlanet().getPlanetManager();
+ Planet defaultPlanet = planetManager.getPlanet(DEFAULT_PLANET_HANDLE);
+ Set<PlanetGroup> groups = (Set<PlanetGroup>)defaultPlanet.getGroups();
+ for (PlanetGroup group : groups) {
+ // TODO needs pojo wrapping from planet
+ list.add(group);
+ }
+ } catch (Exception e) {
+ log.error("ERROR: getting groups", e);
+ }
+ return list;
+ }
+
+
+ /**
+ * Get PlanetGroup by handle.
+ * @param groupHandle Handle of PlanetGroup to fetch.
+ * @return PlaneGroup specified by handle.
+ */
+ public PlanetGroup getGroup(String groupHandle) {
+ PlanetGroup group = null;
+ try {
+ PlanetManager planetManager = PlanetFactory.getPlanet().getPlanetManager();
+ Planet defaultPlanet = planetManager.getPlanet(DEFAULT_PLANET_HANDLE);
+ // TODO needs pojo wrapping from planet
+ group = planetManager.getGroup(defaultPlanet, groupHandle);
+ } catch (Exception e) {
+ log.error("ERROR: getting group", e);
+ }
+ return group;
+ }
+
+
+ public String getPlanetURL() {
+ return planetUrlStrategy.getPlanetURL("ignored");
+ }
+
+
+ public String getPlanetGroupURL(String group, int pageNum) {
+ return planetUrlStrategy.getPlanetGroupURL("ignored", group, pageNum);
+ }
+
+
+ public String getPlanetFeedURL(String group, String format) {
+ return planetUrlStrategy.getPlanetGroupFeedURL("ignored", group, format);
+ }
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsFeedModel.java Mon Nov 26 07:51:43 2007
@@ -36,7 +36,7 @@
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.business.search.FieldConstants;
import org.apache.roller.weblogger.business.search.IndexManager;
import org.apache.roller.weblogger.business.search.operations.SearchOperation;
@@ -177,7 +177,7 @@
try {
TreeSet categories = new TreeSet();
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager weblogMgr = roller.getWeblogManager();
+ WeblogEntryManager weblogMgr = roller.getWeblogEntryManager();
WeblogEntry entry = null;
Document doc = null;
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel.java Mon Nov 26 07:51:43 2007
@@ -36,7 +36,7 @@
import org.apache.roller.weblogger.business.search.IndexManager;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.WeblogEntryWrapperComparator;
import org.apache.roller.weblogger.pojos.wrapper.WeblogCategoryWrapper;
@@ -168,7 +168,7 @@
try {
TreeSet categories = new TreeSet();
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager weblogMgr = roller.getWeblogManager();
+ WeblogEntryManager weblogMgr = roller.getWeblogEntryManager();
WeblogEntry entry = null;
Document doc = null;
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/SiteModel.java Mon Nov 26 07:51:43 2007
@@ -33,14 +33,14 @@
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
-import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.pojos.WeblogHitCount;
-import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.StatCount;
import org.apache.roller.weblogger.pojos.ThemeTemplate;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
@@ -303,9 +303,7 @@
public Map getWeblogHandleLetterMap() {
Map results = new HashMap();
try {
- Weblogger roller = WebloggerFactory.getWeblogger();
- UserManager umgr = roller.getUserManager();
- results = umgr.getWeblogHandleLetterMap();
+ results = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogHandleLetterMap();
} catch (Exception e) {
log.error("ERROR: fetching weblog handle letter map", e);
}
@@ -322,10 +320,9 @@
Weblogger roller = WebloggerFactory.getWeblogger();
UserManager umgr = roller.getUserManager();
User user = umgr.getUserByUserName(userName);
- List perms = umgr.getAllPermissions(user);
- for (Iterator it = perms.iterator(); it.hasNext();) {
- WeblogPermission perm = (WeblogPermission) it.next();
- results.add(WeblogWrapper.wrap(perm.getWebsite(), urlStrategy));
+ List<WeblogPermission> perms = umgr.getWeblogPermissions(user);
+ for (WeblogPermission perm : perms) {
+ results.add(WeblogWrapper.wrap(perm.getWeblog(), urlStrategy));
}
} catch (Exception e) {
log.error("ERROR: fetching weblog list", e);
@@ -342,10 +339,9 @@
try {
Weblogger roller = WebloggerFactory.getWeblogger();
UserManager umgr = roller.getUserManager();
- Weblog website = umgr.getWebsiteByHandle(handle);
- List perms = umgr.getAllPermissions(website);
- for (Iterator it = perms.iterator(); it.hasNext();) {
- WeblogPermission perm = (WeblogPermission) it.next();
+ Weblog website = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogByHandle(handle);
+ List<WeblogPermission> perms = umgr.getWeblogPermissions(website);
+ for (WeblogPermission perm : perms) {
results.add(UserWrapper.wrap(perm.getUser()));
}
} catch (Exception e) {
@@ -375,9 +371,7 @@
public WeblogWrapper getWeblog(String handle) {
WeblogWrapper wrappedWebsite = null;
try {
- Weblogger roller = WebloggerFactory.getWeblogger();
- UserManager umgr = roller.getUserManager();
- Weblog website = umgr.getWebsiteByHandle(handle);
+ Weblog website = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogByHandle(handle);
wrappedWebsite = WeblogWrapper.wrap(website, urlStrategy);
} catch (Exception e) {
log.error("ERROR: fetching users by letter", e);
@@ -401,10 +395,8 @@
cal.add(Calendar.DATE, -1 * sinceDays);
Date startDate = cal.getTime();
try {
- Weblogger roller = WebloggerFactory.getWeblogger();
- UserManager umgr = roller.getUserManager();
- List weblogs = umgr.getWebsites(
- null, Boolean.TRUE, Boolean.TRUE, startDate, null, 0, length);
+ List weblogs = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogs(
+ Boolean.TRUE, Boolean.TRUE, startDate, null, 0, length);
for (Iterator it = weblogs.iterator(); it.hasNext();) {
Weblog website = (Weblog) it.next();
results.add(WeblogWrapper.wrap(website, urlStrategy));
@@ -426,7 +418,7 @@
try {
Weblogger roller = WebloggerFactory.getWeblogger();
UserManager umgr = roller.getUserManager();
- List users = umgr.getUsers(null, Boolean.TRUE, null, null, 0, length);
+ List users = umgr.getUsers(Boolean.TRUE, null, null, 0, length);
for (Iterator it = users.iterator(); it.hasNext();) {
User user = (User) it.next();
results.add(UserWrapper.wrap(user));
@@ -447,7 +439,7 @@
List results = new ArrayList();
try {
- WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ WeblogEntryManager mgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
List hotBlogs = mgr.getHotWeblogs(sinceDays, 0, length);
Iterator hitCounts = hotBlogs.iterator();
@@ -486,8 +478,7 @@
Date startDate = cal.getTime();
try {
Weblogger roller = WebloggerFactory.getWeblogger();
- UserManager umgr = roller.getUserManager();
- results = umgr.getMostCommentedWebsites(
+ results = WebloggerFactory.getWeblogger().getWeblogManager().getMostCommentedWeblogs(
startDate, new Date(), 0, length);
} catch (Exception e) {
log.error("ERROR: fetching commented weblog list", e);
@@ -512,7 +503,7 @@
Date startDate = cal.getTime();
try {
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager wmgr = roller.getWeblogManager();
+ WeblogEntryManager wmgr = roller.getWeblogEntryManager();
results = wmgr.getMostCommentedWeblogEntries(
null, startDate, new Date(), 0, length);
} catch (Exception e) {
@@ -530,7 +521,7 @@
List results = new ArrayList();
try {
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager wmgr = roller.getWeblogManager();
+ WeblogEntryManager wmgr = roller.getWeblogEntryManager();
List weblogs = wmgr.getWeblogEntriesPinnedToMain(new Integer(length));
for (Iterator it = weblogs.iterator(); it.hasNext();) {
WeblogEntry entry = (WeblogEntry) it.next();
@@ -560,8 +551,8 @@
try {
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager wmgr = roller.getWeblogManager();
- results = wmgr.getPopularTags(null, startDate, length);
+ WeblogEntryManager wmgr = roller.getWeblogEntryManager();
+ results = wmgr.getPopularTags(null, startDate, 0, length);
} catch (Exception e) {
log.error("ERROR: fetching site tags list", e);
}
@@ -573,7 +564,7 @@
long count = 0;
try {
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager mgr = roller.getWeblogManager();
+ WeblogEntryManager mgr = roller.getWeblogEntryManager();
count = mgr.getCommentCount();
} catch (WebloggerException e) {
log.error("Error getting comment count for site ", e);
@@ -586,7 +577,7 @@
long count = 0;
try {
Weblogger roller = WebloggerFactory.getWeblogger();
- WeblogManager mgr = roller.getWeblogManager();
+ WeblogEntryManager mgr = roller.getWeblogEntryManager();
count = mgr.getEntryCount();
} catch (WebloggerException e) {
log.error("Error getting entry count for site", e);
@@ -598,9 +589,7 @@
public long getWeblogCount() {
long count = 0;
try {
- Weblogger roller = WebloggerFactory.getWeblogger();
- UserManager mgr = roller.getUserManager();
- count = mgr.getWeblogCount();
+ count = WebloggerFactory.getWeblogger().getWeblogManager().getWeblogCount();
} catch (WebloggerException e) {
log.error("Error getting weblog count for site", e);
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/URLModel.java Mon Nov 26 07:51:43 2007
@@ -26,7 +26,7 @@
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.Weblog;
@@ -229,7 +229,6 @@
return urlStrategy.getWeblogSearchURL(weblog, locale, null, null, -1, false);
}
-
public String search(String query, int pageNum) {
return urlStrategy.getWeblogSearchURL(weblog, locale, query, null, pageNum, false);
}
@@ -243,6 +242,14 @@
return urlStrategy.getWeblogSearchURL(weblog, locale, query, catPath, pageNum, true);
}
+ public String getOpenSearchSite() {
+ return urlStrategy.getOpenSearchSiteURL();
+ }
+
+ public String getOpenSearchWeblog() {
+ return urlStrategy.getOpenSearchWeblogURL(weblog.getHandle());
+ }
+
public String page(String pageLink) {
return urlStrategy.getWeblogPageURL(weblog, locale, pageLink, null, null, null, null, -1, true);
}
@@ -272,7 +279,7 @@
public String editEntry(String anchor) {
try {
// need to determine entryId from anchor
- WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
WeblogEntry entry = wmgr.getWeblogEntryByAnchor(weblog, anchor);
if(entry != null) {
return urlStrategy.getEntryEditURL(weblog.getHandle(), entry.getId(), false);
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java?rev=598319&r1=598318&r2=598319&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java Mon Nov 26 07:51:43 2007
@@ -29,13 +29,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
-import org.apache.roller.weblogger.ui.core.RollerSession;
import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
import org.apache.roller.util.DateUtil;
import org.apache.roller.util.RegexUtil;
import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogPermission;
+import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
import org.apache.roller.weblogger.ui.rendering.util.ParsedRequest;
import org.apache.roller.weblogger.util.URLUtilities;
import org.apache.roller.weblogger.util.Utilities;
@@ -122,8 +122,8 @@
public boolean isUserAuthorizedToAuthor(WeblogWrapper weblog) {
try {
if (parsedRequest.getAuthenticUser() != null) {
- return weblog.getPojo().hasUserPermissions(
- parsedRequest.getUser(), WeblogPermission.AUTHOR);
+ return weblog.getPojo().hasUserPermission(
+ parsedRequest.getUser(), WeblogPermission.POST);
}
} catch (Exception e) {
log.warn("ERROR: checking user authorization", e);
@@ -134,7 +134,7 @@
public boolean isUserAuthorizedToAdmin(WeblogWrapper weblog) {
try {
if (parsedRequest.getAuthenticUser() != null) {
- return weblog.getPojo().hasUserPermissions(
+ return weblog.getPojo().hasUserPermission(
parsedRequest.getUser(), WeblogPermission.ADMIN);
}
} catch (Exception e) {
@@ -142,11 +142,16 @@
}
return false;
}
-
+
public boolean isUserAuthenticated() {
return (parsedRequest.getAuthenticUser() != null);
}
-
+
+ public UserWrapper getAuthenticatedUser() {
+ return parsedRequest.getAuthenticUser() != null
+ ? UserWrapper.wrap(parsedRequest.getUser()) : null;
+ }
+
//-------------------------------------------------------------- Date utils
/**
* Return date for current time.