]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java
Remove DocBook from defaults CNDs
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / internal / providers / UserFilter.java
1 package org.argeo.security.ui.admin.internal.providers;
2
3 import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty;
4
5 import org.argeo.cms.auth.AuthConstants;
6 import org.argeo.cms.util.useradmin.UserAdminUtils;
7 import org.argeo.osgi.useradmin.LdifName;
8 import org.eclipse.jface.viewers.Viewer;
9 import org.eclipse.jface.viewers.ViewerFilter;
10 import org.osgi.service.useradmin.User;
11
12 public class UserFilter extends ViewerFilter {
13 private static final long serialVersionUID = 5082509381672880568L;
14
15 private String searchString;
16 private boolean showSystemRole = true;
17
18 private final String[] knownProps = { LdifName.dn.name(),
19 LdifName.cn.name(), LdifName.givenName.name(), LdifName.sn.name(),
20 LdifName.uid.name(), LdifName.description.name(),
21 LdifName.mail.name() };
22
23 public void setSearchText(String s) {
24 // ensure that the value can be used for matching
25 if (notEmpty(s))
26 searchString = ".*" + s.toLowerCase() + ".*";
27 else
28 searchString = ".*";
29 }
30
31 public void setShowSystemRole(boolean showSystemRole) {
32 this.showSystemRole = showSystemRole;
33 }
34
35 @Override
36 public boolean select(Viewer viewer, Object parentElement, Object element) {
37 User user = (User) element;
38
39 if (!showSystemRole
40 && user.getName().matches(
41 ".*(" + AuthConstants.ROLES_BASEDN + ")"))
42 // UserAdminUtils.getProperty(user, LdifName.dn.name())
43 // .toLowerCase().endsWith(AuthConstants.ROLES_BASEDN))
44 return false;
45
46 if (searchString == null || searchString.length() == 0)
47 return true;
48
49 if (user.getName().matches(searchString))
50 return true;
51
52 for (String key : knownProps) {
53 String currVal = UserAdminUtils.getProperty(user, key);
54 if (notEmpty(currVal)
55 && currVal.toLowerCase().matches(searchString))
56 return true;
57 }
58 return false;
59 }
60
61 }