admin implementation

This commit is contained in:
Athou
2013-03-29 16:05:29 +01:00
parent fc8bd5c812
commit 09c91106f8
5 changed files with 94 additions and 14 deletions

View File

@@ -5,7 +5,6 @@ import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@@ -31,7 +30,7 @@ public class User extends AbstractModel {
@Column(nullable = false)
private boolean disabled;
@OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
@OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST)
private Set<UserRole> roles = Sets.newHashSet();
public String getName() {

View File

@@ -0,0 +1,39 @@
package com.commafeed.frontend.model;
import java.io.Serializable;
import java.util.Set;
import com.google.common.collect.Sets;
@SuppressWarnings("serial")
public class UserModel implements Serializable {
private String name;
private Set<String> roles = Sets.newHashSet();
private boolean enabled;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<String> getRoles() {
return roles;
}
public void setRoles(Set<String> roles) {
this.roles = roles;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}

View File

@@ -5,6 +5,7 @@ import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import com.commafeed.frontend.rest.resources.AdminREST;
import com.commafeed.frontend.rest.resources.EntriesREST;
import com.commafeed.frontend.rest.resources.SettingsREST;
import com.commafeed.frontend.rest.resources.SubscriptionsREST;
@@ -21,6 +22,7 @@ public class RESTApplication extends Application {
set.add(SubscriptionsREST.class);
set.add(EntriesREST.class);
set.add(SettingsREST.class);
set.add(AdminREST.class);
return set;
}
}

View File

@@ -0,0 +1,38 @@
package com.commafeed.frontend.rest.resources;
import java.util.Collection;
import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.security.Role;
import com.commafeed.frontend.model.UserModel;
import com.commafeed.frontend.rest.SecurityCheck;
import com.google.common.collect.Maps;
@SecurityCheck(Role.ADMIN)
@Path("admin")
public class AdminREST extends AbstractREST {
@Path("users/get")
@GET
public Collection<UserModel> getUsers() {
Map<Long, UserModel> users = Maps.newHashMap();
for (UserRole role : userRoleService.findAll()) {
User user = role.getUser();
Long key = user.getId();
UserModel userModel = users.get(key);
if (userModel == null) {
userModel = new UserModel();
userModel.setName(user.getName());
userModel.setEnabled(!user.isDisabled());
users.put(key, userModel);
}
userModel.getRoles().add(role.getRole());
}
return users.values();
}
}