import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
import org.argeo.eclipse.ui.TreeParent;
import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
-import org.argeo.eclipse.ui.workbench.jcr.internal.model.SingleJcrNodeElem;
-import org.argeo.eclipse.ui.workbench.jcr.internal.model.WorkspaceElem;
-import org.argeo.eclipse.ui.workbench.jcr.internal.parts.ChangeRightsWizard;
+import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
+import org.argeo.eclipse.ui.workbench.internal.jcr.model.WorkspaceElem;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.AddPrivilegeWizard;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.handlers.HandlerUtil;
+import org.osgi.service.useradmin.UserAdmin;
-/** Open a dialog to change rights on the selected node. */
+/** Open a dialog to add privileges on the selected node to a chosen group */
public class AddPrivileges extends AbstractHandler {
public final static String ID = WorkbenchUiPlugin.ID + ".addPrivileges";
+ /* DEPENDENCY INJECTION */
+ private UserAdmin userAdmin;
+
public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
return null;
try {
- ChangeRightsWizard wizard = new ChangeRightsWizard(
- jcrParentNode.getSession(), jcrParentNode.getPath());
+ String targetPath = jcrParentNode.getPath();
+ AddPrivilegeWizard wizard = new AddPrivilegeWizard(
+ jcrParentNode.getSession(), targetPath, userAdmin);
WizardDialog dialog = new WizardDialog(
HandlerUtil.getActiveShell(event), wizard);
dialog.open();
return null;
} catch (RepositoryException re) {
- throw new ArgeoException(
- "Unexpected error while creating the new workspace.",
- re);
+ throw new EclipseUiException("Unable to retrieve "
+ + "path or JCR session to add privilege on "
+ + jcrParentNode, re);
}
} else {
ErrorFeedback.show("Cannot add privileges");
}
return null;
}
+
+ /* DEPENDENCY INJECTION */
+ public void setUserAdmin(UserAdmin userAdmin) {
+ this.userAdmin = userAdmin;
+ }
}
\ No newline at end of file