улучшает логи и добавляет метод для удаления пользователя
This commit is contained in:
parent
ff9e5827b7
commit
c8bb88a734
@ -117,6 +117,22 @@ namespace AwesomeEmailExtractor
|
||||
command.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
public void deleteUser(string login)
|
||||
{
|
||||
if (User.Role != UserRoles.ADMIN)
|
||||
{
|
||||
throw new Exception("Недостаточно прав!");
|
||||
}
|
||||
|
||||
SqliteCommand command = new SqliteCommand();
|
||||
command.Connection = Globals.db;
|
||||
command.CommandText = "DELETE FROM users WHERE login = @login";
|
||||
|
||||
SqliteParameter loginParam = new SqliteParameter("@login", login);
|
||||
command.Parameters.Add(loginParam);
|
||||
|
||||
command.ExecuteNonQuery();
|
||||
}
|
||||
public List<User> getAllUsers()
|
||||
{
|
||||
if (User.Role != UserRoles.ADMIN)
|
||||
|
@ -22,6 +22,7 @@ namespace AwesomeEmailExtractor
|
||||
try
|
||||
{
|
||||
Globals.currentUser = Authorization.Login(entryLogin.Text, entryPassword.Text);
|
||||
Logs.Log(Globals.currentUser, Logs.Action.Login, new Dictionary<string, object>());
|
||||
|
||||
var mainForm = FormManager.Current.CreateForm<MainForm>();
|
||||
FormManager.Current.Navigate(this, mainForm);
|
||||
|
@ -66,7 +66,7 @@ namespace AwesomeEmailExtractor
|
||||
command.CommandText = "CREATE TABLE IF NOT EXISTS logs_actions (id INTEGER PRIMARY KEY, name TEXT NOT NULL)";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "INSERT OR IGNORE INTO logs_actions (id, name) VALUES (0, 'Выполнение');";
|
||||
command.CommandText = "INSERT OR IGNORE INTO logs_actions (id, name) VALUES (0, 'Выполнение'), (1, 'Вход'), (2, 'Регистрация');";
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "CREATE TABLE IF NOT EXISTS logs (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER NOT NULL, date TEXT NOT NULL, action INTEGER NOT NULL, message TEXT NOT NULL, FOREIGN KEY(action) REFERENCES logs_actions(id));";
|
||||
|
22
Logs.cs
22
Logs.cs
@ -19,6 +19,8 @@ namespace AwesomeEmailExtractor
|
||||
public enum Action
|
||||
{
|
||||
Execute,
|
||||
Login,
|
||||
Registration
|
||||
}
|
||||
|
||||
public static void Log(User user, Action action, Dictionary<string, object> options)
|
||||
@ -68,7 +70,15 @@ namespace AwesomeEmailExtractor
|
||||
command.Parameters.AddWithValue("@dbpath", Globals.getAppDatabase());
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
command.CommandText = "SELECT user_id, appDB.users.login, appDB.users.id as role_id, date, action, message FROM logs LEFT JOIN appDB.users ON logs.user_id = appDB.users.id ORDER BY date DESC ";
|
||||
command.CommandText = @"
|
||||
SELECT
|
||||
user_id,
|
||||
CASE WHEN appDB.users.login is NULL THEN 'Deleted_' || user_id ELSE appDB.users.login END AS login
|
||||
appDB.users.role,
|
||||
date,
|
||||
action,
|
||||
message
|
||||
from logs LEFT JOIN appDB.users on logs.user_id = appDB.users.id ORDER BY date DESC";
|
||||
|
||||
SqliteDataReader reader = command.ExecuteReader();
|
||||
|
||||
@ -100,10 +110,16 @@ namespace AwesomeEmailExtractor
|
||||
$"Найдено {count} email-ов.\n" +
|
||||
$"Список уникальных: {String.Join(", ", uniqueEmails)}.";
|
||||
}
|
||||
else
|
||||
if (action == Action.Login)
|
||||
{
|
||||
return "";
|
||||
return "Пользователь вошел в систему.";
|
||||
}
|
||||
if (action == Action.Registration)
|
||||
{
|
||||
return "Пользователь зарегистрировался в системе.";
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ namespace AwesomeEmailExtractor
|
||||
uniqueListBox.DataSource = uniqueEmails;
|
||||
|
||||
Logs.Log(
|
||||
new User(1, "", UserRoles.ADMIN),
|
||||
Globals.currentUser,
|
||||
Logs.Action.Execute,
|
||||
new Dictionary<string, object>() {
|
||||
{ "sourceText", sourceText },
|
||||
|
@ -28,6 +28,7 @@ namespace AwesomeEmailExtractor
|
||||
try
|
||||
{
|
||||
Globals.currentUser = Authorization.Register(entryLogin.Text, entryPassword.Text);
|
||||
Logs.Log(Globals.currentUser, Logs.Action.Registration, new Dictionary<string, object>());
|
||||
|
||||
var form = FormManager.Current.CreateForm<MainForm>();
|
||||
FormManager.Current.Navigate(this, form);
|
||||
|
Reference in New Issue
Block a user