Auto disable logs after 14 days (#610)

Auto disable logs after 14 days
This commit is contained in:
Nethius 2024-03-20 21:22:29 +07:00 committed by GitHub
parent 294778884b
commit 95bdae68f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 113 additions and 29 deletions

View file

@ -226,9 +226,22 @@ void Settings::setSaveLogs(bool enabled)
}
}
#endif
if (enabled) {
setLogEnableDate(QDateTime::currentDateTime());
}
emit saveLogsChanged(enabled);
}
QDateTime Settings::getLogEnableDate()
{
return value("Conf/logEnableDate").toDateTime();
}
void Settings::setLogEnableDate(QDateTime date)
{
setValue("Conf/logEnableDate", date);
}
QString Settings::routeModeString(RouteMode mode) const
{
switch (mode) {

View file

@ -100,6 +100,9 @@ public:
}
void setSaveLogs(bool enabled);
QDateTime getLogEnableDate();
void setLogEnableDate(QDateTime date);
enum RouteMode {
VpnAllSites,
VpnOnlyForwardSites,

View file

@ -27,6 +27,7 @@ SettingsController::SettingsController(const QSharedPointer<ServersModel> &serve
m_settings(settings)
{
m_appVersion = QString("%1 (%2, %3)").arg(QString(APP_VERSION), __DATE__, GIT_COMMIT_HASH);
checkIfNeedDisableLogs();
}
void SettingsController::toggleAmneziaDns(bool enable)
@ -73,6 +74,9 @@ void SettingsController::toggleLogging(bool enable)
#ifdef Q_OS_IOS
AmneziaVPN::toggleLogging(enable);
#endif
if (enable == true) {
checkIfNeedDisableLogs();
}
emit loggingStateChanged();
}
@ -205,3 +209,13 @@ bool SettingsController::isCameraPresent()
return false;
#endif
}
void SettingsController::checkIfNeedDisableLogs()
{
m_loggingDisableDate = m_settings->getLogEnableDate().addDays(14);
if (m_loggingDisableDate <= QDateTime::currentDateTime()) {
toggleLogging(false);
clearLogs();
emit loggingDisableByWatcher();
}
}

View file

@ -77,6 +77,8 @@ signals:
void amneziaDnsToggled(bool enable);
void loggingDisableByWatcher();
private:
QSharedPointer<ServersModel> m_serversModel;
QSharedPointer<ContainersModel> m_containersModel;
@ -85,6 +87,10 @@ private:
std::shared_ptr<Settings> m_settings;
QString m_appVersion;
QDateTime m_loggingDisableDate;
void checkIfNeedDisableLogs();
};
#endif // SETTINGSCONTROLLER_H

View file

@ -33,6 +33,33 @@ PageType {
anchors.fill: parent
anchors.bottomMargin: drawer.collapsedHeight
ColumnLayout {
anchors.fill: parent
anchors.topMargin: 34
anchors.bottomMargin: 34
BasicButtonType {
property bool isLoggingEnabled: SettingsController.isLoggingEnabled
Layout.alignment: Qt.AlignHCenter
implicitHeight: 36
defaultColor: "transparent"
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
pressedColor: Qt.rgba(1, 1, 1, 0.12)
disabledColor: "#878B91"
textColor: "#878B91"
borderWidth: 0
visible: isLoggingEnabled ? true : false
text: qsTr("Logging enabled")
onClicked: {
PageController.goToPage(PageEnum.PageSettingsLogging)
}
}
ConnectButton {
id: connectButton
anchors.centerIn: parent
@ -69,11 +96,11 @@ PageType {
HomeSplitTunnelingDrawer {
id: homeSplitTunnelingDrawer
parent: root
}
}
}
}
DrawerType2 {

View file

@ -15,6 +15,18 @@ import "../Controls2/TextTypes"
PageType {
id: root
Connections {
target: SettingsController
function onLoggingStateChanged() {
if (SettingsController.isLoggingEnabled) {
var message = qsTr("Logging is enabled. Note that logs will be automatically \
disabled after 14 days, and all log files will be deleted.")
PageController.showNotificationMessage(message)
}
}
}
BackButtonType {
id: backButton

View file

@ -129,6 +129,14 @@ PageType {
}
}
Connections {
target: SettingsController
function onLoggingDisableByWatcher() {
PageController.showNotificationMessage(qsTr("Logging was disabled after 14 days, log files were deleted"))
}
}
StackViewType {
id: tabBarStackView

View file

@ -95,6 +95,7 @@ Window {
Connections {
target: SettingsController
function onChangeSettingsFinished(finishedMessage) {
PageController.showNotificationMessage(finishedMessage)
}