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 #endif
if (enabled) {
setLogEnableDate(QDateTime::currentDateTime());
}
emit saveLogsChanged(enabled); 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 QString Settings::routeModeString(RouteMode mode) const
{ {
switch (mode) { switch (mode) {

View file

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

View file

@ -27,6 +27,7 @@ SettingsController::SettingsController(const QSharedPointer<ServersModel> &serve
m_settings(settings) m_settings(settings)
{ {
m_appVersion = QString("%1 (%2, %3)").arg(QString(APP_VERSION), __DATE__, GIT_COMMIT_HASH); m_appVersion = QString("%1 (%2, %3)").arg(QString(APP_VERSION), __DATE__, GIT_COMMIT_HASH);
checkIfNeedDisableLogs();
} }
void SettingsController::toggleAmneziaDns(bool enable) void SettingsController::toggleAmneziaDns(bool enable)
@ -73,6 +74,9 @@ void SettingsController::toggleLogging(bool enable)
#ifdef Q_OS_IOS #ifdef Q_OS_IOS
AmneziaVPN::toggleLogging(enable); AmneziaVPN::toggleLogging(enable);
#endif #endif
if (enable == true) {
checkIfNeedDisableLogs();
}
emit loggingStateChanged(); emit loggingStateChanged();
} }
@ -205,3 +209,13 @@ bool SettingsController::isCameraPresent()
return false; return false;
#endif #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 amneziaDnsToggled(bool enable);
void loggingDisableByWatcher();
private: private:
QSharedPointer<ServersModel> m_serversModel; QSharedPointer<ServersModel> m_serversModel;
QSharedPointer<ContainersModel> m_containersModel; QSharedPointer<ContainersModel> m_containersModel;
@ -85,6 +87,10 @@ private:
std::shared_ptr<Settings> m_settings; std::shared_ptr<Settings> m_settings;
QString m_appVersion; QString m_appVersion;
QDateTime m_loggingDisableDate;
void checkIfNeedDisableLogs();
}; };
#endif // SETTINGSCONTROLLER_H #endif // SETTINGSCONTROLLER_H

View file

@ -33,6 +33,33 @@ PageType {
anchors.fill: parent anchors.fill: parent
anchors.bottomMargin: drawer.collapsedHeight 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 { ConnectButton {
id: connectButton id: connectButton
anchors.centerIn: parent anchors.centerIn: parent
@ -69,11 +96,11 @@ PageType {
HomeSplitTunnelingDrawer { HomeSplitTunnelingDrawer {
id: homeSplitTunnelingDrawer id: homeSplitTunnelingDrawer
parent: root parent: root
} }
} }
} }
}
DrawerType2 { DrawerType2 {

View file

@ -15,6 +15,18 @@ import "../Controls2/TextTypes"
PageType { PageType {
id: root 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 { BackButtonType {
id: backButton 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 { StackViewType {
id: tabBarStackView id: tabBarStackView

View file

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