Author: mfranklin
Date: Tue Oct 16 02:32:51 2012
New Revision: 1398620
URL: http://svn.apache.org/viewvc?rev=1398620&view=rev
Log:
Updated user repository
Added:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/MongoDbUserConverter.java
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java?rev=1398620&r1=1398619&r2=1398620&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
Tue Oct 16 02:32:51 2012
@@ -19,12 +19,43 @@
package org.apache.rave.portal.model;
+import com.google.common.collect.Lists;
import org.apache.rave.portal.model.impl.UserImpl;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+
+import java.util.Collection;
+import java.util.List;
/**
*/
public class MongoDbUser extends UserImpl {
+
+ private List<String> authorityCodes;
+
public MongoDbUser(long id) {
super(id);
}
+
+ public MongoDbUser() {
+ }
+
+ public List<String> getAuthorityCodes() {
+ return authorityCodes;
+ }
+
+ public void setAuthorityCodes(List<String> authorityCodes) {
+ this.authorityCodes = authorityCodes;
+ }
+
+ @Override
+ public Collection<GrantedAuthority> getAuthorities() {
+ Collection<GrantedAuthority> grantedAuthorities = Lists.newArrayList();
+ if (authorityCodes != null) {
+ for (String code : authorityCodes) {
+ grantedAuthorities.add(new SimpleGrantedAuthority(code));
+ }
+ }
+ return grantedAuthorities;
+ }
}
Added:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/MongoDbUserConverter.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/MongoDbUserConverter.java?rev=1398620&view=auto
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/MongoDbUserConverter.java
(added)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/MongoDbUserConverter.java
Tue Oct 16 02:32:51 2012
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. 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
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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.
+ */
+
+package org.apache.rave.portal.model.conversion;
+
+import com.google.common.collect.Lists;
+import org.apache.rave.portal.model.MongoDbUser;
+import org.apache.rave.portal.model.User;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+import static org.apache.rave.portal.model.util.MongoDbModelUtil.generateId;
+
+@Component
+public class MongoDbUserConverter implements HydratingModelConverter<User,
MongoDbUser> {
+ @Override
+ public void hydrate(MongoDbUser dehydrated) {
+ //NOOP
+ }
+
+ @Override
+ public Class<User> getSourceType() {
+ return User.class;
+ }
+
+ @Override
+ public MongoDbUser convert(User source) {
+ MongoDbUser user = source instanceof MongoDbUser ?
((MongoDbUser)source) : new MongoDbUser();
+ List<String> authorityCodes = Lists.newArrayList();
+ for(GrantedAuthority authority : source.getAuthorities()) {
+ authorityCodes.add(authority.getAuthority());
+ }
+ updateProperties(source, user);
+ return user;
+ }
+
+ private void updateProperties(User source, MongoDbUser converted) {
+ converted.setId(source.getId() == null ? generateId() :
source.getId());
+ converted.setUsername(source.getUsername());
+ converted.setEmail(source.getEmail());
+ converted.setDisplayName(source.getDisplayName());
+ converted.setAdditionalName(source.getUsername());
+ converted.setFamilyName(source.getFamilyName());
+ converted.setGivenName(source.getGivenName());
+ converted.setHonorificPrefix(source.getHonorificPrefix());
+ converted.setHonorificSuffix(source.getHonorificSuffix());
+ converted.setPreferredName(source.getPreferredName());
+ converted.setAboutMe(source.getAboutMe());
+ converted.setStatus(source.getStatus());
+ converted.setAddresses(source.getAddresses());
+ converted.setOrganizations(source.getOrganizations());
+ converted.setProperties(source.getProperties());
+ converted.setPassword(source.getPassword());
+ converted.setConfirmPassword(source.getConfirmPassword());
+ converted.setDefaultPageLayout(source.getDefaultPageLayout());
+ converted.setDefaultPageLayoutCode(source.getDefaultPageLayoutCode());
+ converted.setEnabled(source.isEnabled());
+ converted.setExpired(source.isExpired());
+ converted.setLocked(source.isLocked());
+ converted.setOpenId(source.getOpenId());
+ converted.setForgotPasswordHash(source.getForgotPasswordHash());
+ converted.setForgotPasswordTime(source.getForgotPasswordTime());
+ }
+}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java?rev=1398620&r1=1398619&r2=1398620&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java
Tue Oct 16 02:32:51 2012
@@ -22,12 +22,17 @@ package org.apache.rave.portal.repositor
import org.apache.rave.portal.model.PageTemplate;
import org.apache.rave.portal.model.PageType;
import org.apache.rave.portal.model.conversion.MongoDbConverter;
+import org.apache.rave.portal.model.impl.PageTemplateImpl;
import org.apache.rave.portal.repository.PageTemplateRepository;
+import org.apache.rave.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.data.mongodb.core.query.Query;
import java.util.List;
+import static org.springframework.data.mongodb.core.query.Criteria.where;
+
/**
*/
public class MongoDbPageTemplateRepository implements PageTemplateRepository {
@@ -41,11 +46,17 @@ public class MongoDbPageTemplateReposito
@Override
public List<PageTemplate> getAll() {
- return null;
+ List<PageTemplateImpl> templates =
template.findAll(PageTemplateImpl.class, COLLECTION);
+ for(PageTemplateImpl temp : templates) {
+ converter.hydrate(temp, PageTemplate.class);
+ }
+ return CollectionUtils.<PageTemplate>toBaseTypedList(templates);
}
@Override
public PageTemplate getDefaultPage(PageType pageType) {
- return null;
+ PageTemplate temp = template.findOne(new
Query(where("pageType").is(pageType).andOperator(where("defaultTemplate").is(true))),
PageTemplateImpl.class, COLLECTION);
+ converter.hydrate(temp, PageTemplate.class);
+ return temp;
}
}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java?rev=1398620&r1=1398619&r2=1398620&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
Tue Oct 16 02:32:51 2012
@@ -23,17 +23,26 @@ import org.apache.rave.portal.model.Mong
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.conversion.MongoDbConverter;
import org.apache.rave.portal.repository.UserRepository;
+import org.apache.rave.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
+import static org.springframework.data.mongodb.core.query.Criteria.where;
+
+
/**
*/
@Repository
public class MongoDbUserRepository implements UserRepository {
+ public static final String COLLECTION = "person";
+ public static final Class<MongoDbUser> CLAZZ = MongoDbUser.class;
+
@Autowired
private MongoOperations template;
@@ -42,67 +51,89 @@ public class MongoDbUserRepository imple
@Override
public User getByUsername(String username) {
- return null;
+ return hydrate(template.findOne(query(where("username").is(username)),
CLAZZ, COLLECTION));
}
@Override
public User getByUserEmail(String userEmail) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return hydrate(template.findOne(query(where("email").is(userEmail)),
CLAZZ, COLLECTION));
}
@Override
public User getByOpenId(String openId) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return hydrate(template.findOne(query(where("openId").is(openId)),
CLAZZ, COLLECTION));
}
@Override
public List<User> getLimitedList(int offset, int pageSize) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ Query query = new Query().skip(offset).limit(pageSize);
+ return hydrate(template.find(query, CLAZZ, COLLECTION));
}
@Override
public int getCountAll() {
- return 0; //To change body of implemented methods use File | Settings
| File Templates.
+ return (int)template.count(new Query(), COLLECTION);
}
@Override
public List<User> findByUsernameOrEmail(String searchTerm, int offset, int
pageSize) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return
hydrate(template.find(getSearchQuery(searchTerm).skip(offset).limit(pageSize),
CLAZZ, COLLECTION));
}
@Override
public int getCountByUsernameOrEmail(String searchTerm) {
- return 0; //To change body of implemented methods use File | Settings
| File Templates.
+ return (int)template.count(getSearchQuery(searchTerm), COLLECTION);
}
@Override
public List<User> getAllByAddedWidget(long widgetId) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return null;
}
@Override
public User getByForgotPasswordHash(String hash) {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return
hydrate(template.findOne(query(where("forgotPasswordHash").is(hash)), CLAZZ,
COLLECTION));
}
@Override
public Class<? extends User> getType() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+ return MongoDbUser.class;
}
@Override
public User get(long id) {
- return template.findById(id, MongoDbUser.class);
+ return hydrate(template.findById(id, CLAZZ, COLLECTION));
}
@Override
public User save(User item) {
- template.save(item, "mongoDbUser");
- return item;
+ MongoDbUser converted = converter.convert(item, User.class);
+ template.save(converted, COLLECTION);
+ return hydrate(converted);
}
@Override
public void delete(User item) {
- //To change body of implemented methods use File | Settings | File
Templates.
+ template.remove(get(item.getId()), COLLECTION);
+ }
+
+ private User hydrate(MongoDbUser user) {
+ converter.hydrate(user, User.class);
+ return user;
+ }
+
+ private List<User> hydrate(List<MongoDbUser> userList) {
+ for(MongoDbUser user : userList) {
+ converter.hydrate(user, User.class);
+ }
+ return CollectionUtils.<User>toBaseTypedList(userList);
+ }
+
+ private Query query(Criteria criteria) {
+ return new Query(criteria);
+ }
+
+ private Query getSearchQuery(String searchTerm) {
+ return
query(where("username").is(searchTerm).orOperator(where("email").is(searchTerm)));
}
}