X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fparts%2FUserMainPage.java;h=58acface85c173a02d2a51ec9c449a41e70fbe19;hb=6bd449f839949c0ebc7eafdd9c9997dc10850db0;hp=d732e7e7fbdccc96f5d7b406d948a281b4ee8b14;hpb=935a76bdd458e4fb8502783946cb910324388da8;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java index d732e7e7f..58acface8 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java @@ -20,6 +20,7 @@ import java.util.Iterator; import java.util.List; import org.argeo.ArgeoException; +import org.argeo.cms.auth.AuthConstants; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; @@ -54,9 +55,12 @@ import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; @@ -95,6 +99,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { ScrolledForm form = mf.getForm(); Composite body = form.getBody(); GridLayout mainLayout = new GridLayout(); + // mainLayout.marginRight = 10; body.setLayout(mainLayout); User user = editor.getDisplayedUser(); appendOverviewPart(body, user); @@ -157,9 +162,6 @@ public class UserMainPage extends FormPage implements ArgeoNames { user.getProperties().put(LdifName.cn.name(), commonName.getText()); user.getProperties().put(LdifName.mail.name(), email.getText()); - // Enable common name ? - // editor.setProperty(UserAdminConstants.KEY_CN, - // email.getText()); super.commit(onSave); } @@ -173,7 +175,8 @@ public class UserMainPage extends FormPage implements ArgeoNames { LdifName.givenname.name())); lastName.setText(UiAdminUtils.getProperty(user, LdifName.sn.name())); - email.setText(LdifName.mail.name()); + email.setText(UiAdminUtils.getProperty(user, + LdifName.mail.name())); refreshFormTitle(user); super.refresh(); } @@ -249,22 +252,29 @@ public class UserMainPage extends FormPage implements ArgeoNames { Composite body = (Composite) section.getClient(); body.setLayout(EclipseUiUtils.noSpaceGridLayout()); + boolean isAdmin = UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN); + // Displayed columns List columnDefs = new ArrayList(); columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 0, 24)); columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150)); columnDefs.add(new ColumnDefinition(new DomainNameLP(), "Domain Name", - 120)); - columnDefs.add(new ColumnDefinition(new UserNameLP(), - "Distinguished Name", 300)); + 200)); + // Only show technical DN to administrators + if (isAdmin) + columnDefs.add(new ColumnDefinition(new UserNameLP(), + "Distinguished Name", 120)); // Create and configure the table final LdifUsersTable userViewerCmp = new MyUserTableViewer(body, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, user); userViewerCmp.setColumnDefinitions(columnDefs); - userViewerCmp.populate(true, false); + if (isAdmin) + userViewerCmp.populateWithStaticFilters(false, false); + else + userViewerCmp.populate(true, false); GridData gd = EclipseUiUtils.fillAll(); gd.heightHint = 300; userViewerCmp.setLayoutData(gd); @@ -311,7 +321,9 @@ public class UserMainPage extends FormPage implements ArgeoNames { } private class MyUserTableViewer extends LdifUsersTable { - private static final long serialVersionUID = 8467999509931900367L; + private static final long serialVersionUID = 2653790051461237329L; + + private Button showSystemRoleBtn; private final User user; private final UserFilter userFilter; @@ -320,6 +332,23 @@ public class UserMainPage extends FormPage implements ArgeoNames { super(parent, style, true); this.user = user; userFilter = new UserFilter(); + userFilter.setShowSystemRole(false); + } + + protected void populateStaticFilters(Composite staticFilterCmp) { + staticFilterCmp.setLayout(new GridLayout()); + showSystemRoleBtn = new Button(staticFilterCmp, SWT.CHECK); + showSystemRoleBtn.setText("Show system roles"); + showSystemRoleBtn.addSelectionListener(new SelectionAdapter() { + private static final long serialVersionUID = -7033424592697691676L; + + @Override + public void widgetSelected(SelectionEvent e) { + userFilter.setShowSystemRole(showSystemRoleBtn + .getSelection()); + refresh(); + } + }); } @Override