delete users

This commit is contained in:
Athou
2013-03-30 11:37:57 +01:00
parent 5cafcdf2d8
commit df9e3f8780
13 changed files with 54 additions and 11 deletions

View File

@@ -16,7 +16,7 @@ import com.uaihebert.model.EasyCriteria;
@Stateless
@SuppressWarnings("serial")
public class FeedCategoryService extends GenericDAO<FeedCategory, Long> {
public class FeedCategoryService extends GenericDAO<FeedCategory> {
public List<FeedCategory> findAll(User user) {
return findByField(MF.i(MF.p(FeedCategory.class).getUser()), user);

View File

@@ -23,7 +23,7 @@ import com.google.common.collect.Lists;
@Stateless
@SuppressWarnings("serial")
public class FeedEntryService extends GenericDAO<FeedEntry, Long> {
public class FeedEntryService extends GenericDAO<FeedEntry> {
@Inject
FeedService feedService;

View File

@@ -1,5 +1,7 @@
package com.commafeed.backend.dao;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.NoResultException;
@@ -12,7 +14,11 @@ import com.uaihebert.model.EasyCriteria;
@Stateless
@SuppressWarnings("serial")
public class FeedEntryStatusService extends GenericDAO<FeedEntryStatus, Long> {
public class FeedEntryStatusService extends GenericDAO<FeedEntryStatus> {
public List<FeedEntryStatus> findAll(User user) {
return findByField(MF.i(proxy().getUser()), user);
}
public FeedEntryStatus getStatus(User user, FeedEntry entry) {
EasyCriteria<FeedEntryStatus> criteria = EasyCriteriaFactory

View File

@@ -10,7 +10,7 @@ import com.google.common.collect.Iterables;
@Stateless
@SuppressWarnings("serial")
public class FeedService extends GenericDAO<Feed, Long> {
public class FeedService extends GenericDAO<Feed> {
public Feed findByUrl(String url) {
List<Feed> feeds = findByField(MF.i(proxy().getUrl()), url);

View File

@@ -15,7 +15,7 @@ import com.uaihebert.model.EasyCriteria;
@Stateless
@SuppressWarnings("serial")
public class FeedSubscriptionService extends GenericDAO<FeedSubscription, Long> {
public class FeedSubscriptionService extends GenericDAO<FeedSubscription> {
@Inject
FeedCategoryService feedCategoryService;

View File

@@ -17,7 +17,8 @@ import com.uaihebert.factory.EasyCriteriaFactory;
import com.uaihebert.model.EasyCriteria;
@SuppressWarnings("serial")
public abstract class GenericDAO<T, K> implements Serializable {
public abstract class GenericDAO<T extends AbstractModel> implements
Serializable {
private TypeToken<T> type = new TypeToken<T>(getClass()) {
};
@@ -55,12 +56,18 @@ public abstract class GenericDAO<T, K> implements Serializable {
em.remove(object);
}
public void deleteById(K id) {
public void delete(List<T> objects) {
for (T object : objects) {
delete(object);
}
}
public void deleteById(Long id) {
Object ref = em.getReference(getType(), id);
em.remove(ref);
}
public T findById(K id) {
public T findById(Long id) {
T t = em.find(getType(), id);
return t;
}

View File

@@ -12,7 +12,7 @@ import com.google.common.collect.Sets;
@SuppressWarnings("serial")
@Stateless
public class UserRoleService extends GenericDAO<UserRole, Long> {
public class UserRoleService extends GenericDAO<UserRole> {
public List<UserRole> findAll(User user) {
return findByField(MF.i(MF.p(UserRole.class).getUser()), user);

View File

@@ -15,7 +15,7 @@ import com.google.common.collect.Iterables;
@Stateless
@SuppressWarnings("serial")
public class UserService extends GenericDAO<User, Long> {
public class UserService extends GenericDAO<User> {
@Inject
PasswordEncryptionService encryptionService;

View File

@@ -11,7 +11,7 @@ import com.uaihebert.model.EasyCriteria;
@Stateless
@SuppressWarnings("serial")
public class UserSettingsService extends GenericDAO<UserSettings, Long> {
public class UserSettingsService extends GenericDAO<UserSettings> {
public UserSettings findByUser(User user) {

View File

@@ -4,6 +4,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.Set;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
@@ -110,4 +111,21 @@ public class AdminUsersREST extends AbstractREST {
}
return users.values();
}
@Path("delete")
@DELETE
public Response delete(@QueryParam("id") Long id) {
User user = userService.findById(id);
if (user == null) {
return Response.status(Status.NOT_FOUND).build();
}
feedEntryStatusService.delete(feedEntryStatusService.findAll(user));
feedSubscriptionService.delete(feedSubscriptionService.findAll(user));
feedCategoryService.delete(feedCategoryService.findAll(user));
userSettingsService.delete(userSettingsService.findByUser(user));
userRoleService.delete(userRoleService.findAll(user));
userService.delete(user);
return Response.ok().build();
}
}

View File

@@ -292,4 +292,9 @@ module.controller('ManageUserCtrl', function($scope, $state, $stateParams,
});
});
};
$scope.delete = function() {
AdminUsersService.delete({id: $scope.user.id}, function() {
$state.transitionTo('admin.userlist');
});
};
});

View File

@@ -148,6 +148,12 @@ module.factory('AdminUsersService', function($resource) {
params : {
_method : 'save'
}
},
delete : {
method : 'DELETE',
params : {
_method : 'delete'
}
}
};
var res = $resource('rest/admin/users/:_method', {}, actions);

View File

@@ -39,6 +39,7 @@
<div class="control-group">
<div class="controls">
<button type="button" class="btn" ng-click="cancel()">Cancel</button>
<button type="button" class="btn btn-danger" ng-click="delete()">Delete</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>