mirror of
https://github.com/altlinux/admc.git
synced 2025-02-02 17:47:06 +03:00
Merge branch 'bugfix/default_policy_deletion'
This commit is contained in:
commit
5cc7bbb043
@ -2542,6 +2542,16 @@
|
||||
<source>Are you sure you want to delete this policy and all of it's links?</source>
|
||||
<translation>Удалить эту политику и все её связи?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="516"/>
|
||||
<source>Failed to delete group policy</source>
|
||||
<translation>Не удалось удалить групповую политику</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="517"/>
|
||||
<source>Failed to delete some group policies</source>
|
||||
<translation>Не удалось удалить некоторые групповые политики</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="352"/>
|
||||
<source>Add Link</source>
|
||||
|
@ -437,6 +437,7 @@ void console_policy_delete(const QList<ConsoleWidget *> &console_list, PolicyRes
|
||||
|
||||
const QString confirmation_text = QCoreApplication::translate("PolicyImpl", "Are you sure you want to delete this policy and all of it's links?");
|
||||
const bool confirmed = confirmation_dialog(confirmation_text, console_list[0]);
|
||||
QStringList not_deleted_dn_list;
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
@ -450,7 +451,6 @@ void console_policy_delete(const QList<ConsoleWidget *> &console_list, PolicyRes
|
||||
|
||||
const QList<QString> deleted_list = [&]() {
|
||||
QList<QString> out;
|
||||
|
||||
for (const QString &dn : dn_list) {
|
||||
bool deleted_object = false;
|
||||
ad.gpo_delete(dn, &deleted_object);
|
||||
@ -462,19 +462,23 @@ void console_policy_delete(const QList<ConsoleWidget *> &console_list, PolicyRes
|
||||
if (deleted_object) {
|
||||
out.append(dn);
|
||||
}
|
||||
else
|
||||
{
|
||||
not_deleted_dn_list.append(dn);
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
}();
|
||||
|
||||
auto apply_changes = [&dn_list, policy_results](ConsoleWidget *target_console) {
|
||||
auto apply_changes = [&deleted_list, policy_results](ConsoleWidget *target_console) {
|
||||
const QModelIndex policy_root = get_policy_tree_root(target_console);
|
||||
|
||||
// NOTE: there can be duplicate items for
|
||||
// one policy because policy may be
|
||||
// displayed under multiple OU's
|
||||
if (policy_root.isValid()) {
|
||||
for (const QString &dn : dn_list) {
|
||||
for (const QString &dn : deleted_list) {
|
||||
const QList<QModelIndex> index_list = target_console->search_items(policy_root, PolicyRole_DN, dn, {ItemType_Policy});
|
||||
const QList<QPersistentModelIndex> persistent_list = persistent_index_list(index_list);
|
||||
|
||||
@ -487,7 +491,7 @@ void console_policy_delete(const QList<ConsoleWidget *> &console_list, PolicyRes
|
||||
const QModelIndex find_policy_root = get_find_policy_root(target_console);
|
||||
|
||||
if (find_policy_root.isValid()) {
|
||||
for (const QString &dn : dn_list) {
|
||||
for (const QString &dn : deleted_list) {
|
||||
const QList<QModelIndex> index_list = target_console->search_items(find_policy_root, FoundPolicyRole_DN, dn, {ItemType_FoundPolicy});
|
||||
const QList<QPersistentModelIndex> persistent_list = persistent_index_list(index_list);
|
||||
|
||||
@ -506,7 +510,13 @@ void console_policy_delete(const QList<ConsoleWidget *> &console_list, PolicyRes
|
||||
|
||||
hide_busy_indicator();
|
||||
|
||||
g_status->display_ad_messages(ad, console_list[0]);
|
||||
g_status->log_messages(ad);
|
||||
if (!not_deleted_dn_list.isEmpty())
|
||||
{
|
||||
QString message = (not_deleted_dn_list.size() == 1) ? PolicyImpl::tr("Failed to delete group policy") :
|
||||
PolicyImpl::tr("Failed to delete some group policies");
|
||||
QMessageBox::warning(console_list[0], "", message);
|
||||
}
|
||||
}
|
||||
|
||||
void console_policy_properties(const QList<ConsoleWidget *> &console_list, PolicyResultsWidget *policy_results, const int item_type, const int dn_role) {
|
||||
|
@ -94,12 +94,24 @@ void Status::add_message(const QString &msg, const StatusType &type) {
|
||||
}
|
||||
|
||||
void Status::display_ad_messages(const QList<AdMessage> &messages, QWidget *parent) {
|
||||
|
||||
log_messages(messages);
|
||||
|
||||
ad_error_log(messages, parent);
|
||||
}
|
||||
|
||||
void Status::display_ad_messages(const AdInterface &ad, QWidget *parent) {
|
||||
const QList<AdMessage> messages = ad.messages();
|
||||
|
||||
display_ad_messages(messages, parent);
|
||||
}
|
||||
|
||||
void Status::log_messages(const QList<AdMessage> &messages)
|
||||
{
|
||||
if (m_status_bar == nullptr || m_message_log == nullptr) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
// Display all messages in status log
|
||||
//
|
||||
|
||||
for (const AdMessage &message : messages) {
|
||||
const StatusType status_type = [message]() {
|
||||
switch (message.type()) {
|
||||
@ -111,14 +123,13 @@ void Status::display_ad_messages(const QList<AdMessage> &messages, QWidget *pare
|
||||
|
||||
add_message(message.text(), status_type);
|
||||
}
|
||||
|
||||
ad_error_log(messages, parent);
|
||||
}
|
||||
|
||||
void Status::display_ad_messages(const AdInterface &ad, QWidget *parent) {
|
||||
void Status::log_messages(const AdInterface &ad)
|
||||
{
|
||||
const QList<AdMessage> messages = ad.messages();
|
||||
|
||||
display_ad_messages(messages, parent);
|
||||
log_messages(messages);
|
||||
}
|
||||
|
||||
void ad_error_log(const QList<AdMessage> &messages, QWidget *parent) {
|
||||
|
@ -51,6 +51,11 @@ public:
|
||||
void display_ad_messages(const QList<AdMessage> &messages, QWidget *parent);
|
||||
void display_ad_messages(const AdInterface &ad, QWidget *parent);
|
||||
|
||||
|
||||
// Display all messages in status log without dialogs
|
||||
void log_messages(const QList<AdMessage> &messages);
|
||||
void log_messages(const AdInterface &ad);
|
||||
|
||||
private:
|
||||
QStatusBar *m_status_bar;
|
||||
QTextEdit *m_message_log;
|
||||
|
Loading…
x
Reference in New Issue
Block a user