1
0
mirror of https://github.com/altlinux/admc.git synced 2025-02-07 21:57:25 +03:00

add AdInterface::is_container_like()

use it in AdModel's load_row()
This commit is contained in:
Dmitry Degtyarev 2020-06-09 12:43:06 +04:00
parent d66fae5010
commit ad55517817
3 changed files with 14 additions and 8 deletions

View File

@ -405,6 +405,18 @@ bool AdInterface::is_policy(const QString &dn) {
return attribute_value_exists(dn, "objectClass", "groupPolicyContainer");
}
bool AdInterface::is_container_like(const QString &dn) {
// TODO: check that this includes all fitting objectClasses
const QList<QString> containerlike_objectClasses = {"organizationalUnit", "builtinDomain", "domain"};
for (auto c : containerlike_objectClasses) {
if (AD()->attribute_value_exists(dn, "objectClass", c)) {
return true;
}
}
return false;
}
bool AdInterface::can_drop_entry(const QString &dn, const QString &target_dn) {
const bool dropped_is_user = AD()->is_user(dn);

View File

@ -85,6 +85,7 @@ public:
bool is_container(const QString &dn);
bool is_ou(const QString &dn);
bool is_policy(const QString &dn);
bool is_container_like(const QString &dn);
bool can_drop_entry(const QString &dn, const QString &target_dn);
void drop_entry(const QString &dn, const QString &target_dn);

View File

@ -221,14 +221,7 @@ void load_row(QList<QStandardItem *> row, const QString &dn) {
bool showInAdvancedViewOnly = AD()->get_attribute(dn, "showInAdvancedViewOnly") == "TRUE";
bool is_container = false;
const QList<QString> container_objectClasses = {"container", "organizationalUnit", "builtinDomain", "domain"};
for (auto c : container_objectClasses) {
if (AD()->attribute_value_exists(dn, "objectClass", c)) {
is_container = true;
break;
}
}
bool is_container = AD()->is_container_like(dn);
QStandardItem *name_item = row[AdModel::Column::Name];
QStandardItem *category_item = row[AdModel::Column::Category];