package org.ovirt.engine.ui.uicommonweb.models.configure; import java.util.Collections; import org.ovirt.engine.core.compat.*; import org.ovirt.engine.ui.uicompat.*; import org.ovirt.engine.core.common.businessentities.*; import org.ovirt.engine.core.common.vdscommands.*; import org.ovirt.engine.core.common.queries.*; import org.ovirt.engine.core.common.action.*; import org.ovirt.engine.ui.frontend.*; import org.ovirt.engine.ui.uicommonweb.*; import org.ovirt.engine.ui.uicommonweb.models.*; import org.ovirt.engine.core.common.*; import org.ovirt.engine.ui.uicommonweb.models.configure.roles_ui.RoleListModel; import org.ovirt.engine.ui.uicommonweb.models.configure.roles_ui.RolePermissionListModel; import org.ovirt.engine.ui.uicommonweb.models.users.*; import org.ovirt.engine.core.common.businessentities.*; import org.ovirt.engine.core.common.interfaces.*; import org.ovirt.engine.core.common.users.*; import org.ovirt.engine.ui.uicommonweb.*; import org.ovirt.engine.ui.uicommonweb.models.*; @SuppressWarnings("unused") public class SystemPermissionListModel extends SearchableListModel { private UICommand privateAddCommand; public UICommand getAddCommand() { return privateAddCommand; } private void setAddCommand(UICommand value) { privateAddCommand = value; } private UICommand privateRemoveCommand; public UICommand getRemoveCommand() { return privateRemoveCommand; } private void setRemoveCommand(UICommand value) { privateRemoveCommand = value; } public SystemPermissionListModel() { setTitle("System Permission"); setAddCommand(new UICommand("Add", this)); setRemoveCommand(new UICommand("Remove", this)); setSearchPageSize(1000); getSearchCommand().Execute(); UpdateActionAvailability(); } @Override protected void AsyncSearch() { super.AsyncSearch(); setAsyncResult(Frontend.RegisterQuery(VdcQueryType.GetSystemPermissions, new VdcQueryParametersBase())); setItems(getAsyncResult().getData()); } @Override protected void SyncSearch() { super.SyncSearch(); AsyncQuery _asyncQuery = new AsyncQuery(); _asyncQuery.setModel(this); _asyncQuery.asyncCallback = new INewAsyncCallback() { public void OnSuccess(Object model, Object ReturnValue) { SystemPermissionListModel systemPermissionListModel = (SystemPermissionListModel)model; systemPermissionListModel.setItems((Iterable)((VdcQueryReturnValue)ReturnValue).getReturnValue()); }}; VdcQueryParametersBase params = new VdcQueryParametersBase(); params.setRefresh(false); Frontend.RunQuery(VdcQueryType.GetSystemPermissions, params, _asyncQuery); } private void UpdateActionAvailability() { getRemoveCommand().setIsExecutionAllowed(getSelectedItems() != null && getSelectedItems().size() > 0); } @Override protected void OnSelectedItemChanged() { super.OnSelectedItemChanged(); UpdateActionAvailability(); } @Override protected void SelectedItemsChanged() { super.SelectedItemsChanged(); UpdateActionAvailability(); } private void add() { if (getWindow() != null) { return; } AdElementListModel model = new AdElementListModel(); setWindow(model); model.setTitle("Add System Permission to User"); model.setHashName("add_system_permission_to_user"); //model.Role.IsAvailable = true; //model.ExcludeItems = Items; UICommand tempVar = new UICommand("OnAttach", this); tempVar.setTitle("OK"); tempVar.setIsDefault(true); model.getCommands().add(tempVar); UICommand tempVar2 = new UICommand("Cancel", this); tempVar2.setTitle("Cancel"); tempVar2.setIsCancel(true); model.getCommands().add(tempVar2); } private void OnAttach() { AdElementListModel model = (AdElementListModel)getWindow(); if (model.getProgress() != null) { return; } if (model.getSelectedItems() == null) { Cancel(); return; } java.util.ArrayList<DbUser> items = new java.util.ArrayList<DbUser>(); for (Object item : model.getItems()) { EntityModel entityModel = (EntityModel)item; if (entityModel.getIsSelected()) { items.add((DbUser)entityModel.getEntity()); } } roles role = (roles)model.getRole().getSelectedItem(); java.util.ArrayList<VdcActionParametersBase> list = new java.util.ArrayList<VdcActionParametersBase>(); for (DbUser user : items) { permissions tempVar = new permissions(); tempVar.setad_element_id(user.getuser_id()); tempVar.setrole_id(role.getId()); permissions perm = tempVar; if (user.getIsGroup()) { PermissionsOperationsParametes tempVar2 = new PermissionsOperationsParametes(); tempVar2.setPermission(perm); tempVar2.setAdGroup(new ad_groups(user.getuser_id(), user.getname(), user.getdomain())); list.add(tempVar2); } else { PermissionsOperationsParametes tempVar3 = new PermissionsOperationsParametes(); tempVar3.setPermission(perm); tempVar3.setVdcUser(new VdcUser(user.getuser_id(), user.getusername(), user.getdomain())); list.add(tempVar3); } } model.StartProgress(null); Frontend.RunMultipleAction(VdcActionType.AddSystemPermission, list, new IFrontendMultipleActionAsyncCallback() { @Override public void Executed(FrontendMultipleActionAsyncResult result) { AdElementListModel localModel = (AdElementListModel)result.getState(); localModel.StopProgress(); Cancel(); } }, model); } private void OnSave() { } public void Cancel() { setWindow(null); } private void remove() { if (getWindow() != null) { return; } ConfirmationModel model = new ConfirmationModel(); setWindow(model); model.setTitle("Remove System Permission(s)"); model.setHashName("remove_system_permission"); model.setMessage("System Permission(s):"); java.util.ArrayList<String> list = new java.util.ArrayList<String>(); for (Object item : getSelectedItems()) { permissions permission = (permissions)item; list.add("User: " + permission.getOwnerName() + " with Role: " + permission.getRoleName()); } model.setItems(list); UICommand tempVar = new UICommand("OnRemove", this); tempVar.setTitle("OK"); tempVar.setIsDefault(true); model.getCommands().add(tempVar); UICommand tempVar2 = new UICommand("Cancel", this); tempVar2.setTitle("Cancel"); tempVar2.setIsCancel(true); model.getCommands().add(tempVar2); } private void OnRemove() { if (getSelectedItems() != null && getSelectedItems().size() > 0) { ConfirmationModel model = (ConfirmationModel)getWindow(); if (model.getProgress() != null) { return; } java.util.ArrayList<VdcActionParametersBase> list = new java.util.ArrayList<VdcActionParametersBase>(); for (Object perm : getSelectedItems()) { PermissionsOperationsParametes tempVar = new PermissionsOperationsParametes(); tempVar.setPermission((permissions)perm); list.add(tempVar); } model.StartProgress(null); Frontend.RunMultipleAction(VdcActionType.RemovePermission, list, new IFrontendMultipleActionAsyncCallback() { @Override public void Executed(FrontendMultipleActionAsyncResult result) { ConfirmationModel localModel = (ConfirmationModel)result.getState(); localModel.StopProgress(); Cancel(); } }, model); } } @Override public void ExecuteCommand(UICommand command) { super.ExecuteCommand(command); if (command == getAddCommand()) { add(); } else if (StringHelper.stringsEqual(command.getName(), "OnSave")) { OnSave(); } else if (StringHelper.stringsEqual(command.getName(), "OnAttach")) { OnAttach(); } else if (command == getRemoveCommand()) { remove(); } else if (StringHelper.stringsEqual(command.getName(), "OnRemove")) { OnRemove(); } else if (StringHelper.stringsEqual(command.getName(), "Cancel")) { Cancel(); } } @Override protected String getListName() { return "SystemPermissionListModel"; } }