-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
package org.argeo.cms.e4.users;
-import static org.argeo.cms.util.UserAdminUtils.setProperty;
-import static org.argeo.naming.LdapAttrs.businessCategory;
-import static org.argeo.naming.LdapAttrs.description;
-import static org.argeo.node.NodeInstance.WORKGROUP;
+import static org.argeo.api.cms.CmsContext.WORKGROUP;
+import static org.argeo.cms.auth.UserAdminUtils.setProperty;
+import static org.argeo.util.naming.LdapAttrs.businessCategory;
+import static org.argeo.util.naming.LdapAttrs.description;
import java.util.ArrayList;
import java.util.Iterator;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.naming.InvalidNameException;
-import javax.naming.ldap.LdapName;
-import javax.transaction.UserTransaction;
-import org.argeo.cms.CmsException;
+import org.argeo.api.cms.CmsConstants;
+import org.argeo.api.cms.CmsContext;
+import org.argeo.cms.auth.UserAdminUtils;
import org.argeo.cms.e4.users.providers.CommonNameLP;
import org.argeo.cms.e4.users.providers.MailLP;
import org.argeo.cms.e4.users.providers.RoleIconLP;
import org.argeo.cms.e4.users.providers.UserFilter;
+import org.argeo.cms.jcr.CmsJcrUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.ui.eclipse.forms.AbstractFormPart;
import org.argeo.cms.ui.eclipse.forms.IManagedForm;
-import org.argeo.cms.util.CmsUtils;
-import org.argeo.cms.util.UserAdminUtils;
import org.argeo.eclipse.ui.ColumnDefinition;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.argeo.eclipse.ui.parts.LdifUsersTable;
+import org.argeo.jcr.JcrException;
import org.argeo.jcr.JcrUtils;
-import org.argeo.naming.LdapAttrs;
-import org.argeo.node.NodeConstants;
-import org.argeo.node.NodeInstance;
-import org.argeo.node.NodeUtils;
+import org.argeo.osgi.transaction.WorkTransaction;
+import org.argeo.util.naming.LdapAttrs;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ToolBarManager;
@Inject
private Repository repository;
@Inject
- private NodeInstance nodeInstance;
+ private CmsContext nodeInstance;
// private final UserAdminWrapper userAdminWrapper;
private Session groupsSession;
@Override
protected void createUi(Composite parent) {
try {
- groupsSession = repository.login(NodeConstants.SRV);
+ groupsSession = repository.login(CmsConstants.SRV_WORKSPACE);
} catch (RepositoryException e) {
- throw new CmsException("Cannot retrieve session", e);
+ throw new JcrException("Cannot retrieve session", e);
}
// ScrolledForm form = mf.getForm();
// Composite body = form.getBody();
// GridLayout layout = new GridLayout(5, false);
GridLayout layout = new GridLayout(2, false);
body.setLayout(layout);
- body.setLayoutData(CmsUtils.fillWidth());
+ body.setLayoutData(CmsSwtUtils.fillWidth());
String cn = UserAdminUtils.getProperty(group, LdapAttrs.cn.name());
createReadOnlyLT(body, "Name", cn);
// dnTxt.setText(group.getName());
// cnTxt.setText(UserAdminUtils.getProperty(group, LdapAttrs.cn.name()));
descTxt.setText(UserAdminUtils.getProperty(group, LdapAttrs.description.name()));
- Node workgroupHome = NodeUtils.getGroupHome(groupsSession, cn);
+ Node workgroupHome = CmsJcrUtils.getGroupHome(groupsSession, cn);
if (workgroupHome == null)
markAsWorkgroupLk.setText("<a>Mark as workgroup</a>");
else
boolean confirmed = MessageDialog.openConfirm(parent.getShell(), "Mark as workgroup",
"Are you sure you want to mark " + cn + " as being a workgroup? ");
if (confirmed) {
- Node workgroupHome = NodeUtils.getGroupHome(groupsSession, cn);
+ Node workgroupHome = CmsJcrUtils.getGroupHome(groupsSession, cn);
if (workgroupHome != null)
return; // already marked as workgroup, do nothing
- else
- try {
- // improve transaction management
- userAdminWrapper.beginTransactionIfNeeded();
- nodeInstance.createWorkgroup(new LdapName(group.getName()));
- setProperty(group, businessCategory, WORKGROUP);
- userAdminWrapper.commitOrNotifyTransactionStateChange();
- userAdminWrapper
- .notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CHANGED, group));
- part.refresh();
- } catch (InvalidNameException e1) {
- throw new CmsException("Cannot create Workgroup for " + group.toString(), e1);
- }
-
+ else {
+ // improve transaction management
+ userAdminWrapper.beginTransactionIfNeeded();
+ nodeInstance.createWorkgroup(group.getName());
+ setProperty(group, businessCategory, WORKGROUP);
+ userAdminWrapper.commitOrNotifyTransactionStateChange();
+ userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CHANGED, group));
+ part.refresh();
+ }
}
}
});
ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
ToolBar toolBar = toolBarManager.createControl(body);
- toolBar.setLayoutData(CmsUtils.fillWidth());
+ toolBar.setLayoutData(CmsSwtUtils.fillWidth());
toolBarManager.add(action);
toolBarManager.update(true);
userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CHANGED, myGroup));
} else if (role.getType() == Role.USER) {
// TODO check if the group is already member of this group
- UserTransaction transaction = userAdminWrapper.beginTransactionIfNeeded();
+ WorkTransaction transaction = userAdminWrapper.beginTransactionIfNeeded();
User user = (User) role;
myGroup.addMember(user);
if (UserAdminWrapper.COMMIT_ON_SAVE)
try {
transaction.commit();
} catch (Exception e) {
- throw new CmsException("Cannot commit transaction " + "after user group membership update", e);
+ throw new IllegalStateException(
+ "Cannot commit transaction " + "after user group membership update", e);
}
userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CHANGED, myGroup));
}
// lbl.setFont(EclipseUiUtils.getBoldFont(parent));
// Text text = toolkit.createText(parent, value, SWT.BORDER);
// text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- // CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
+ // CmsUiUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
// return text;
// }
//
// Text text = toolkit.createText(parent, value, SWT.NONE);
// text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
// text.setEditable(false);
- // CmsUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
+ // CmsUiUtils.style(text, CmsWorkbenchStyles.WORKBENCH_FORM_TEXT);
// return text;
// }