Search in sources :

Example 1 with User

use of org.netxms.client.users.User in project netxms by netxms.

the class General method createContents.

/* (non-Javadoc)
	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
	 */
@Override
protected Control createContents(Composite parent) {
    Composite dialogArea = new Composite(parent, SWT.NONE);
    object = (AbstractUserObject) getElement().getAdapter(AbstractUserObject.class);
    GridLayout layout = new GridLayout();
    layout.verticalSpacing = WidgetHelper.OUTER_SPACING;
    dialogArea.setLayout(layout);
    // Object ID
    WidgetHelper.createLabeledText(dialogArea, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY, SWT.DEFAULT, Messages.get().General_ObjectID, Long.toString(object.getId()), WidgetHelper.DEFAULT_LAYOUT_DATA);
    // Object name
    initialName = new String(object.getName());
    textName = WidgetHelper.createLabeledText(dialogArea, SWT.SINGLE | SWT.BORDER, SWT.DEFAULT, Messages.get().General_LoginName, initialName, WidgetHelper.DEFAULT_LAYOUT_DATA);
    // Full name
    if (object instanceof User) {
        initialFullName = new String(((User) object).getFullName());
        textFullName = WidgetHelper.createLabeledText(dialogArea, SWT.SINGLE | SWT.BORDER, SWT.DEFAULT, Messages.get().General_FullName, initialFullName, WidgetHelper.DEFAULT_LAYOUT_DATA);
        initialXmppId = new String(((User) object).getXmppId());
        textXmppId = WidgetHelper.createLabeledText(dialogArea, SWT.SINGLE | SWT.BORDER, SWT.DEFAULT, Messages.get().General_XMPPID, initialXmppId, WidgetHelper.DEFAULT_LAYOUT_DATA);
    } else {
        // $NON-NLS-1$
        initialFullName = "";
        // $NON-NLS-1$
        initialXmppId = "";
    }
    // Description
    initialDescription = new String(object.getDescription());
    textDescription = WidgetHelper.createLabeledText(dialogArea, SWT.SINGLE | SWT.BORDER, SWT.DEFAULT, Messages.get().General_Description, initialDescription, WidgetHelper.DEFAULT_LAYOUT_DATA);
    return dialogArea;
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) User(org.netxms.client.users.User) Composite(org.eclipse.swt.widgets.Composite)

Example 2 with User

use of org.netxms.client.users.User in project netxms by netxms.

the class UserManagementView method fillContextMenu.

/**
 * Fill context menu
 *
 * @param mgr Menu manager
 */
protected void fillContextMenu(final IMenuManager mgr) {
    final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
    mgr.add(actionAddUser);
    mgr.add(actionAddGroup);
    mgr.add(new Separator());
    boolean containDisabled = false;
    boolean containEnabled = false;
    boolean containLDAP = false;
    for (Object object : selection.toList()) {
        if (((AbstractUserObject) object).isDisabled())
            containDisabled = true;
        if (!((AbstractUserObject) object).isDisabled())
            containEnabled = true;
        if ((((AbstractUserObject) object).getFlags() & AbstractUserObject.LDAP_USER) != 0)
            containLDAP = true;
    }
    if (containDisabled)
        mgr.add(actionEnable);
    if (containEnabled)
        mgr.add(actionDisable);
    if (containLDAP)
        mgr.add(actionDetachUserFromLDAP);
    final Object firstElement = selection.getFirstElement();
    if (firstElement instanceof User && !containLDAP) {
        mgr.add(actionChangePassword);
    }
    mgr.add(actionDeleteUser);
    mgr.add(new Separator());
    mgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
    mgr.add(new Separator());
    mgr.add(actionEditUser);
}
Also used : User(org.netxms.client.users.User) AbstractUserObject(org.netxms.client.users.AbstractUserObject) AbstractUserObject(org.netxms.client.users.AbstractUserObject) GroupMarker(org.eclipse.jface.action.GroupMarker) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Separator(org.eclipse.jface.action.Separator)

Example 3 with User

use of org.netxms.client.users.User in project netxms by netxms.

the class UserManagementView method changePassword.

/**
 * Change password
 */
