change role to enum

This commit is contained in:
Athou
2013-03-30 19:06:32 +01:00
parent 06aa9c4a6f
commit d8b8f6617a
15 changed files with 77 additions and 86 deletions

View File

@@ -1,23 +0,0 @@
package com.commafeed.frontend.rest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.enterprise.util.Nonbinding;
import javax.interceptor.InterceptorBinding;
@Inherited
@InterceptorBinding
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface SecurityCheck {
/**
* Roles needed.
*/
@Nonbinding
String[] value() default {};
}

View File

@@ -33,11 +33,11 @@ import com.commafeed.backend.dao.UserService;
import com.commafeed.backend.dao.UserSettingsService;
import com.commafeed.backend.feeds.OPMLImporter;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.security.PasswordEncryptionService;
import com.commafeed.backend.security.Role;
import com.commafeed.frontend.CommaFeedApplication;
import com.commafeed.frontend.CommaFeedSession;
import com.commafeed.frontend.rest.SecurityCheck;
import com.commafeed.frontend.SecurityCheck;
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@@ -133,11 +133,9 @@ public abstract class AbstractREST {
}
private boolean checkRole(User user, SecurityCheck annotation) {
Set<String> roles = userRoleService.getRoles(user);
for (String role : annotation.value()) {
if (!roles.contains(role)) {
return false;
}
Set<Role> roles = userRoleService.getRoles(user);
if (!roles.contains(annotation.value())) {
return false;
}
return true;
}

View File

@@ -16,9 +16,9 @@ import org.apache.commons.lang.StringUtils;
import com.commafeed.backend.StartupBean;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.security.Role;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.frontend.SecurityCheck;
import com.commafeed.frontend.model.UserModel;
import com.commafeed.frontend.rest.SecurityCheck;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -37,7 +37,7 @@ public class AdminUsersREST extends AbstractREST {
if (id == null) {
Preconditions.checkNotNull(userModel.getPassword());
Set<String> roles = Sets.newHashSet(Role.USER);
Set<Role> roles = Sets.newHashSet(Role.USER);
if (userModel.isAdmin()) {
roles.add(Role.ADMIN);
}
@@ -63,12 +63,12 @@ public class AdminUsersREST extends AbstractREST {
user.setDisabled(!userModel.isEnabled());
userService.update(user);
Set<String> roles = userRoleService.getRoles(user);
Set<Role> roles = userRoleService.getRoles(user);
if (userModel.isAdmin() && !roles.contains(Role.ADMIN)) {
userRoleService.save(new UserRole(user, Role.ADMIN));
} else if (!userModel.isAdmin() && roles.contains(Role.ADMIN)) {
for (UserRole userRole : userRoleService.findAll(user)) {
if (Role.ADMIN.equals(userRole.getRole())) {
if (userRole.getRole() == Role.ADMIN) {
userRoleService.delete(userRole);
}
}
@@ -88,7 +88,7 @@ public class AdminUsersREST extends AbstractREST {
userModel.setName(user.getName());
userModel.setEnabled(!user.isDisabled());
for (UserRole role : userRoleService.findAll(user)) {
if (Role.ADMIN.equals(role.getRole())) {
if (role.getRole() == Role.ADMIN) {
userModel.setAdmin(true);
}
}
@@ -110,7 +110,7 @@ public class AdminUsersREST extends AbstractREST {
userModel.setEnabled(!user.isDisabled());
users.put(key, userModel);
}
if (Role.ADMIN.equals(role.getRole())) {
if (role.getRole() == Role.ADMIN) {
userModel.setAdmin(true);
}
}