1
0
mirror of https://github.com/altlinux/admc.git synced 2025-03-17 18:50:13 +03:00

add attribute_value_exists()

This commit is contained in:
Dmitry Degtyarev 2020-05-28 15:52:06 +04:00
parent 1932924145
commit 548b4c03aa
3 changed files with 21 additions and 15 deletions

View File

@ -362,6 +362,16 @@ QString get_attribute(const QString &dn, const QString &attribute) {
}
}
bool attribute_value_exists(const QString &dn, const QString &attribute, const QString &value) {
QList<QString> values = get_attribute_multi(dn, attribute);
if (values.contains(value)) {
return true;
} else {
return false;
}
}
bool set_attribute(const QString &dn, const QString &attribute, const QString &value) {
int result = AD_INVALID_DN;

View File

@ -52,11 +52,14 @@ extern AdInterface ad_interface;
extern bool FAKE_AD;
bool ad_interface_login();
QList<QString> load_children(const QString &dn);
void load_attributes(const QString &dn);
QMap<QString, QList<QString>> get_attributes(const QString &dn);
QList<QString> get_attribute_multi(const QString &dn, const QString &attribute);
QString get_attribute(const QString &dn, const QString &attribute);
bool attribute_value_exists(const QString &dn, const QString &attribute, const QString &value);
bool set_attribute(const QString &dn, const QString &attribute, const QString &value);
bool create_entry(const QString &name, const QString &dn, NewEntryType type);
void delete_entry(const QString &dn);

View File

@ -111,15 +111,11 @@ void init_row(QList<QStandardItem*> row, const QString &dn) {
// is container
bool is_container = false;
if (attributes.contains("objectClass")) {
QList<QString> objectClasses = attributes["objectClass"];
QList<QString> container_objectClasses = {"container", "organizationalUnit", "builtinDomain", "domain"};
for (auto e : container_objectClasses) {
if (objectClasses.contains(e)) {
is_container = true;
break;
}
const QList<QString> container_objectClasses = {"container", "organizationalUnit", "builtinDomain", "domain"};
for (auto c : container_objectClasses) {
if (attribute_value_exists("objectClass", c)) {
is_container = true;
break;
}
}
@ -146,12 +142,11 @@ void init_row(QList<QStandardItem*> row, const QString &dn) {
{"group", "application-x-smb-workgroup"},
{"builtinDomain", "emblem-system"},
};
QList<QString> objectClasses = attributes["objectClass"];
QString icon_name = "dialog-question";
for (auto c : objectClasses) {
if (class_to_icon.contains(c)) {
for (auto c : class_to_icon.keys()) {
if (attribute_value_exists("objectClass", c)) {
icon_name = class_to_icon[c];
break;
break;
}
}
@ -295,8 +290,6 @@ void AdModel::on_move_user_complete(const QString &user_dn, const QString &conta
removeRow(dn_index.row(), dn_index.parent());
}
printf("on_move_user_complete: %s %s\n", qPrintable(new_dn), qPrintable(container_dn));
// Need to load entry at new parent if the parent has already
// been expanded/fetched
// NOTE: loading if parent has already been fetched will