]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserFilter.java
1 package org
.argeo
.security
.ui
.admin
.internal
.providers
;
3 import static org
.argeo
.eclipse
.ui
.EclipseUiUtils
.notEmpty
;
5 import org
.argeo
.cms
.auth
.AuthConstants
;
6 import org
.argeo
.osgi
.useradmin
.LdifName
;
7 import org
.argeo
.security
.ui
.admin
.internal
.UiAdminUtils
;
8 import org
.eclipse
.jface
.viewers
.Viewer
;
9 import org
.eclipse
.jface
.viewers
.ViewerFilter
;
10 import org
.osgi
.service
.useradmin
.User
;
12 public class UserFilter
extends ViewerFilter
{
13 private static final long serialVersionUID
= 5082509381672880568L;
15 private String searchString
;
16 private boolean showSystemRole
= true;
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() };
23 public void setSearchText(String s
) {
24 // ensure that the value can be used for matching
26 searchString
= ".*" + s
.toLowerCase() + ".*";
31 public void setShowSystemRole(boolean showSystemRole
) {
32 this.showSystemRole
= showSystemRole
;
36 public boolean select(Viewer viewer
, Object parentElement
, Object element
) {
37 User user
= (User
) element
;
40 && user
.getName().matches(
41 ".*(" + AuthConstants
.ROLES_BASEDN
+ ")"))
42 // UiAdminUtils.getProperty(user, LdifName.dn.name())
43 // .toLowerCase().endsWith(AuthConstants.ROLES_BASEDN))
46 if (searchString
== null || searchString
.length() == 0)
49 if (user
.getName().matches(searchString
))
52 for (String key
: knownProps
) {
53 String currVal
= UiAdminUtils
.getProperty(user
, key
);
55 && currVal
.toLowerCase().matches(searchString
))