private void changePassword() {
    final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
    final Object firstElement = selection.getFirstElement();
    if (firstElement instanceof User) {
        User user = (User) firstElement;
        final ChangePasswordDialog dialog = new ChangePasswordDialog(getSite().getShell(), user.getId() == session.getUserId());
        if (dialog.open() == Window.OK) {
            try {
                session.setUserPassword(user.getId(), dialog.getPassword(), dialog.getOldPassword());
            } catch (Exception e) {
                MessageDialogHelper.openError(getSite().getShell(), Messages.get().UserManagementView_CannotChangePassword, e.getMessage());
            }
        }
    }
}
Also used : User(org.netxms.client.users.User) AbstractUserObject(org.netxms.client.users.AbstractUserObject) ChangePasswordDialog(org.netxms.ui.eclipse.usermanager.dialogs.ChangePasswordDialog) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection)

Example 4 with User

use of org.netxms.client.users.User in project netxms by netxms.

the class UserManagementView method createPartControl.

/* (non-Javadoc)
	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
	 */
@Override
public void createPartControl(Composite parent) {
    session = ConsoleSharedData.getSession();
    final String[] names = { Messages.get().UserManagementView_Name, Messages.get().UserManagementView_Type, Messages.get().UserManagementView_FullName, Messages.get().UserManagementView_Description, Messages.get().UserManagementView_Source, Messages.get().UserManagementView_Authentication, Messages.get().UserManagementView_GUID, "LDAP DN", "Last Login", "Created" };
    final int[] widths = { 100, 80, 180, 250, 80, 170, 250, 400, 250, 250 };
    viewer = new SortableTableViewer(parent, names, widths, 0, SWT.UP, SortableTableViewer.DEFAULT_STYLE);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new UserLabelProvider());
    viewer.setComparator(new UserComparator());
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection != null) {
                actionEditUser.setEnabled(selection.size() == 1);
                actionChangePassword.setEnabled((selection.size() == 1) && (selection.getFirstElement() instanceof User));
                actionDeleteUser.setEnabled(selection.size() > 0);
            }
        }
    });
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            actionEditUser.run();
        }
    });
    makeActions();
    contributeToActionBars();
    createPopupMenu();
    // Listener for server's notifications
    sessionListener = new SessionListener() {

        @Override
        public void notificationHandler(final SessionNotification n) {
            if (n.getCode() == SessionNotification.USER_DB_CHANGED) {
                viewer.getControl().getDisplay().asyncExec(new Runnable() {

                    @Override
                    public void run() {
                        viewer.setInput(session.getUserDatabaseObjects());
                        if (editNewUser && (n.getSubCode() == SessionNotification.USER_DB_OBJECT_CREATED)) {
                            editNewUser = false;
                            viewer.setSelection(new StructuredSelection(n.getObject()), true);
                            actionEditUser.run();
                        }
                    }
                });
            }
        }
    };
    // Request server to lock user database, and on success refresh view
    new ConsoleJob(Messages.get().UserManagementView_OpenJobName, this, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            session.lockUserDatabase();
            databaseLocked = true;
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    viewer.setInput(session.getUserDatabaseObjects());
                    session.addListener(sessionListener);
                }
            });
        }

        @Override
        protected void jobFailureHandler() {
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    UserManagementView.this.getViewSite().getPage().hideView(UserManagementView.this);
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().UserManagementView_OpenJobError;
        }
    }.start();
}
Also used : UserLabelProvider(org.netxms.ui.eclipse.usermanager.views.helpers.UserLabelProvider) User(org.netxms.client.users.User) UserComparator(org.netxms.ui.eclipse.usermanager.views.helpers.UserComparator) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) SortableTableViewer(org.netxms.ui.eclipse.widgets.SortableTableViewer) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) SessionListener(org.netxms.client.SessionListener) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) SessionNotification(org.netxms.client.SessionNotification)

Example 5 with User

use of org.netxms.client.users.User in project netxms by netxms.

the class UserAdapterFactory method getAdapter.

