package org.ovirt.engine.ui.uicommonweb.models.users;
import java.util.ArrayList;
import org.ovirt.engine.core.common.businessentities.aaa.AuthzGroup;
import org.ovirt.engine.core.common.businessentities.aaa.DbUser;
import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
public class UserGroupListModel extends SearchableListModel<DbUser, UserGroup> {
public UserGroupListModel() {
setTitle(ConstantsManager.getInstance().getConstants().directoryGroupsTitle());
setHelpTag(HelpTag.directory_groups);
setHashName("directory_groups"); // $//$NON-NLS-1$
}
@Override
protected void onEntityChanged() {
super.onEntityChanged();
if (getEntity() != null) {
final ArrayList<UserGroup> items = new ArrayList<>();
AsyncDataProvider.getInstance().getAuthzGroupsByUserId(new AsyncQuery<>(returnValue -> {
for (AuthzGroup grp : returnValue) {
items.add(createUserGroup(grp.getName(), grp.getNamespace(), grp.getAuthz()));
}
setItems(items);
}), getEntity().getId());
}
else {
setItems(null);
}
}
private UserGroup createUserGroup(String groupFullName, String namespace, String authz) {
UserGroup tempVar = new UserGroup();
tempVar.setGroupName(groupFullName);
tempVar.setNamespace(namespace);
tempVar.setAuthz(authz);
return tempVar;
}
@Override
protected String getListName() {
return "UserGroupListModel"; //$NON-NLS-1$
}
}