private DbGroup addGroup(DbGroup groupToAdd) { // Try to add the user with the external id: if (groupToAdd.getDomain() != null && groupToAdd.getExternalId() != null) { AddGroupParameters parameters = new AddGroupParameters(groupToAdd); VdcReturnValueBase result = runInternalAction(VdcActionType.AddGroup, parameters, cloneContextAndDetachFromParent()); if (result.getCanDoAction()) { Guid id = (Guid) result.getActionReturnValue(); if (id != null) { return getAdGroupDAO().get(id); } return null; } } // There is no such group in the directory: return null; }
@Override protected void addGroupsToModel(VdcQueryReturnValue returnValue, Set<String> excludeUsers) { Iterable<DbGroup> filteredGroups = Linq.where( (ArrayList<DbGroup>) returnValue.getReturnValue(), new Linq.DbGroupPredicate(getTargetDbGroup())); for (DbGroup group : filteredGroups) { if (!excludeUsers.contains(group.getId().toString())) { DbUser dbUser = new DbUser(); dbUser.setExternalId(group.getExternalId()); dbUser.setFirstName(group.getName()); dbUser.setLastName(""); // $NON-NLS-1$ dbUser.setLoginName(""); // $NON-NLS-1$ dbUser.setDomain(group.getDomain()); dbUser.setNamespace(group.getNamespace()); EntityModel entity = new EntityModel(); entity.setEntity(dbUser); getgroups().add(entity); } } }
private DbGroup getTargetDbGroup() { DbGroup dbGroup = new DbGroup(); dbGroup.setName(getSearchString()); dbGroup.setDomain((getProfile().getSelectedItem()).getAuthz()); return dbGroup; }
@Override protected void executeCommand() { // Get the parameters: T parameters = getParameters(); // The user or group given in the parameters may haven't been added to the database yet, if this // is the case // then they need to be added to the database now, before the permission: DbUser user = parameters.getUser(); if (user != null) { Guid id = user.getId(); String directory = user.getDomain(); String externalId = user.getExternalId(); DbUser existing = getDbUserDAO().getByIdOrExternalId(id, directory, externalId); if (existing != null) { user = existing; } else { user = addUser(user); if (user == null) { setSucceeded(false); return; } } } DbGroup group = parameters.getGroup(); if (group != null) { Guid id = group.getId(); String directory = group.getDomain(); String externalId = group.getExternalId(); DbGroup existing = getAdGroupDAO().getByIdOrExternalId(id, directory, externalId); if (existing != null) { group = existing; } else { group = addGroup(group); if (group == null) { setSucceeded(false); return; } } } // The identifier of the principal of the permission can come from the parameters directly or // from the // user/group objects: Guid principalId; if (user != null) { principalId = user.getId(); } else if (group != null) { principalId = group.getId(); } else { principalId = parameters.getPermission().getad_element_id(); } final Permissions paramPermission = parameters.getPermission(); Permissions permission = getPermissionDAO() .getForRoleAndAdElementAndObject( paramPermission.getrole_id(), principalId, paramPermission.getObjectId()); if (permission == null) { paramPermission.setId(Guid.newGuid()); paramPermission.setad_element_id(principalId); TransactionSupport.executeInNewTransaction( new TransactionMethod<Void>() { @Override public Void runInTransaction() { getPermissionDAO().save(paramPermission); getCompensationContext().snapshotNewEntity(paramPermission); getCompensationContext().stateChanged(); return null; } }); permission = paramPermission; } getReturnValue().setActionReturnValue(permission.getId()); if (user != null) { updateAdminStatus(permission); } setSucceeded(true); }
private void onAttach() { AdElementListModel model = (AdElementListModel) getWindow(); if (model.getProgress() != null) { return; } if (model.getSelectedItems() == null) { cancel(); return; } ArrayList<DbUser> items = new ArrayList<DbUser>(); for (Object item : model.getItems()) { EntityModel entityModel = (EntityModel) item; if (entityModel.getIsSelected()) { items.add((DbUser) entityModel.getEntity()); } } Role role = model.getRole().getSelectedItem(); ArrayList<VdcActionParametersBase> list = new ArrayList<VdcActionParametersBase>(); for (DbUser user : items) { Permission perm = new Permission(user.getId(), role.getId(), null, null); if (user.isGroup()) { DbGroup group = new DbGroup(); group.setId(user.getId()); group.setName(user.getFirstName()); group.setDomain(user.getDomain()); group.setExternalId(user.getExternalId()); group.setNamespace(user.getNamespace()); PermissionsOperationsParameters tempVar2 = new PermissionsOperationsParameters(); tempVar2.setPermission(perm); tempVar2.setGroup(group); list.add(tempVar2); } else { PermissionsOperationsParameters tempVar3 = new PermissionsOperationsParameters(); tempVar3.setPermission(perm); tempVar3.setUser(user); list.add(tempVar3); } } model.startProgress(null); Frontend.getInstance() .runMultipleAction( VdcActionType.AddSystemPermission, list, new IFrontendMultipleActionAsyncCallback() { @Override public void executed(FrontendMultipleActionAsyncResult result) { AdElementListModel localModel = (AdElementListModel) result.getState(); localModel.stopProgress(); cancel(); } }, model); }
public void onAdd() { AdElementListModel model = (AdElementListModel) getWindow(); if (model.getProgress() != null) { return; } if (model.getSelectedItems() == null) { cancel(); return; } ArrayList<DbUser> items = new ArrayList<DbUser>(); for (Object item : model.getItems()) { EntityModel entityModel = (EntityModel) item; if (entityModel.getIsSelected()) { items.add((DbUser) entityModel.getEntity()); } } ArrayList<VdcActionType> actionsList = new ArrayList<VdcActionType>(items.size()); ArrayList<VdcActionParametersBase> parametersList = new ArrayList<VdcActionParametersBase>(items.size()); VdcActionParametersBase parameters = null; for (DbUser item : items) { if (item.isGroup()) { actionsList.add(VdcActionType.AddGroup); DbGroup grp = new DbGroup(); grp.setExternalId(item.getExternalId()); grp.setName(item.getFirstName()); grp.setNamespace(item.getNamespace()); grp.setId(item.getId()); grp.setDomain(item.getDomain()); grp.setActive(item.isActive()); parameters = new AddGroupParameters(grp); } else { actionsList.add(VdcActionType.AddUser); parameters = new AddUserParameters(item); } parametersList.add(parameters); } model.startProgress(null); IFrontendActionAsyncCallback nopCallback = new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { // Nothing. } }; IFrontendActionAsyncCallback lastCallback = new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { AdElementListModel localModel = (AdElementListModel) result.getState(); localModel.stopProgress(); cancel(); } }; ArrayList<IFrontendActionAsyncCallback> callbacksList = new ArrayList<IFrontendActionAsyncCallback>(items.size()); for (int i = 1; i < items.size(); i++) { callbacksList.add(nopCallback); } callbacksList.add(lastCallback); Frontend.getInstance() .runMultipleActions(actionsList, parametersList, callbacksList, lastCallback, model); }
private void onAdd() { AdElementListModel model = (AdElementListModel) getWindow(); if (model.getProgress() != null) { return; } if (!model.getIsEveryoneSelected() && model.getSelectedItems() == null) { cancel(); return; } ArrayList<DbUser> items = new ArrayList<DbUser>(); if (model.getIsEveryoneSelected()) { DbUser tempVar = new DbUser(); tempVar.setId(ApplicationGuids.everyone.asGuid()); items.add(tempVar); } else { for (Object item : model.getItems()) { EntityModel entityModel = (EntityModel) item; if (entityModel.getIsSelected()) { items.add((DbUser) entityModel.getEntity()); } } } Role role = (Role) model.getRole().getSelectedItem(); // adGroup/user ArrayList<VdcActionParametersBase> list = new ArrayList<VdcActionParametersBase>(); for (DbUser user : items) { Permissions tempVar2 = new Permissions(); tempVar2.setad_element_id(user.getId()); tempVar2.setrole_id(role.getId()); Permissions perm = tempVar2; perm.setObjectId(getEntityGuid()); perm.setObjectType(this.getObjectType()); if (user.isGroup()) { DbGroup group = new DbGroup(); group.setId(user.getId()); group.setExternalId(user.getExternalId()); group.setName(user.getFirstName()); group.setDomain(user.getDomain()); group.setNamespace(user.getNamespace()); PermissionsOperationsParameters tempVar3 = new PermissionsOperationsParameters(); tempVar3.setPermission(perm); tempVar3.setGroup(group); list.add(tempVar3); } else { PermissionsOperationsParameters tempVar4 = new PermissionsOperationsParameters(); tempVar4.setPermission(perm); tempVar4.setUser(user); list.add(tempVar4); } } model.startProgress(null); Frontend.getInstance() .runMultipleAction( VdcActionType.AddPermission, list, new IFrontendMultipleActionAsyncCallback() { @Override public void executed(FrontendMultipleActionAsyncResult result) { AdElementListModel localModel = (AdElementListModel) result.getState(); localModel.stopProgress(); cancel(); } }, model); }