mirror of
https://github.com/altlinux/admc.git
synced 2025-01-08 01:18:25 +03:00
Merge branch 'release/0-10-0-test' into sisyphus
This commit is contained in:
commit
e08f50d8ec
@ -30,6 +30,7 @@ BuildRequires: libkrb5-devel
|
||||
|
||||
Requires: libldap
|
||||
Requires: libsasl2
|
||||
Requires: libsasl2-plugin-gssapi
|
||||
Requires: libsmbclient
|
||||
Requires: libuuid
|
||||
Requires: qt5-base-common
|
||||
@ -61,6 +62,7 @@ Tests for ADMC
|
||||
%files
|
||||
%doc README.md
|
||||
%doc CHANGELOG.txt
|
||||
%doc CHANGELOG_ru.txt
|
||||
%_bindir/admc
|
||||
%_libdir/libadldap.so
|
||||
%_man1dir/admc*
|
||||
@ -69,19 +71,19 @@ Tests for ADMC
|
||||
|
||||
%files test
|
||||
%_libdir/libadmctest.so
|
||||
%_bindir/admc_test_ad_interface
|
||||
%_bindir/admc_test_ad_security
|
||||
%_bindir/admc_test_unlock_edit
|
||||
%_bindir/admc_test_upn_edit
|
||||
%_bindir/admc_test_string_edit
|
||||
%_bindir/admc_test_string_large_edit
|
||||
%_bindir/admc_test_country_edit
|
||||
%_bindir/admc_test_gplink
|
||||
%_bindir/admc_test_ad_interface
|
||||
%_bindir/admc_test_ad_security
|
||||
%_bindir/admc_test_select_base_widget
|
||||
%_bindir/admc_test_filter_widget
|
||||
%_bindir/admc_test_attributes_tab
|
||||
%_bindir/admc_test_member_of_tab
|
||||
%_bindir/admc_test_members_tab
|
||||
%_bindir/admc_test_member_of_tab
|
||||
%_bindir/admc_test_select_object_dialog
|
||||
%_bindir/admc_test_logon_hours_dialog
|
||||
%_bindir/admc_test_logon_computers_edit
|
||||
@ -94,20 +96,23 @@ Tests for ADMC
|
||||
%_bindir/admc_test_delegation_edit
|
||||
%_bindir/admc_test_string_other_edit
|
||||
%_bindir/admc_test_account_option_edit
|
||||
%_bindir/admc_test_protect_deletion_edit
|
||||
%_bindir/admc_test_gpoptions_edit
|
||||
%_bindir/admc_test_protect_deletion_edit
|
||||
%_bindir/admc_test_octet_attribute_dialog
|
||||
%_bindir/admc_test_bool_attribute_dialog
|
||||
%_bindir/admc_test_string_attribute_dialog
|
||||
%_bindir/admc_test_list_attribute_dialog
|
||||
%_bindir/admc_test_datetime_attribute_dialog
|
||||
%_bindir/admc_test_string_attribute_dialog
|
||||
%_bindir/admc_test_number_attribute_dialog
|
||||
%_bindir/admc_test_list_attribute_dialog
|
||||
%_bindir/admc_test_edit_query_item_widget
|
||||
%_bindir/admc_test_policy_results_widget
|
||||
%_bindir/admc_test_policy_ou_results_widget
|
||||
%_bindir/admc_test_find_object_dialog
|
||||
%_bindir/admc_test_rename_object_dialog
|
||||
%_bindir/admc_test_create_object_dialog
|
||||
%_bindir/admc_test_select_classes_widget
|
||||
%_bindir/admc_test_sam_name_edit
|
||||
%_bindir/admc_test_dn_edit
|
||||
|
||||
%changelog
|
||||
* Fri Apr 01 2022 Dmitry Degtyarev <kevl@altlinux.org> 0.9.0-alt1
|
||||
|
13
.github/workflows/main.yml
vendored
13
.github/workflows/main.yml
vendored
@ -1,13 +0,0 @@
|
||||
name: ADMC CI
|
||||
|
||||
on: [ push, pull_request ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build software using docker
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- run: docker build . --file Dockerfile --tag build-environment
|
||||
- run: docker run -i --log-driver=none -a stdin -a stdout -a stderr -v "$(pwd)":/app build-environment
|
@ -1,6 +1,29 @@
|
||||
admc
|
||||
CHANGELOG
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
VERSION 0.10.0
|
||||
-----------------------------------------------------------------------
|
||||
- Properties: Removed "Group tab". Not necessary because
|
||||
policy tree replaces it.
|
||||
- Policies: Improved policy tree. Tree now contains OU's in
|
||||
addition to policies. OU's display their child OU's and
|
||||
linked policies. Viewing all policies is still possible in
|
||||
"All policies" folder.
|
||||
- Misc: Fixed eliding of long items in scope view. Scope
|
||||
view now correctly displays a scroll bar so that long
|
||||
items can be viewed fully.
|
||||
- Misc: Added trimming of spaces from names when creating or
|
||||
renaming policies, query folders and query items.
|
||||
- Misc: Fixed a bug where object became unloaded if during
|
||||
rename character '?' was added to it's name.
|
||||
- Misc: Increased size of editor for string attributes,
|
||||
which is available in "Attributes" tab. Long strings are
|
||||
now easier to view and edit.
|
||||
- Misc: Removed ability to drag and drop policies onto OU's
|
||||
in object tree. This action now can be performed inside
|
||||
policy tree.
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
VERSION 0.9.0
|
||||
-----------------------------------------------------------------------
|
||||
|
8
CHANGELOG_ru.txt
Normal file
8
CHANGELOG_ru.txt
Normal file
@ -0,0 +1,8 @@
|
||||
admc
|
||||
CHANGELOG
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
VERSION 0.10.0
|
||||
-----------------------------------------------------------------------
|
||||
TODO
|
||||
русский changelog
|
@ -58,6 +58,8 @@ add_subdirectory(share)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.txt
|
||||
${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG_ru.txt
|
||||
${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
|
||||
|
||||
if (ADMC_BUILD_DEB)
|
||||
SET(CPACK_GENERATOR "DEB")
|
||||
|
15
Dockerfile
15
Dockerfile
@ -1,15 +0,0 @@
|
||||
# Container image that runs your code
|
||||
FROM alt:p9
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y qt5-base-devel cmake qt5-tools-devel qt5-tools libuuid-devel libsmbclient-devel libsasl2-devel catch2-devel doxygen glib2-devel libpcre-devel rpm-build gear libldap-devel libcmocka-devel libkrb5-devel samba-devel \
|
||||
&& useradd -ms /bin/bash builder && mkdir /app && chown root:builder /app
|
||||
|
||||
# Copies your code file from your action repository to the filesystem path `/` of the container
|
||||
COPY script/build.sh /build.sh
|
||||
|
||||
USER builder
|
||||
WORKDIR /home/builder
|
||||
|
||||
# Code file to execute when the docker container starts up (`build.sh`)
|
||||
ENTRYPOINT ["/build.sh"]
|
@ -1,17 +0,0 @@
|
||||
# Container image that runs your code
|
||||
FROM debian:buster-slim
|
||||
ENV DEBIAN_FRONTEND=noninteractive LANG=C.UTF-8 TZ=UTC TERM=xterm-256color
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install dumb-init build-essential devscripts debhelper gcc g++ catch cmake cmake-data cmake-qt-gui \
|
||||
qttools5-dev qtbase5-dev qtbase5-dev-tools qtbase5-private-dev \
|
||||
samba-dev libldap-dev libsasl2-dev libsmbclient-dev libcmocka-dev doxygen libg2-dev libpcre3-dev \
|
||||
libkrb5-dev libcmocka-dev \
|
||||
&& mkdir /admc
|
||||
|
||||
WORKDIR /admc
|
||||
# Copies the complete project
|
||||
COPY . .
|
||||
RUN dpkg-buildpackage -us -uc
|
||||
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Need to add this so that the %packager macro used in .spec
|
||||
# is defined, actual value doesn't matter since this is just
|
||||
# for testing
|
||||
echo "%packager Docker <docker@email.com>" >> ~/.rpmmacros
|
||||
|
||||
cd /app/ && gear-rpm -ba
|
@ -8,4 +8,4 @@ AD editor
|
||||
.SH OPTIONS
|
||||
No options.
|
||||
.SH AUTHOR
|
||||
Copyright (C) 2021 BaseALT Ltd.
|
||||
Copyright (C) 2022 BaseALT Ltd.
|
@ -20,12 +20,6 @@ if(Ndr_VERSION VERSION_GREATER "1.0.1")
|
||||
endif()
|
||||
configure_file("adldap_config.h.in" "adldap_config.h")
|
||||
|
||||
pkg_check_modules(Ndr REQUIRED IMPORTED_TARGET ndr)
|
||||
if(Ndr_VERSION VERSION_GREATER "1.0.1")
|
||||
set(NDR_VERSION_GREATER_THAN_1_0_1 ON)
|
||||
endif()
|
||||
configure_file("adldap_config.h.in" "adldap_config.h")
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -369,6 +369,10 @@ QString AdConfig::extended_rights_dn() const {
|
||||
return QString("CN=Extended-Rights,%1").arg(configuration_dn());
|
||||
}
|
||||
|
||||
QString AdConfig::policies_dn() const {
|
||||
return QString("CN=Policies,CN=System,%1").arg(domain_dn());
|
||||
}
|
||||
|
||||
bool AdConfig::control_is_supported(const QString &control_oid) const {
|
||||
const bool supported = d->supported_control_list.contains(control_oid);
|
||||
|
||||
@ -777,8 +781,13 @@ QList<QString> AdConfig::get_noncontainer_classes() {
|
||||
|
||||
bool AdConfig::rights_applies_to_class(const QString &rights_cn, const QList<QString> &class_list) const {
|
||||
const QByteArray rights_guid = d->rights_name_to_guid_map[rights_cn];
|
||||
const QSet<QString> applies_to = d->rights_applies_to_map[rights_guid].toSet();
|
||||
const bool applies = applies_to.intersects(class_list.toSet());
|
||||
|
||||
const QList<QString> applies_to_list = d->rights_applies_to_map[rights_guid];
|
||||
const QSet<QString> applies_to_set = QSet<QString>(applies_to_list.begin(), applies_to_list.end());
|
||||
|
||||
const QSet<QString> class_set = QSet<QString>(class_list.begin(), class_list.end());
|
||||
|
||||
const bool applies = applies_to_set.intersects(class_set);
|
||||
|
||||
return applies;
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -58,6 +58,7 @@ public:
|
||||
QString schema_dn() const;
|
||||
QString partitions_dn() const;
|
||||
QString extended_rights_dn() const;
|
||||
QString policies_dn() const;
|
||||
bool control_is_supported(const QString &control_oid) const;
|
||||
|
||||
QString get_attribute_display_name(const Attribute &attribute, const ObjectClass &objectClass) const;
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -118,3 +118,20 @@ QList<QString> process_subfilters(const QList<QString> &in) {
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
QString filter_dn_list(const QList<QString> &dn_list) {
|
||||
const QList<QString> subfilter_list = [&]() {
|
||||
QList<QString> subfilter_list_out;
|
||||
|
||||
for (const QString &dn : dn_list) {
|
||||
const QString subfilter = filter_CONDITION(Condition_Equals, ATTRIBUTE_DN, dn);
|
||||
subfilter_list_out.append(subfilter);
|
||||
}
|
||||
|
||||
return subfilter_list_out;
|
||||
}();
|
||||
|
||||
const QString out = filter_OR(subfilter_list);
|
||||
|
||||
return out;
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -52,4 +52,7 @@ QString add_advanced_view_filter(const QString &filter);
|
||||
|
||||
QString condition_to_display_string(const Condition condition);
|
||||
|
||||
// Filter that accepts any DN from given list
|
||||
QString filter_dn_list(const QList<QString> &dn_list);
|
||||
|
||||
#endif /* AD_FILTER_H */
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -431,7 +431,7 @@ QList<QByteArray> security_descriptor_get_trustee_list(security_descriptor *sd)
|
||||
return out;
|
||||
}();
|
||||
|
||||
const QList<QByteArray> trustee_list = trustee_set.toList();
|
||||
const QList<QByteArray> trustee_list = QList<QByteArray>(trustee_set.begin(), trustee_set.end());
|
||||
|
||||
return trustee_list;
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -40,6 +40,8 @@
|
||||
|
||||
const QDateTime ntfs_epoch = QDateTime(QDate(1601, 1, 1), QTime(), Qt::UTC);
|
||||
|
||||
QString escape_name_for_dn(const QString &unescaped);
|
||||
|
||||
bool large_integer_datetime_is_never(const QString &value) {
|
||||
const bool is_never = (value == AD_LARGE_INTEGER_DATETIME_NEVER_1 || value == AD_LARGE_INTEGER_DATETIME_NEVER_2);
|
||||
|
||||
@ -240,6 +242,9 @@ QString dn_get_name(const QString &dn) {
|
||||
|
||||
QString name = dn.mid(equals_i, segment_length);
|
||||
|
||||
// Unescape name
|
||||
name.replace("\\?", "?");
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -264,7 +269,9 @@ QString dn_rename(const QString &dn, const QString &new_name) {
|
||||
const int prefix_index = old_rdn.indexOf('=') + 1;
|
||||
const QString prefix = old_rdn.left(prefix_index);
|
||||
|
||||
return (prefix + new_name);
|
||||
const QString new_name_escaped = escape_name_for_dn(new_name);
|
||||
|
||||
return (prefix + new_name_escaped);
|
||||
}();
|
||||
|
||||
QStringList new_exploded_dn(exploded_dn);
|
||||
@ -301,7 +308,10 @@ QString dn_from_name_and_parent(const QString &name, const QString &parent, cons
|
||||
return "CN";
|
||||
}
|
||||
}();
|
||||
const QString dn = QString("%1=%2,%3").arg(suffix, name, parent);
|
||||
|
||||
const QString name_escaped = escape_name_for_dn(name);
|
||||
|
||||
const QString dn = QString("%1=%2,%3").arg(suffix, name_escaped, parent);
|
||||
|
||||
return dn;
|
||||
}
|
||||
@ -447,3 +457,11 @@ QString attribute_type_display_string(const AttributeType type) {
|
||||
QString int_to_hex_string(const int n) {
|
||||
return QString("0x%1").arg(n, 8, 16, QLatin1Char('0'));
|
||||
}
|
||||
|
||||
QString escape_name_for_dn(const QString &unescaped) {
|
||||
QString out = unescaped;
|
||||
|
||||
out.replace("?", "\\?");
|
||||
|
||||
return out;
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -140,7 +140,51 @@ bool Gplink::contains(const QString &gpo_case) const {
|
||||
}
|
||||
|
||||
QList<QString> Gplink::get_gpo_list() const {
|
||||
return gpo_list;
|
||||
QList<QString> gpo_list_case;
|
||||
|
||||
for (auto gpo : gpo_list) {
|
||||
const QString gpo_case = [&]() {
|
||||
QList<QString> rdn_list = gpo.split(",");
|
||||
|
||||
const bool rdn_list_is_malformed = rdn_list.isEmpty();
|
||||
if (rdn_list_is_malformed) {
|
||||
return gpo;
|
||||
}
|
||||
|
||||
const QString guid_rdn = rdn_list[0];
|
||||
rdn_list[0] = guid_rdn.toUpper();
|
||||
|
||||
for (int i = 1; i < rdn_list.size(); i++) {
|
||||
const QString rdn = rdn_list[i];
|
||||
QList<QString> rdn_split = rdn.split("=");
|
||||
|
||||
const bool rdn_is_malformed = (rdn_split.size() != 2);
|
||||
if (rdn_is_malformed) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Uppercase all rdn left halves
|
||||
rdn_split[0] = rdn_split[0].toUpper();
|
||||
|
||||
// Modify some right halves
|
||||
if (rdn_split[1] == "system") {
|
||||
rdn_split[1] = "System";
|
||||
} else if (rdn_split[1] == "policies") {
|
||||
rdn_split[1] = "Policies";
|
||||
}
|
||||
|
||||
rdn_list[i] = rdn_split.join("=");
|
||||
}
|
||||
|
||||
const QString out = rdn_list.join(",");
|
||||
|
||||
return out;
|
||||
}();
|
||||
|
||||
gpo_list_case.append(gpo_case);
|
||||
}
|
||||
|
||||
return gpo_list_case;
|
||||
}
|
||||
|
||||
void Gplink::add(const QString &gpo_case) {
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -45,6 +45,11 @@ public:
|
||||
|
||||
QString to_string() const;
|
||||
bool contains(const QString &gpo) const;
|
||||
|
||||
// NOTE: this returns a list of GPO DN's with correct
|
||||
// letter case. Gplink string contains DN's in a
|
||||
// different letter case that is not appropriate for
|
||||
// LDAP operations.
|
||||
QList<QString> get_gpo_list() const;
|
||||
|
||||
void add(const QString &gpo);
|
||||
|
@ -41,6 +41,7 @@ set(ADMC_SOURCES
|
||||
find_widget.cpp
|
||||
tab_widget.cpp
|
||||
policy_results_widget.cpp
|
||||
policy_ou_results_widget.cpp
|
||||
edit_query_item_widget.cpp
|
||||
fsmo_tab.cpp
|
||||
|
||||
@ -103,7 +104,6 @@ set(ADMC_SOURCES
|
||||
tabs/account_tab.cpp
|
||||
tabs/membership_tab.cpp
|
||||
tabs/address_tab.cpp
|
||||
tabs/group_policy_tab.cpp
|
||||
tabs/organization_tab.cpp
|
||||
tabs/telephones_tab.cpp
|
||||
tabs/profile_tab.cpp
|
||||
@ -152,6 +152,7 @@ set(ADMC_SOURCES
|
||||
attribute_edits/protect_deletion_edit.cpp
|
||||
attribute_edits/laps_expiry_edit.cpp
|
||||
attribute_edits/general_name_edit.cpp
|
||||
attribute_edits/dn_edit.cpp
|
||||
|
||||
attribute_edits/upn_multi_edit.cpp
|
||||
attribute_edits/account_option_multi_edit.cpp
|
||||
@ -159,6 +160,7 @@ set(ADMC_SOURCES
|
||||
attribute_dialogs/attribute_dialog.cpp
|
||||
attribute_dialogs/list_attribute_dialog.cpp
|
||||
attribute_dialogs/string_attribute_dialog.cpp
|
||||
attribute_dialogs/number_attribute_dialog.cpp
|
||||
attribute_dialogs/octet_attribute_dialog.cpp
|
||||
attribute_dialogs/bool_attribute_dialog.cpp
|
||||
attribute_dialogs/datetime_attribute_dialog.cpp
|
||||
@ -176,6 +178,8 @@ set(ADMC_SOURCES
|
||||
console_impls/query_folder_impl.cpp
|
||||
console_impls/policy_root_impl.cpp
|
||||
console_impls/find_root_impl.cpp
|
||||
console_impls/all_policies_folder_impl.cpp
|
||||
console_impls/policy_ou_impl.cpp
|
||||
|
||||
admc.qrc
|
||||
)
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -4,5 +4,6 @@
|
||||
<file>admc_ru.qm</file>
|
||||
<file>admc_en.qm</file>
|
||||
<file alias="admc.svg">data/admc.svg</file>
|
||||
<file alias="admc.ico">data/admc.ico</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -211,6 +211,19 @@
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AllPoliciesFolderImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/all_policies_folder_impl.cpp" line="42"/>
|
||||
<source>Create policy</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/all_policies_folder_impl.cpp" line="102"/>
|
||||
<source>Name</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AttributeDialog</name>
|
||||
<message>
|
||||
@ -240,32 +253,32 @@
|
||||
<context>
|
||||
<name>AttributesTabEdit</name>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="66"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="67"/>
|
||||
<source>Name</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="67"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="68"/>
|
||||
<source>Value</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="68"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="69"/>
|
||||
<source>Type</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="371"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="378"/>
|
||||
<source>Edit</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="369"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="376"/>
|
||||
<source>View</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="380"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="387"/>
|
||||
<source>%1 Multi-Valued %2</source>
|
||||
<comment>This is a dialog title for attribute editors. Example: "Edit Multi-Valued String"</comment>
|
||||
<translation></translation>
|
||||
@ -455,42 +468,42 @@
|
||||
<context>
|
||||
<name>ConsoleWidget</name>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="92"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="127"/>
|
||||
<source>Copy</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="93"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="128"/>
|
||||
<source>Cut</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="94"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="129"/>
|
||||
<source>Rename</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="95"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="130"/>
|
||||
<source>Delete</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="96"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="131"/>
|
||||
<source>Paste</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="97"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="132"/>
|
||||
<source>Print</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="98"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="133"/>
|
||||
<source>Refresh</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="99"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="134"/>
|
||||
<source>Properties</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -1062,7 +1075,7 @@
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="find_object_dialog.cpp" line="42"/>
|
||||
<location filename="find_object_dialog.cpp" line="43"/>
|
||||
<source>&View</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -1388,68 +1401,6 @@
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GroupPolicyTab</name>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.ui" line="41"/>
|
||||
<source>Add...</source>
|
||||
<oldsource>Add</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.ui" line="48"/>
|
||||
<source>Remove</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.ui" line="70"/>
|
||||
<source>Block policy inheritance</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GroupPolicyTabEdit</name>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="83"/>
|
||||
<source>Name</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="84"/>
|
||||
<source>Disabled</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="85"/>
|
||||
<source>Enforced</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="151"/>
|
||||
<source>Remove link</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="155"/>
|
||||
<source>Move up</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="158"/>
|
||||
<source>Move down</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="276"/>
|
||||
<source>Not found</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="304"/>
|
||||
<source>The GPO for this link could not be found. It maybe have been recently created and is being replicated or it could have been deleted.</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LAPSTab</name>
|
||||
<message>
|
||||
@ -1486,17 +1437,17 @@
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="89"/>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="90"/>
|
||||
<source>Error</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="89"/>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="90"/>
|
||||
<source>One or more values are empty. Edit or remove them to proceed.</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="112"/>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="116"/>
|
||||
<source>Add Value</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -1636,206 +1587,251 @@
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="112"/>
|
||||
<location filename="main_window.ui" line="116"/>
|
||||
<source>Message Log</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="125"/>
|
||||
<location filename="main_window.ui" line="129"/>
|
||||
<source>&Connection Options</source>
|
||||
<oldsource>Connection Options</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="130"/>
|
||||
<location filename="main_window.ui" line="134"/>
|
||||
<source>&Quit</source>
|
||||
<oldsource>Quit</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="133"/>
|
||||
<location filename="main_window.ui" line="137"/>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="142"/>
|
||||
<location filename="main_window.ui" line="146"/>
|
||||
<source>&Manual</source>
|
||||
<oldsource>Manual</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="145"/>
|
||||
<location filename="main_window.ui" line="149"/>
|
||||
<source>Manual (Alt + 8)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="148"/>
|
||||
<location filename="main_window.ui" line="152"/>
|
||||
<source>Alt+8</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="153"/>
|
||||
<location filename="main_window.ui" line="157"/>
|
||||
<source>&Changelog</source>
|
||||
<oldsource>Changelog</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="158"/>
|
||||
<location filename="main_window.ui" line="162"/>
|
||||
<source>&About ADMC</source>
|
||||
<oldsource>About ADMC</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="166"/>
|
||||
<location filename="main_window.ui" line="170"/>
|
||||
<source>&Icons</source>
|
||||
<oldsource>Icons</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="174"/>
|
||||
<location filename="main_window.ui" line="178"/>
|
||||
<source>&List</source>
|
||||
<oldsource>List</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="182"/>
|
||||
<location filename="main_window.ui" line="186"/>
|
||||
<source>&Detail</source>
|
||||
<oldsource>Detail</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="206"/>
|
||||
<location filename="main_window.ui" line="210"/>
|
||||
<source>&Console Tree</source>
|
||||
<oldsource>Console Tree</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="214"/>
|
||||
<location filename="main_window.ui" line="218"/>
|
||||
<source>Description &Bar</source>
|
||||
<oldsource>Description Bar</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="219"/>
|
||||
<location filename="main_window.ui" line="223"/>
|
||||
<source>C&ustomize Columns...</source>
|
||||
<oldsource>Customize Columns...</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="224"/>
|
||||
<location filename="main_window.ui" line="228"/>
|
||||
<source>&Filter Objects...</source>
|
||||
<oldsource>Filter Objects...</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="232"/>
|
||||
<location filename="main_window.ui" line="236"/>
|
||||
<source>&Advanced Features</source>
|
||||
<oldsource>Advanced Features</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="240"/>
|
||||
<location filename="main_window.ui" line="244"/>
|
||||
<source>&Confirm Actions</source>
|
||||
<oldsource>Confirm Actions</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="248"/>
|
||||
<location filename="main_window.ui" line="252"/>
|
||||
<source>&Put Last Name Before First Name</source>
|
||||
<oldsource>Put Last Name Before First Name</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="256"/>
|
||||
<location filename="main_window.ui" line="260"/>
|
||||
<source>&Log Searches</source>
|
||||
<oldsource>Log Searches</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="264"/>
|
||||
<location filename="main_window.ui" line="268"/>
|
||||
<source>&Timestamps in Message Log</source>
|
||||
<oldsource>Timestamps in Message Log</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="272"/>
|
||||
<location filename="main_window.ui" line="276"/>
|
||||
<source>&Show Non-Container Objects in Console Tree</source>
|
||||
<oldsource>Show Non-Container Objects in Console Tree</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="296"/>
|
||||
<location filename="main_window.ui" line="300"/>
|
||||
<source>Navigate Back (Alt + -)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="311"/>
|
||||
<location filename="main_window.ui" line="315"/>
|
||||
<source>Navigate Forward (Alt + =)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="326"/>
|
||||
<location filename="main_window.ui" line="330"/>
|
||||
<source>Refresh (Alt + 9)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="329"/>
|
||||
<location filename="main_window.ui" line="333"/>
|
||||
<source>Alt+9</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="337"/>
|
||||
<location filename="main_window.ui" line="341"/>
|
||||
<source>Show Login</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="342"/>
|
||||
<location filename="main_window.ui" line="346"/>
|
||||
<source>&Operations Masters</source>
|
||||
<oldsource>Operations Masters</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="281"/>
|
||||
<location filename="main_window.ui" line="355"/>
|
||||
<source>Create user</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="358"/>
|
||||
<source>Create user (Alt + 7)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="361"/>
|
||||
<source>Alt+7</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="370"/>
|
||||
<source>Create group</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="373"/>
|
||||
<source>Create group (Alt + 6)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="376"/>
|
||||
<source>Alt+6</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="385"/>
|
||||
<source>Create organization unit</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="388"/>
|
||||
<source>Create organization unit (Alt + 5)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="391"/>
|
||||
<source>Alt+5</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="285"/>
|
||||
<source>Navigate Up</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="284"/>
|
||||
<location filename="main_window.ui" line="288"/>
|
||||
<source>Alt+0</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="293"/>
|
||||
<location filename="main_window.ui" line="297"/>
|
||||
<source>Navigate Back</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="299"/>
|
||||
<location filename="main_window.ui" line="303"/>
|
||||
<source>Alt+-</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="308"/>
|
||||
<location filename="main_window.ui" line="312"/>
|
||||
<source>Navigate Forward</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="314"/>
|
||||
<location filename="main_window.ui" line="318"/>
|
||||
<source>Alt+=</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="323"/>
|
||||
<location filename="main_window.ui" line="327"/>
|
||||
<source>Refresh</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.cpp" line="206"/>
|
||||
<location filename="main_window.cpp" line="215"/>
|
||||
<source>Info</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.cpp" line="206"/>
|
||||
<location filename="main_window.cpp" line="215"/>
|
||||
<source>Restart the app to switch to the selected language.</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -2028,115 +2024,115 @@
|
||||
<context>
|
||||
<name>ObjectImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="86"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="91"/>
|
||||
<source>User</source>
|
||||
<oldsource>&User</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="87"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="92"/>
|
||||
<source>Computer</source>
|
||||
<oldsource>&Computer</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="88"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="93"/>
|
||||
<source>OU</source>
|
||||
<oldsource>&OU</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="89"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="94"/>
|
||||
<source>Group</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="90"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="95"/>
|
||||
<source>Shared Folder</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="91"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="96"/>
|
||||
<source>inetOrgPerson</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="92"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="97"/>
|
||||
<source>Contact</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="93"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="98"/>
|
||||
<source>Find...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="94"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="99"/>
|
||||
<source>Move...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="95"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="100"/>
|
||||
<source>Add to group...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="96"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="101"/>
|
||||
<source>Enable</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="97"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="102"/>
|
||||
<source>Disable</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="98"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="103"/>
|
||||
<source>Reset password</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="99"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="104"/>
|
||||
<source>Reset account</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="100"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="105"/>
|
||||
<source>Edit UPN suffixes</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="102"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="107"/>
|
||||
<source>New</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="266"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="296"/>
|
||||
<source> [Filtering enabled]</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="586"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="654"/>
|
||||
<source>Are you sure you want to delete this object?</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="778"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="867"/>
|
||||
<source>Add to Group</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="846"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="935"/>
|
||||
<source>Edit UPN Suffixes</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="876"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="955"/>
|
||||
<source>Are you sure you want to reset this account?</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="1219"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="1266"/>
|
||||
<source>Query may be out of date</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -2359,26 +2355,102 @@
|
||||
<context>
|
||||
<name>PolicyImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="48"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="44"/>
|
||||
<source>Add link...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="49"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="45"/>
|
||||
<source>Edit...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="182"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="165"/>
|
||||
<source>Are you sure you want to unlink this policy from the OU? Note that the actual policy object won't be deleted.</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="167"/>
|
||||
<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="285"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="310"/>
|
||||
<source>Add Link</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicyOUImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="52"/>
|
||||
<source>Create OU</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="53"/>
|
||||
<source>Create a GPO and link to this OU</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="54"/>
|
||||
<source>Link existing GPO</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="98"/>
|
||||
<source>All policies</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="216"/>
|
||||
<source>Name</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicyOUResultsWidget</name>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="78"/>
|
||||
<source>Remove link</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="79"/>
|
||||
<source>Move up</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="80"/>
|
||||
<source>Move down</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="90"/>
|
||||
<source>Name</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="91"/>
|
||||
<source>Enforced</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="92"/>
|
||||
<source>Disabled</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="337"/>
|
||||
<source>Not found</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="368"/>
|
||||
<source>The GPO for this link could not be found. It maybe have been recently created and is being replicated or it could have been deleted.</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicyResultsWidget</name>
|
||||
<message>
|
||||
@ -2420,12 +2492,7 @@
|
||||
<context>
|
||||
<name>PolicyRootImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="49"/>
|
||||
<source>Create policy</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="113"/>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="78"/>
|
||||
<source>Name</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -2470,93 +2537,88 @@
|
||||
<name>PropertiesDialog</name>
|
||||
<message>
|
||||
<location filename="properties_dialog.ui" line="14"/>
|
||||
<location filename="properties_dialog.cpp" line="138"/>
|
||||
<location filename="properties_dialog.cpp" line="137"/>
|
||||
<source>Properties</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="136"/>
|
||||
<location filename="properties_dialog.cpp" line="135"/>
|
||||
<source>%1 Properties</source>
|
||||
<oldsource>"%1" Properties</oldsource>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="170"/>
|
||||
<location filename="properties_dialog.cpp" line="169"/>
|
||||
<source>General</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="178"/>
|
||||
<location filename="properties_dialog.cpp" line="177"/>
|
||||
<source>Object</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="179"/>
|
||||
<location filename="properties_dialog.cpp" line="178"/>
|
||||
<source>Attributes</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="197"/>
|
||||
<location filename="properties_dialog.cpp" line="196"/>
|
||||
<source>Account</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="190"/>
|
||||
<location filename="properties_dialog.cpp" line="189"/>
|
||||
<source>Organization</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="191"/>
|
||||
<location filename="properties_dialog.cpp" line="190"/>
|
||||
<source>Telephones</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="202"/>
|
||||
<location filename="properties_dialog.cpp" line="201"/>
|
||||
<source>Profile</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="245"/>
|
||||
<location filename="properties_dialog.cpp" line="239"/>
|
||||
<source>LAPS</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="252"/>
|
||||
<location filename="properties_dialog.cpp" line="246"/>
|
||||
<source>Security</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="208"/>
|
||||
<location filename="properties_dialog.cpp" line="207"/>
|
||||
<source>Members</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="213"/>
|
||||
<location filename="properties_dialog.cpp" line="212"/>
|
||||
<source>Member of</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="223"/>
|
||||
<location filename="properties_dialog.cpp" line="222"/>
|
||||
<source>Managed by</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="228"/>
|
||||
<source>Group policy</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="234"/>
|
||||
<source>Operating System</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="218"/>
|
||||
<location filename="properties_dialog.cpp" line="217"/>
|
||||
<source>Delegation</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="189"/>
|
||||
<location filename="properties_dialog.cpp" line="188"/>
|
||||
<source>Address</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -2616,7 +2678,7 @@
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="utils.cpp" line="109"/>
|
||||
<location filename="utils.cpp" line="111"/>
|
||||
<source>Confirm action</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -3132,7 +3194,7 @@
|
||||
<context>
|
||||
<name>object_impl</name>
|
||||
<message numerus="yes">
|
||||
<location filename="console_impls/object_impl.cpp" line="1617"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="1724"/>
|
||||
<source>%n object(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n object</numerusform>
|
||||
@ -3156,7 +3218,7 @@
|
||||
<context>
|
||||
<name>policy_root_impl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="175"/>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="88"/>
|
||||
<source>Group Policy Objects</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -3243,12 +3305,12 @@
|
||||
<context>
|
||||
<name>utils.cpp</name>
|
||||
<message>
|
||||
<location filename="utils.cpp" line="402"/>
|
||||
<location filename="utils.cpp" line="436"/>
|
||||
<source>Input field for Name contains one or more of the following illegal characters: # , + " \ < > ; = (leading space) (trailing space) (leading question mark)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="utils.cpp" line="403"/>
|
||||
<location filename="utils.cpp" line="437"/>
|
||||
<source>Error</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
|
@ -142,7 +142,7 @@
|
||||
<message>
|
||||
<location filename="tabs/account_tab.ui" line="194"/>
|
||||
<source>Use Kerberos DES encryption types for this account</source>
|
||||
<translation>Использовать Керберос DES тип шифрования для этой учетной записи</translation>
|
||||
<translation>Использовать Kerberos DES тип шифрования для этой учетной записи</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/account_tab.ui" line="201"/>
|
||||
@ -211,6 +211,19 @@
|
||||
<translation>Страна:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AllPoliciesFolderImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/all_policies_folder_impl.cpp" line="42"/>
|
||||
<source>Create policy</source>
|
||||
<translation>Создать политику</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/all_policies_folder_impl.cpp" line="102"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AttributeDialog</name>
|
||||
<message>
|
||||
@ -240,32 +253,32 @@
|
||||
<context>
|
||||
<name>AttributesTabEdit</name>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="66"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="67"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="67"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="68"/>
|
||||
<source>Value</source>
|
||||
<translation>Значение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="68"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="69"/>
|
||||
<source>Type</source>
|
||||
<translation>Тип</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="371"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="378"/>
|
||||
<source>Edit</source>
|
||||
<translation>Изменить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="369"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="376"/>
|
||||
<source>View</source>
|
||||
<translation>Просмотреть</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/attributes_tab.cpp" line="380"/>
|
||||
<location filename="tabs/attributes_tab.cpp" line="387"/>
|
||||
<source>%1 Multi-Valued %2</source>
|
||||
<comment>This is a dialog title for attribute editors. Example: "Edit Multi-Valued String"</comment>
|
||||
<translation>%1 %2 (Многозначный)</translation>
|
||||
@ -455,42 +468,42 @@
|
||||
<context>
|
||||
<name>ConsoleWidget</name>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="92"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="127"/>
|
||||
<source>Copy</source>
|
||||
<translation>Копировать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="93"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="128"/>
|
||||
<source>Cut</source>
|
||||
<translation>Вырезать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="94"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="129"/>
|
||||
<source>Rename</source>
|
||||
<translation>Переименовать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="95"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="130"/>
|
||||
<source>Delete</source>
|
||||
<translation>Удалить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="96"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="131"/>
|
||||
<source>Paste</source>
|
||||
<translation>Вставить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="97"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="132"/>
|
||||
<source>Print</source>
|
||||
<translation>Напечатать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="98"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="133"/>
|
||||
<source>Refresh</source>
|
||||
<translation>Обновить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_widget/console_widget.cpp" line="99"/>
|
||||
<location filename="console_widget/console_widget.cpp" line="134"/>
|
||||
<source>Properties</source>
|
||||
<translation>Свойства</translation>
|
||||
</message>
|
||||
@ -1062,7 +1075,7 @@
|
||||
<translation>&Действие</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="find_object_dialog.cpp" line="42"/>
|
||||
<location filename="find_object_dialog.cpp" line="43"/>
|
||||
<source>&View</source>
|
||||
<translation>&Вид</translation>
|
||||
</message>
|
||||
@ -1388,68 +1401,6 @@
|
||||
<translation>Другие...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GroupPolicyTab</name>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.ui" line="41"/>
|
||||
<source>Add...</source>
|
||||
<oldsource>Add</oldsource>
|
||||
<translation>Добавить...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.ui" line="48"/>
|
||||
<source>Remove</source>
|
||||
<translation>Удалить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.ui" line="70"/>
|
||||
<source>Block policy inheritance</source>
|
||||
<translation>Заблокировать наследование политик</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GroupPolicyTabEdit</name>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="83"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="84"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Отключено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="85"/>
|
||||
<source>Enforced</source>
|
||||
<translation>Принудительно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="151"/>
|
||||
<source>Remove link</source>
|
||||
<translation>Удалить связь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="155"/>
|
||||
<source>Move up</source>
|
||||
<translation>Переместить вверх</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="158"/>
|
||||
<source>Move down</source>
|
||||
<translation>Переместить вниз</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="276"/>
|
||||
<source>Not found</source>
|
||||
<translation>Не найдено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="tabs/group_policy_tab.cpp" line="304"/>
|
||||
<source>The GPO for this link could not be found. It maybe have been recently created and is being replicated or it could have been deleted.</source>
|
||||
<translation>Не удалось найти объект групповой политики для этой связи. Возможно, он был недавно создан и реплицируется, а может быть, был удалён.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LAPSTab</name>
|
||||
<message>
|
||||
@ -1486,17 +1437,17 @@
|
||||
<translation>Удалить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="89"/>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="90"/>
|
||||
<source>Error</source>
|
||||
<translation>Ошибка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="89"/>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="90"/>
|
||||
<source>One or more values are empty. Edit or remove them to proceed.</source>
|
||||
<translation>Одна или более значений пуста. Редактируйте или удалите эти значения чтобы продолжить.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="112"/>
|
||||
<location filename="attribute_dialogs/list_attribute_dialog.cpp" line="116"/>
|
||||
<source>Add Value</source>
|
||||
<translation>Добавить значение</translation>
|
||||
</message>
|
||||
@ -1636,206 +1587,251 @@
|
||||
<translation>Панель инструментов</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="112"/>
|
||||
<location filename="main_window.ui" line="116"/>
|
||||
<source>Message Log</source>
|
||||
<translation>Журнал сообщений</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="125"/>
|
||||
<location filename="main_window.ui" line="129"/>
|
||||
<source>&Connection Options</source>
|
||||
<oldsource>Connection Options</oldsource>
|
||||
<translation>&Параметры подключения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="130"/>
|
||||
<location filename="main_window.ui" line="134"/>
|
||||
<source>&Quit</source>
|
||||
<oldsource>Quit</oldsource>
|
||||
<translation>&Выйти</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="133"/>
|
||||
<location filename="main_window.ui" line="137"/>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation>Ctrl+Q</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="142"/>
|
||||
<location filename="main_window.ui" line="146"/>
|
||||
<source>&Manual</source>
|
||||
<oldsource>Manual</oldsource>
|
||||
<translation>&Руководство</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="145"/>
|
||||
<location filename="main_window.ui" line="149"/>
|
||||
<source>Manual (Alt + 8)</source>
|
||||
<translation>Помощь (Alt + 8)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="148"/>
|
||||
<location filename="main_window.ui" line="152"/>
|
||||
<source>Alt+8</source>
|
||||
<translation>Alt+8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="153"/>
|
||||
<location filename="main_window.ui" line="157"/>
|
||||
<source>&Changelog</source>
|
||||
<oldsource>Changelog</oldsource>
|
||||
<translation>&Журнал изменений</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="158"/>
|
||||
<location filename="main_window.ui" line="162"/>
|
||||
<source>&About ADMC</source>
|
||||
<oldsource>About ADMC</oldsource>
|
||||
<translation>&О приложении ADMC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="166"/>
|
||||
<location filename="main_window.ui" line="170"/>
|
||||
<source>&Icons</source>
|
||||
<oldsource>Icons</oldsource>
|
||||
<translation>&Значки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="174"/>
|
||||
<location filename="main_window.ui" line="178"/>
|
||||
<source>&List</source>
|
||||
<oldsource>List</oldsource>
|
||||
<translation>&Список</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="182"/>
|
||||
<location filename="main_window.ui" line="186"/>
|
||||
<source>&Detail</source>
|
||||
<oldsource>Detail</oldsource>
|
||||
<translation>&Подробно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="206"/>
|
||||
<location filename="main_window.ui" line="210"/>
|
||||
<source>&Console Tree</source>
|
||||
<oldsource>Console Tree</oldsource>
|
||||
<translation>&Дерево консоли</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="214"/>
|
||||
<location filename="main_window.ui" line="218"/>
|
||||
<source>Description &Bar</source>
|
||||
<oldsource>Description Bar</oldsource>
|
||||
<translation>&Область описания</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="219"/>
|
||||
<location filename="main_window.ui" line="223"/>
|
||||
<source>C&ustomize Columns...</source>
|
||||
<oldsource>Customize Columns...</oldsource>
|
||||
<translation>&Настроить колонки...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="224"/>
|
||||
<location filename="main_window.ui" line="228"/>
|
||||
<source>&Filter Objects...</source>
|
||||
<oldsource>Filter Objects...</oldsource>
|
||||
<translation>&Фильтровать объекты...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="232"/>
|
||||
<location filename="main_window.ui" line="236"/>
|
||||
<source>&Advanced Features</source>
|
||||
<oldsource>Advanced Features</oldsource>
|
||||
<translation>&Дополнительные возможности</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="240"/>
|
||||
<location filename="main_window.ui" line="244"/>
|
||||
<source>&Confirm Actions</source>
|
||||
<oldsource>Confirm Actions</oldsource>
|
||||
<translation>&Подтверждать действия</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="248"/>
|
||||
<location filename="main_window.ui" line="252"/>
|
||||
<source>&Put Last Name Before First Name</source>
|
||||
<oldsource>Put Last Name Before First Name</oldsource>
|
||||
<translation>&Ставить фамилию перед именем</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="256"/>
|
||||
<location filename="main_window.ui" line="260"/>
|
||||
<source>&Log Searches</source>
|
||||
<oldsource>Log Searches</oldsource>
|
||||
<translation>&Вносить информацию о поиске в журнал сообщений</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="264"/>
|
||||
<location filename="main_window.ui" line="268"/>
|
||||
<source>&Timestamps in Message Log</source>
|
||||
<oldsource>Timestamps in Message Log</oldsource>
|
||||
<translation>&Метки времени в журнале сообщений</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="272"/>
|
||||
<location filename="main_window.ui" line="276"/>
|
||||
<source>&Show Non-Container Objects in Console Tree</source>
|
||||
<oldsource>Show Non-Container Objects in Console Tree</oldsource>
|
||||
<translation>П&оказывать неконтейнерные объекты в дереве консоли</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="296"/>
|
||||
<location filename="main_window.ui" line="300"/>
|
||||
<source>Navigate Back (Alt + -)</source>
|
||||
<translation>Назад (Alt + -)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="311"/>
|
||||
<location filename="main_window.ui" line="315"/>
|
||||
<source>Navigate Forward (Alt + =)</source>
|
||||
<translation>Вперед (Alt + =)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="326"/>
|
||||
<location filename="main_window.ui" line="330"/>
|
||||
<source>Refresh (Alt + 9)</source>
|
||||
<translation>Обновить (Alt + 9)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="329"/>
|
||||
<location filename="main_window.ui" line="333"/>
|
||||
<source>Alt+9</source>
|
||||
<translation>Alt+9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="337"/>
|
||||
<location filename="main_window.ui" line="341"/>
|
||||
<source>Show Login</source>
|
||||
<translation>Показывать логин</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="342"/>
|
||||
<location filename="main_window.ui" line="346"/>
|
||||
<source>&Operations Masters</source>
|
||||
<oldsource>Operations Masters</oldsource>
|
||||
<translation>&Мастера Операций</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="281"/>
|
||||
<location filename="main_window.ui" line="355"/>
|
||||
<source>Create user</source>
|
||||
<translation>Создать пользователя</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="358"/>
|
||||
<source>Create user (Alt + 7)</source>
|
||||
<translation>Создать пользователя (Alt + 7)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="361"/>
|
||||
<source>Alt+7</source>
|
||||
<translation>Alt+7</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="370"/>
|
||||
<source>Create group</source>
|
||||
<translation>Создать группу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="373"/>
|
||||
<source>Create group (Alt + 6)</source>
|
||||
<translation>Создать группу (Alt + 6)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="376"/>
|
||||
<source>Alt+6</source>
|
||||
<translation>Alt+6</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="385"/>
|
||||
<source>Create organization unit</source>
|
||||
<translation>Создать подразделение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="388"/>
|
||||
<source>Create organization unit (Alt + 5)</source>
|
||||
<translation>Создать подразделение (Alt + 5)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="391"/>
|
||||
<source>Alt+5</source>
|
||||
<translation>Alt+5</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="285"/>
|
||||
<source>Navigate Up</source>
|
||||
<translation>Наверх</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="284"/>
|
||||
<location filename="main_window.ui" line="288"/>
|
||||
<source>Alt+0</source>
|
||||
<translation>Alt+0</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="293"/>
|
||||
<location filename="main_window.ui" line="297"/>
|
||||
<source>Navigate Back</source>
|
||||
<translation>Назад</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="299"/>
|
||||
<location filename="main_window.ui" line="303"/>
|
||||
<source>Alt+-</source>
|
||||
<translation>Alt+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="308"/>
|
||||
<location filename="main_window.ui" line="312"/>
|
||||
<source>Navigate Forward</source>
|
||||
<translation>Вперед</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="314"/>
|
||||
<location filename="main_window.ui" line="318"/>
|
||||
<source>Alt+=</source>
|
||||
<translation>Alt+=</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.ui" line="323"/>
|
||||
<location filename="main_window.ui" line="327"/>
|
||||
<source>Refresh</source>
|
||||
<translation>Обновить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.cpp" line="206"/>
|
||||
<location filename="main_window.cpp" line="215"/>
|
||||
<source>Info</source>
|
||||
<translation>Информация</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="main_window.cpp" line="206"/>
|
||||
<location filename="main_window.cpp" line="215"/>
|
||||
<source>Restart the app to switch to the selected language.</source>
|
||||
<translation>Для переключения на выбранный язык необходимо перезапустить приложение.</translation>
|
||||
</message>
|
||||
@ -2028,115 +2024,115 @@
|
||||
<context>
|
||||
<name>ObjectImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="86"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="91"/>
|
||||
<source>User</source>
|
||||
<oldsource>&User</oldsource>
|
||||
<translation>Пользователь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="87"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="92"/>
|
||||
<source>Computer</source>
|
||||
<oldsource>&Computer</oldsource>
|
||||
<translation>Компьютер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="88"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="93"/>
|
||||
<source>OU</source>
|
||||
<oldsource>&OU</oldsource>
|
||||
<translation>Подразделение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="89"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="94"/>
|
||||
<source>Group</source>
|
||||
<translation>Группа</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="90"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="95"/>
|
||||
<source>Shared Folder</source>
|
||||
<translation>Общая папка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="91"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="96"/>
|
||||
<source>inetOrgPerson</source>
|
||||
<translation>inetOrgPerson</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="92"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="97"/>
|
||||
<source>Contact</source>
|
||||
<translation>Контакт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="93"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="98"/>
|
||||
<source>Find...</source>
|
||||
<translation>Найти...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="94"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="99"/>
|
||||
<source>Move...</source>
|
||||
<translation>Переместить...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="95"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="100"/>
|
||||
<source>Add to group...</source>
|
||||
<translation>Добавить в группу...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="96"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="101"/>
|
||||
<source>Enable</source>
|
||||
<translation>Включить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="97"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="102"/>
|
||||
<source>Disable</source>
|
||||
<translation>Отключить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="98"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="103"/>
|
||||
<source>Reset password</source>
|
||||
<translation>Сбросить пароль</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="99"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="104"/>
|
||||
<source>Reset account</source>
|
||||
<translation>Сбросить учётную запись</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="100"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="105"/>
|
||||
<source>Edit UPN suffixes</source>
|
||||
<translation>Изменить суффиксы UPN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="102"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="107"/>
|
||||
<source>New</source>
|
||||
<translation>Создать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="266"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="296"/>
|
||||
<source> [Filtering enabled]</source>
|
||||
<translation> [Фильтр включён]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="586"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="654"/>
|
||||
<source>Are you sure you want to delete this object?</source>
|
||||
<translation>Удалить этот объект?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="778"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="867"/>
|
||||
<source>Add to Group</source>
|
||||
<translation>Добавить в группу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="846"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="935"/>
|
||||
<source>Edit UPN Suffixes</source>
|
||||
<translation>Изменить суффиксы UPN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="876"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="955"/>
|
||||
<source>Are you sure you want to reset this account?</source>
|
||||
<translation>Вы точно хотиту сбросить эту учетную запись?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/object_impl.cpp" line="1219"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="1266"/>
|
||||
<source>Query may be out of date</source>
|
||||
<translation>Запрос может быть устаревшим</translation>
|
||||
</message>
|
||||
@ -2276,7 +2272,7 @@
|
||||
<message>
|
||||
<location filename="tabs/organization_tab.ui" line="60"/>
|
||||
<source>Reports:</source>
|
||||
<translation>Прямые подчинненые:</translation>
|
||||
<translation>Прямые подчиненные:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2359,26 +2355,102 @@
|
||||
<context>
|
||||
<name>PolicyImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="48"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="44"/>
|
||||
<source>Add link...</source>
|
||||
<translation>Добавить связь...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="49"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="45"/>
|
||||
<source>Edit...</source>
|
||||
<translation>Изменить...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="182"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="165"/>
|
||||
<source>Are you sure you want to unlink this policy from the OU? Note that the actual policy object won't be deleted.</source>
|
||||
<translation>Удалить связь между политикой и подразделением? Обратите внимание, что сама политика не будет удалена.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_impl.cpp" line="167"/>
|
||||
<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="285"/>
|
||||
<location filename="console_impls/policy_impl.cpp" line="310"/>
|
||||
<source>Add Link</source>
|
||||
<translation>Добавление связи</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicyOUImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="52"/>
|
||||
<source>Create OU</source>
|
||||
<translation>Создать подразделение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="53"/>
|
||||
<source>Create a GPO and link to this OU</source>
|
||||
<translation>Создать политику и связать с этим подразделением</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="54"/>
|
||||
<source>Link existing GPO</source>
|
||||
<translation>Связать существующую политику</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="98"/>
|
||||
<source>All policies</source>
|
||||
<translation>Все политики</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_ou_impl.cpp" line="216"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicyOUResultsWidget</name>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="78"/>
|
||||
<source>Remove link</source>
|
||||
<translation>Удалить связь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="79"/>
|
||||
<source>Move up</source>
|
||||
<translation>Переместить вверх</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="80"/>
|
||||
<source>Move down</source>
|
||||
<translation>Переместить вниз</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="90"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="91"/>
|
||||
<source>Enforced</source>
|
||||
<translation>Принудительно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="92"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Отключено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="337"/>
|
||||
<source>Not found</source>
|
||||
<translation>Не найдено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="policy_ou_results_widget.cpp" line="368"/>
|
||||
<source>The GPO for this link could not be found. It maybe have been recently created and is being replicated or it could have been deleted.</source>
|
||||
<translation>Не удалось найти объект групповой политики для этой связи. Возможно, он был недавно создан и реплицируется или был удалён.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PolicyResultsWidget</name>
|
||||
<message>
|
||||
@ -2420,12 +2492,7 @@
|
||||
<context>
|
||||
<name>PolicyRootImpl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="49"/>
|
||||
<source>Create policy</source>
|
||||
<translation>Создать политику</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="113"/>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="78"/>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
@ -2470,93 +2537,88 @@
|
||||
<name>PropertiesDialog</name>
|
||||
<message>
|
||||
<location filename="properties_dialog.ui" line="14"/>
|
||||
<location filename="properties_dialog.cpp" line="138"/>
|
||||
<location filename="properties_dialog.cpp" line="137"/>
|
||||
<source>Properties</source>
|
||||
<translation>Свойства</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="136"/>
|
||||
<location filename="properties_dialog.cpp" line="135"/>
|
||||
<source>%1 Properties</source>
|
||||
<oldsource>"%1" Properties</oldsource>
|
||||
<translation>%1 — свойства</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="170"/>
|
||||
<location filename="properties_dialog.cpp" line="169"/>
|
||||
<source>General</source>
|
||||
<translation>Общее</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="178"/>
|
||||
<location filename="properties_dialog.cpp" line="177"/>
|
||||
<source>Object</source>
|
||||
<translation>Объект</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="179"/>
|
||||
<location filename="properties_dialog.cpp" line="178"/>
|
||||
<source>Attributes</source>
|
||||
<translation>Атрибуты</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="197"/>
|
||||
<location filename="properties_dialog.cpp" line="196"/>
|
||||
<source>Account</source>
|
||||
<translation>Учётная запись</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="190"/>
|
||||
<location filename="properties_dialog.cpp" line="189"/>
|
||||
<source>Organization</source>
|
||||
<translation>Организация</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="191"/>
|
||||
<location filename="properties_dialog.cpp" line="190"/>
|
||||
<source>Telephones</source>
|
||||
<translation>Телефоны</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="202"/>
|
||||
<location filename="properties_dialog.cpp" line="201"/>
|
||||
<source>Profile</source>
|
||||
<translation>Профиль</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="245"/>
|
||||
<location filename="properties_dialog.cpp" line="239"/>
|
||||
<source>LAPS</source>
|
||||
<translation>LAPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="252"/>
|
||||
<location filename="properties_dialog.cpp" line="246"/>
|
||||
<source>Security</source>
|
||||
<translation>Безопасность</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="208"/>
|
||||
<location filename="properties_dialog.cpp" line="207"/>
|
||||
<source>Members</source>
|
||||
<translation>Участники</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="213"/>
|
||||
<location filename="properties_dialog.cpp" line="212"/>
|
||||
<source>Member of</source>
|
||||
<translation>Группы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="223"/>
|
||||
<location filename="properties_dialog.cpp" line="222"/>
|
||||
<source>Managed by</source>
|
||||
<translation>Руководство</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="228"/>
|
||||
<source>Group policy</source>
|
||||
<translation>Групповая политика</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="234"/>
|
||||
<source>Operating System</source>
|
||||
<translation>Операционная система</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="218"/>
|
||||
<location filename="properties_dialog.cpp" line="217"/>
|
||||
<source>Delegation</source>
|
||||
<translation>Делегирование</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="properties_dialog.cpp" line="189"/>
|
||||
<location filename="properties_dialog.cpp" line="188"/>
|
||||
<source>Address</source>
|
||||
<translation>Адрес</translation>
|
||||
</message>
|
||||
@ -2616,7 +2678,7 @@
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="utils.cpp" line="109"/>
|
||||
<location filename="utils.cpp" line="111"/>
|
||||
<source>Confirm action</source>
|
||||
<translation>Подтверждение действия</translation>
|
||||
</message>
|
||||
@ -3132,7 +3194,7 @@
|
||||
<context>
|
||||
<name>object_impl</name>
|
||||
<message numerus="yes">
|
||||
<location filename="console_impls/object_impl.cpp" line="1617"/>
|
||||
<location filename="console_impls/object_impl.cpp" line="1724"/>
|
||||
<source>%n object(s)</source>
|
||||
<translation>
|
||||
<numerusform>%n объект</numerusform>
|
||||
@ -3157,7 +3219,7 @@
|
||||
<context>
|
||||
<name>policy_root_impl</name>
|
||||
<message>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="175"/>
|
||||
<location filename="console_impls/policy_root_impl.cpp" line="88"/>
|
||||
<source>Group Policy Objects</source>
|
||||
<translation>Объекты групповой политики</translation>
|
||||
</message>
|
||||
@ -3244,12 +3306,12 @@
|
||||
<context>
|
||||
<name>utils.cpp</name>
|
||||
<message>
|
||||
<location filename="utils.cpp" line="402"/>
|
||||
<location filename="utils.cpp" line="436"/>
|
||||
<source>Input field for Name contains one or more of the following illegal characters: # , + " \ < > ; = (leading space) (trailing space) (leading question mark)</source>
|
||||
<translation>Поле ввода "Имя" содержит один или несколько из следующих недопустимых символов: # , + " \ < > ; = (пробел в начале) (пробел в конце) (? в начале)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="utils.cpp" line="403"/>
|
||||
<location filename="utils.cpp" line="437"/>
|
||||
<source>Error</source>
|
||||
<translation>Ошибка</translation>
|
||||
</message>
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -26,6 +26,7 @@
|
||||
#include "attribute_dialogs/datetime_attribute_dialog.h"
|
||||
#include "attribute_dialogs/octet_attribute_dialog.h"
|
||||
#include "attribute_dialogs/string_attribute_dialog.h"
|
||||
#include "attribute_dialogs/number_attribute_dialog.h"
|
||||
#include "globals.h"
|
||||
#include "utils.h"
|
||||
#include "settings.h"
|
||||
@ -102,10 +103,13 @@ void ListAttributeDialog::on_add_button() {
|
||||
if (is_bool) {
|
||||
return new BoolAttributeDialog(value_list, attribute, read_only, this);
|
||||
} else {
|
||||
auto string_dialog = new StringAttributeDialog(value_list, attribute, read_only, this);
|
||||
string_dialog->set_max_length(max_length);
|
||||
const bool attribute_is_number = g_adconfig->get_attribute_is_number(attribute);
|
||||
|
||||
return string_dialog;
|
||||
if (attribute_is_number) {
|
||||
return new NumberAttributeDialog(value_list, attribute, read_only, this);
|
||||
} else {
|
||||
return new StringAttributeDialog(value_list, attribute, read_only, this);
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
64
src/admc/attribute_dialogs/number_attribute_dialog.cpp
Normal file
64
src/admc/attribute_dialogs/number_attribute_dialog.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "attribute_dialogs/number_attribute_dialog.h"
|
||||
#include "attribute_dialogs/ui_number_attribute_dialog.h"
|
||||
|
||||
#include "adldap.h"
|
||||
#include "globals.h"
|
||||
#include "utils.h"
|
||||
#include "settings.h"
|
||||
|
||||
NumberAttributeDialog::NumberAttributeDialog(const QList<QByteArray> &value_list, const QString &attribute, const bool read_only, QWidget *parent)
|
||||
: AttributeDialog(attribute, read_only, parent) {
|
||||
ui = new Ui::NumberAttributeDialog();
|
||||
ui->setupUi(this);
|
||||
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
AttributeDialog::load_attribute_label(ui->attribute_label);
|
||||
|
||||
set_line_edit_to_numbers_only(ui->edit);
|
||||
|
||||
limit_edit(ui->edit, attribute);
|
||||
|
||||
ui->edit->setReadOnly(read_only);
|
||||
|
||||
const QByteArray value = value_list.value(0, QByteArray());
|
||||
const QString value_string = QString(value);
|
||||
ui->edit->setText(value_string);
|
||||
|
||||
settings_setup_dialog_geometry(SETTING_number_attribute_dialog_geometry, this);
|
||||
}
|
||||
|
||||
NumberAttributeDialog::~NumberAttributeDialog() {
|
||||
delete ui;
|
||||
}
|
||||
|
||||
QList<QByteArray> NumberAttributeDialog::get_value_list() const {
|
||||
const QString new_value_string = ui->edit->text();
|
||||
|
||||
if (new_value_string.isEmpty()) {
|
||||
return {};
|
||||
} else {
|
||||
const QByteArray new_value = new_value_string.toUtf8();
|
||||
return {new_value};
|
||||
}
|
||||
}
|
42
src/admc/attribute_dialogs/number_attribute_dialog.h
Normal file
42
src/admc/attribute_dialogs/number_attribute_dialog.h
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef NUMBER_ATTRIBUTE_DIALOG_H
|
||||
#define NUMBER_ATTRIBUTE_DIALOG_H
|
||||
|
||||
#include "attribute_dialogs/attribute_dialog.h"
|
||||
|
||||
namespace Ui {
|
||||
class NumberAttributeDialog;
|
||||
}
|
||||
|
||||
class NumberAttributeDialog final : public AttributeDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Ui::NumberAttributeDialog *ui;
|
||||
|
||||
NumberAttributeDialog(const QList<QByteArray> &value_list, const QString &attribute, const bool read_only, QWidget *parent);
|
||||
~NumberAttributeDialog();
|
||||
|
||||
QList<QByteArray> get_value_list() const override;
|
||||
};
|
||||
|
||||
#endif /* NUMBER_ATTRIBUTE_DIALOG_H */
|
74
src/admc/attribute_dialogs/number_attribute_dialog.ui
Normal file
74
src/admc/attribute_dialogs/number_attribute_dialog.ui
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>NumberAttributeDialog</class>
|
||||
<widget class="QDialog" name="NumberAttributeDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>117</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string notr="true">PLACEHOLDER</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="attribute_label">
|
||||
<property name="text">
|
||||
<string notr="true">Attribute: name (PLACEHOLDER)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="edit"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="button_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>button_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>NumberAttributeDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>button_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>NumberAttributeDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -35,17 +35,13 @@ StringAttributeDialog::StringAttributeDialog(const QList<QByteArray> &value_list
|
||||
|
||||
AttributeDialog::load_attribute_label(ui->attribute_label);
|
||||
|
||||
if (g_adconfig->get_attribute_is_number(attribute)) {
|
||||
set_line_edit_to_numbers_only(ui->edit);
|
||||
}
|
||||
|
||||
limit_edit(ui->edit, attribute);
|
||||
limit_plain_text_edit(ui->edit, attribute);
|
||||
|
||||
ui->edit->setReadOnly(read_only);
|
||||
|
||||
const QByteArray value = value_list.value(0, QByteArray());
|
||||
const QString value_string = QString(value);
|
||||
ui->edit->setText(value_string);
|
||||
ui->edit->setPlainText(value_string);
|
||||
|
||||
settings_setup_dialog_geometry(SETTING_string_attribute_dialog_geometry, this);
|
||||
}
|
||||
@ -55,7 +51,7 @@ StringAttributeDialog::~StringAttributeDialog() {
|
||||
}
|
||||
|
||||
QList<QByteArray> StringAttributeDialog::get_value_list() const {
|
||||
const QString new_value_string = ui->edit->text();
|
||||
const QString new_value_string = ui->edit->toPlainText();
|
||||
|
||||
if (new_value_string.isEmpty()) {
|
||||
return {};
|
||||
@ -64,9 +60,3 @@ QList<QByteArray> StringAttributeDialog::get_value_list() const {
|
||||
return {new_value};
|
||||
}
|
||||
}
|
||||
|
||||
void StringAttributeDialog::set_max_length(const int max_length) {
|
||||
if (max_length > 0) {
|
||||
ui->edit->setMaxLength(max_length);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -37,11 +37,6 @@ public:
|
||||
~StringAttributeDialog();
|
||||
|
||||
QList<QByteArray> get_value_list() const override;
|
||||
|
||||
// NOTE: by default, most (not all) attributes have
|
||||
// a pre-defined max length that is obtained from
|
||||
// schema. Calling this f-n overrides it.
|
||||
void set_max_length(const int max_length);
|
||||
};
|
||||
|
||||
#endif /* STRING_ATTRIBUTE_DIALOG_H */
|
||||
|
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>117</height>
|
||||
<height>152</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -22,7 +22,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="edit"/>
|
||||
<widget class="QPlainTextEdit" name="edit"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="button_box">
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
46
src/admc/attribute_edits/dn_edit.cpp
Normal file
46
src/admc/attribute_edits/dn_edit.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "attribute_edits/dn_edit.h"
|
||||
|
||||
#include "adldap.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <QLineEdit>
|
||||
|
||||
DNEdit::DNEdit(QLineEdit *edit_arg, QObject *parent)
|
||||
: AttributeEdit(parent) {
|
||||
edit = edit_arg;
|
||||
|
||||
limit_edit(edit, ATTRIBUTE_DN);
|
||||
|
||||
connect(
|
||||
edit, &QLineEdit::textChanged,
|
||||
this, &AttributeEdit::edited);
|
||||
}
|
||||
|
||||
void DNEdit::load(AdInterface &ad, const AdObject &object) {
|
||||
UNUSED_ARG(ad);
|
||||
|
||||
const QString dn = object.get_dn();
|
||||
const QString dn_as_canonical = dn_canonical(dn);
|
||||
|
||||
edit->setText(dn_as_canonical);
|
||||
}
|
39
src/admc/attribute_edits/dn_edit.h
Normal file
39
src/admc/attribute_edits/dn_edit.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef DN_EDIT_H
|
||||
#define DN_EDIT_H
|
||||
|
||||
#include "attribute_edits/attribute_edit.h"
|
||||
|
||||
class QLineEdit;
|
||||
|
||||
class DNEdit final : public AttributeEdit {
|
||||
Q_OBJECT
|
||||
public:
|
||||
DNEdit(QLineEdit *edit_arg, QObject *parent);
|
||||
|
||||
void load(AdInterface &ad, const AdObject &object) override;
|
||||
|
||||
private:
|
||||
QLineEdit *edit;
|
||||
};
|
||||
|
||||
#endif /* DN_EDIT_H */
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* ADMC - AD Management Center
|
||||
*
|
||||
* Copyright (C) 2020-2021 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2021 Dmitry Degtyarev
|
||||
* Copyright (C) 2020-2022 BaseALT Ltd.
|
||||
* Copyright (C) 2020-2022 Dmitry Degtyarev
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user