2022-03-03 17:38:30 +00:00
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
2021-05-25 21:53:54 +00:00
|
|
|
import 'package:equatable/equatable.dart';
|
2021-06-08 18:52:44 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2021-08-18 10:44:46 +00:00
|
|
|
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
2021-08-18 09:36:40 +00:00
|
|
|
import 'package:selfprivacy/utils/password_generator.dart';
|
2021-05-25 21:53:54 +00:00
|
|
|
|
2022-06-05 19:36:32 +00:00
|
|
|
import 'package:selfprivacy/logic/models/hive/user.dart';
|
2021-06-08 18:52:44 +00:00
|
|
|
|
|
|
|
@immutable
|
2022-08-24 05:35:49 +00:00
|
|
|
class ClientJob extends Equatable {
|
|
|
|
ClientJob({
|
2021-05-25 21:53:54 +00:00
|
|
|
required this.title,
|
2022-06-05 19:36:32 +00:00
|
|
|
final String? id,
|
2021-08-18 09:36:40 +00:00
|
|
|
}) : id = id ?? StringGenerators.simpleId();
|
2021-05-25 21:53:54 +00:00
|
|
|
|
|
|
|
final String title;
|
|
|
|
final String id;
|
|
|
|
|
|
|
|
@override
|
|
|
|
List<Object> get props => [id, title];
|
|
|
|
}
|
2021-06-08 18:52:44 +00:00
|
|
|
|
2022-09-18 23:42:21 +00:00
|
|
|
class RebuildServerJob extends ClientJob {
|
|
|
|
RebuildServerJob({
|
|
|
|
required final super.title,
|
|
|
|
final super.id,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-08-24 05:35:49 +00:00
|
|
|
class CreateUserJob extends ClientJob {
|
2021-06-08 18:52:44 +00:00
|
|
|
CreateUserJob({
|
|
|
|
required this.user,
|
2021-08-18 10:44:46 +00:00
|
|
|
}) : super(title: '${"jobs.createUser".tr()} ${user.login}');
|
2021-06-08 18:52:44 +00:00
|
|
|
|
|
|
|
final User user;
|
|
|
|
|
|
|
|
@override
|
2021-08-29 15:02:51 +00:00
|
|
|
List<Object> get props => [id, title, user];
|
2021-06-08 18:52:44 +00:00
|
|
|
}
|
2021-08-18 10:44:46 +00:00
|
|
|
|
2022-09-18 20:25:26 +00:00
|
|
|
class ResetUserPasswordJob extends ClientJob {
|
|
|
|
ResetUserPasswordJob({
|
|
|
|
required this.user,
|
|
|
|
}) : super(title: '${"jobs.resetUserPassword".tr()} ${user.login}');
|
|
|
|
|
|
|
|
final User user;
|
|
|
|
|
|
|
|
@override
|
|
|
|
List<Object> get props => [id, title, user];
|
|
|
|
}
|
|
|
|
|
2022-08-24 05:35:49 +00:00
|
|
|
class DeleteUserJob extends ClientJob {
|
2021-12-20 15:25:31 +00:00
|
|
|
DeleteUserJob({
|
|
|
|
required this.user,
|
|
|
|
}) : super(title: '${"jobs.deleteUser".tr()} ${user.login}');
|
|
|
|
|
|
|
|
final User user;
|
|
|
|
|
|
|
|
@override
|
|
|
|
List<Object> get props => [id, title, user];
|
|
|
|
}
|
|
|
|
|
2022-08-24 05:35:49 +00:00
|
|
|
class ToggleJob extends ClientJob {
|
2022-01-25 17:00:47 +00:00
|
|
|
ToggleJob({
|
2021-08-18 10:44:46 +00:00
|
|
|
required this.type,
|
2022-06-05 19:36:32 +00:00
|
|
|
required final super.title,
|
|
|
|
});
|
2022-01-25 17:00:47 +00:00
|
|
|
|
2022-08-29 20:35:06 +00:00
|
|
|
final ServiceTypes type;
|
2022-01-25 17:00:47 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
List<Object> get props => [...super.props, type];
|
|
|
|
}
|
|
|
|
|
|
|
|
class ServiceToggleJob extends ToggleJob {
|
|
|
|
ServiceToggleJob({
|
2022-08-29 20:35:06 +00:00
|
|
|
required final super.type,
|
2021-08-18 10:44:46 +00:00
|
|
|
required this.needToTurnOn,
|
2021-08-29 15:02:51 +00:00
|
|
|
}) : super(
|
2022-01-25 17:00:47 +00:00
|
|
|
title:
|
|
|
|
'${needToTurnOn ? "jobs.serviceTurnOn".tr() : "jobs.serviceTurnOff".tr()} ${type.title}',
|
|
|
|
);
|
2021-08-18 10:44:46 +00:00
|
|
|
|
|
|
|
final bool needToTurnOn;
|
|
|
|
}
|
2021-09-02 19:32:07 +00:00
|
|
|
|
2022-08-24 05:35:49 +00:00
|
|
|
class CreateSSHKeyJob extends ClientJob {
|
2022-03-03 17:38:30 +00:00
|
|
|
CreateSSHKeyJob({
|
|
|
|
required this.user,
|
|
|
|
required this.publicKey,
|
2022-05-24 18:55:39 +00:00
|
|
|
}) : super(title: 'jobs.create_ssh_key'.tr(args: [user.login]));
|
2022-03-03 17:38:30 +00:00
|
|
|
|
|
|
|
final User user;
|
|
|
|
final String publicKey;
|
2021-09-02 19:32:07 +00:00
|
|
|
|
|
|
|
@override
|
2022-03-03 17:38:30 +00:00
|
|
|
List<Object> get props => [id, title, user, publicKey];
|
|
|
|
}
|
|
|
|
|
2022-08-24 05:35:49 +00:00
|
|
|
class DeleteSSHKeyJob extends ClientJob {
|
2022-03-03 17:38:30 +00:00
|
|
|
DeleteSSHKeyJob({
|
|
|
|
required this.user,
|
|
|
|
required this.publicKey,
|
2022-05-24 18:55:39 +00:00
|
|
|
}) : super(title: 'jobs.delete_ssh_key'.tr(args: [user.login]));
|
2022-03-03 17:38:30 +00:00
|
|
|
|
|
|
|
final User user;
|
|
|
|
final String publicKey;
|
|
|
|
|
|
|
|
@override
|
|
|
|
List<Object> get props => [id, title, user, publicKey];
|
2021-09-02 19:32:07 +00:00
|
|
|
}
|