/* (non-Javadoc)
	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
	 */
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Object getAdapter(Object adaptableObject, Class adapterType) {
    if (adapterType == IWorkbenchAdapter.class) {
        // NXCUser
        if (adaptableObject instanceof User) {
            return new IWorkbenchAdapter() {

                @Override
                public Object[] getChildren(Object o) {
                    return null;
                }

                @Override
                public ImageDescriptor getImageDescriptor(Object object) {
                    // $NON-NLS-1$
                    return Activator.getImageDescriptor("icons/user.png");
                }

                @Override
                public String getLabel(Object o) {
                    return ((User) o).getName();
                }

                @Override
                public Object getParent(Object o) {
                    return null;
                }
            };
        }
        // NXCUserGroup
        if (adaptableObject instanceof UserGroup) {
            return new IWorkbenchAdapter() {

                @Override
                public Object[] getChildren(Object o) {
                    long[] members = ((UserGroup) o).getMembers();
                    AbstractUserObject[] childrens = new User[members.length];
                    for (int i = 0; i < members.length; i++) childrens[i] = ConsoleSharedData.getSession().findUserDBObjectById(members[i]);
                    return childrens;
                }

                @Override
                public ImageDescriptor getImageDescriptor(Object object) {
                    // $NON-NLS-1$
                    return Activator.getImageDescriptor("icons/group.png");
                }

                @Override
                public String getLabel(Object o) {
                    return ((UserGroup) o).getName();
                }

                @Override
                public Object getParent(Object o) {
                    return null;
                }
            };
        }
        // AccessListElement
        if (adaptableObject instanceof AbstractAccessListElement) {
            return new IWorkbenchAdapter() {

                @Override
                public Object[] getChildren(Object o) {
                    return null;
                }

                @Override
                public ImageDescriptor getImageDescriptor(Object object) {
                    long userId = ((AbstractAccessListElement) object).getUserId();
                    // $NON-NLS-1$ //$NON-NLS-2$
                    return Activator.getImageDescriptor((userId < 0x80000000L) ? "icons/user.png" : "icons/group.png");
                }

                @Override
                public String getLabel(Object object) {
                    long userId = ((AbstractAccessListElement) object).getUserId();
                    NXCSession session = ConsoleSharedData.getSession();
                    AbstractUserObject dbo = session.findUserDBObjectById(userId);
                    // $NON-NLS-1$ //$NON-NLS-2$
                    return (dbo != null) ? dbo.getName() : ("{" + Long.toString(userId) + "}");
                }

                @Override
                public Object getParent(Object o) {
                    return null;
                }
            };
        }
    }
    return null;
}
Also used : User(org.netxms.client.users.User) NXCSession(org.netxms.client.NXCSession) AbstractAccessListElement(org.netxms.client.users.AbstractAccessListElement) IWorkbenchAdapter(org.eclipse.ui.model.IWorkbenchAdapter) AbstractUserObject(org.netxms.client.users.AbstractUserObject) AbstractUserObject(org.netxms.client.users.AbstractUserObject) UserGroup(org.netxms.client.users.UserGroup)

Aggregations

User (org.netxms.client.users.User)7 AbstractUserObject (org.netxms.client.users.AbstractUserObject)4 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)3 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)2 ArrayContentProvider (org.eclipse.jface.viewers.ArrayContentProvider)2 GridLayout (org.eclipse.swt.layout.GridLayout)2 Composite (org.eclipse.swt.widgets.Composite)2 NXCSession (org.netxms.client.NXCSession)2 ConsoleJob (org.netxms.ui.eclipse.jobs.ConsoleJob)2 GroupMarker (org.eclipse.jface.action.GroupMarker)1 Separator (org.eclipse.jface.action.Separator)1 DoubleClickEvent (org.eclipse.jface.viewers.DoubleClickEvent)1 IDoubleClickListener (org.eclipse.jface.viewers.IDoubleClickListener)1 ILabelProvider (org.eclipse.jface.viewers.ILabelProvider)1 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)1 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)1 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)1 TableViewer (org.eclipse.jface.viewers.TableViewer)1 SelectionEvent (org.eclipse.swt.events.SelectionEvent)1 SelectionListener (org.eclipse.swt.events.SelectionListener)1