/
UserAdminPage.java
81 lines (70 loc) · 2.33 KB
/
UserAdminPage.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package net.databinder.auth.components.ao;
import java.io.Serializable;
import java.util.Map;
import net.databinder.auth.components.DataUserStatusPanelBase;
import net.databinder.auth.components.UserAdminPageBase;
import net.databinder.auth.data.ao.DataUserEntity;
import net.databinder.auth.data.ao.UserHelper;
import net.databinder.components.ao.DataForm;
import net.databinder.models.ao.EntityListModel;
import net.databinder.models.ao.EntityModel;
import org.apache.wicket.authorization.strategies.role.Roles;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
/**
* User administration page. Lists all users, allows editing usernames, passwords, and roles.
* Must have Role.ADMIN to view. Replaceable String resources: <pre>
* data.auth.user_admin
* data.auth.user_add
* data.auth.username
* data.auth.password
* data.auth.passwordConfirm
* data.auth.roles
* data.auth.save
* data.auth.delete</pre>
* @see net.databinder.auth.AuthSession
*/
public class UserAdminPage<T extends DataUserEntity<K>, K extends Serializable>
extends UserAdminPageBase<T> {
private DataForm<T, K> form;
@Override
protected Form<T> adminForm(String id, Class<T> userClass) {
return form = new DataForm<T, K>(id, new EntityModel<T, K>(userClass) {
@Override
protected void putDefaultProperties(
Map<String, Object> propertyStore) {
propertyStore.put("roles", new Roles(Roles.USER));
}
}) {
@Override
protected void onSubmit() {
if (!getEntityModel().isBound()) {
Map<String, Object> map = (Map<String, Object>) getModelObject();
map.put("roleString", ((Roles)map.remove("roles")).toString());
}
super.onSubmit();
}
};
}
@SuppressWarnings("unchecked")
@Override
protected void setPassword(String password) {
if (getUserForm().getEntityModel().isBound())
super.setPassword(password);
else
((Map)getUserForm().getModelObject()).put("passwordHash", UserHelper.getHash(password));
}
@Override
protected Button deleteButton(String id) {
return getUserForm().new DeleteButton(id);
}
@Override
protected DataUserStatusPanelBase statusPanel(String id) {
return new DataUserStatusPanel(id);
}
@Override
protected EntityListModel<T> userList(Class<T> userClass) {
return new EntityListModel<T>(userClass);
}
}