diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/kotlin/Interface/AdminService.kt b/src/main/kotlin/Interface/AdminService.kt
new file mode 100644
index 0000000..5b27ee7
--- /dev/null
+++ b/src/main/kotlin/Interface/AdminService.kt
@@ -0,0 +1,8 @@
+package Interface
+
+import model.User
+
+interface AdminService {
+ fun removeUserById(userId: Int): Boolean
+ fun getAllUsers(): List
+}
diff --git a/src/main/kotlin/Interface/AuthorizeService.kt b/src/main/kotlin/Interface/AuthorizeService.kt
new file mode 100644
index 0000000..3a2ce89
--- /dev/null
+++ b/src/main/kotlin/Interface/AuthorizeService.kt
@@ -0,0 +1,9 @@
+package Interface
+
+import model.User
+
+/*
+Interface AuthorizeService {
+ fun registration(user: User):Boolean
+ fun
+}*/
diff --git a/src/main/kotlin/Interface/PasswordService.kt b/src/main/kotlin/Interface/PasswordService.kt
new file mode 100644
index 0000000..278242c
--- /dev/null
+++ b/src/main/kotlin/Interface/PasswordService.kt
@@ -0,0 +1,6 @@
+package Interface
+
+interface PasswordService{
+ fun hashPassword(password:String, salt:ByteArray):String
+ fun matches(password:String, salt:ByteArray, hashedPassword:String):Boolean
+}
\ No newline at end of file
diff --git a/src/main/kotlin/RepositoryImpl/AdminServiceImpl.kt b/src/main/kotlin/RepositoryImpl/AdminServiceImpl.kt
new file mode 100644
index 0000000..35367dc
--- /dev/null
+++ b/src/main/kotlin/RepositoryImpl/AdminServiceImpl.kt
@@ -0,0 +1,25 @@
+package RepositoryImpl
+
+import Interface.AdminService
+import model.User
+
+class AdminServiceImpl : AdminService {
+ private val users = mutableListOf()
+
+ override fun removeUserById(userId: Int): Boolean {
+ val user = users.find { it.userId == userId }
+ return if (user != null) {
+ users.remove(user)
+ true }
+ else
+ { false }
+ }
+
+ override fun getAllUsers(): List {
+ return users
+ }
+
+}
+
+
+
diff --git a/src/main/kotlin/RepositoryImpl/AuthorizeServiceImpl.kt b/src/main/kotlin/RepositoryImpl/AuthorizeServiceImpl.kt
new file mode 100644
index 0000000..47cb3cd
--- /dev/null
+++ b/src/main/kotlin/RepositoryImpl/AuthorizeServiceImpl.kt
@@ -0,0 +1,11 @@
+/*
+package RepositoryImpl
+
+import Interface.AuthorizeService
+import model.User
+
+class AuthorizeServiceImpl: AuthorizeService{
+ override fun registration(user: User): Boolean {
+ adminService.addUser(user
+ }
+}*/
diff --git a/src/main/kotlin/RepositoryImpl/PasswordServiceImpl.kt b/src/main/kotlin/RepositoryImpl/PasswordServiceImpl.kt
new file mode 100644
index 0000000..1552605
--- /dev/null
+++ b/src/main/kotlin/RepositoryImpl/PasswordServiceImpl.kt
@@ -0,0 +1,20 @@
+package RepositoryImpl
+
+import Interface.PasswordService
+import javax.crypto.SecretKeyFactory
+import javax.crypto.spec.PBEKeySpec
+
+class PasswordServiceImpl : PasswordService {
+ override fun hashPassword(password: String, salt: ByteArray): String {
+ val spec = PBEKeySpec(password.toCharArray(), salt, 10000, 256)
+ val factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1")
+ val hash = factory.generateSecret(spec).encoded
+ return salt.joinToString("") { "%02x".format(it) } + ":" + hash.joinToString("") { "%02x".format(it) }
+ }
+
+ override fun matches(password: String, salt: ByteArray, hashedPassword: String): Boolean {
+ val generatedHash = hashPassword(password, salt)
+ return generatedHash == hashedPassword
+ }
+}
+
diff --git a/src/main/kotlin/model/AdminUser.kt b/src/main/kotlin/model/AdminUser.kt
new file mode 100644
index 0000000..12fe212
--- /dev/null
+++ b/src/main/kotlin/model/AdminUser.kt
@@ -0,0 +1,14 @@
+package model
+
+import java.time.LocalDate
+
+class AdminUser(
+ userId: Int,
+ login: String,
+ password: String,
+ lastAuthorizeDate: LocalDate,
+ email: String,
+ phone: String
+) : User(userId, login, password, lastAuthorizeDate, email, phone) {
+ override val role: String = "администратор"
+}
diff --git a/src/main/kotlin/model/DefaultUser.kt b/src/main/kotlin/model/DefaultUser.kt
new file mode 100644
index 0000000..411174f
--- /dev/null
+++ b/src/main/kotlin/model/DefaultUser.kt
@@ -0,0 +1,14 @@
+package model
+
+import java.time.LocalDate
+
+class DefaultUser(
+ userId: Int,
+ login: String,
+ password: String,
+ lastAuthorizeDate: LocalDate,
+ email: String,
+ phone: String
+) : User(userId, login, password, lastAuthorizeDate, email, phone) {
+ override val role: String = "пользователь"
+}
\ No newline at end of file
diff --git a/src/main/kotlin/model/ManagerUser.kt b/src/main/kotlin/model/ManagerUser.kt
new file mode 100644
index 0000000..1e1f6fc
--- /dev/null
+++ b/src/main/kotlin/model/ManagerUser.kt
@@ -0,0 +1,14 @@
+package model
+
+import java.time.LocalDate
+
+class ManagerUser(
+ userId: Int,
+ login: String,
+ password: String,
+ lastAuthorizeDate: LocalDate,
+ email: String,
+ phone: String
+) : User(userId, login, password, lastAuthorizeDate, email, phone) {
+ override val role: String = "менеджер"
+}
\ No newline at end of file
diff --git a/src/main/kotlin/model/User.kt b/src/main/kotlin/model/User.kt
new file mode 100644
index 0000000..9761be8
--- /dev/null
+++ b/src/main/kotlin/model/User.kt
@@ -0,0 +1,16 @@
+package model
+
+import java.time.LocalDate
+
+open class User(
+ val userId: Int,
+ val login: String,
+ var password: String,
+ var lastAuthorizeDate: LocalDate,
+ var email: String,
+ var phone: String
+) { open val role: String = "пользователь" }
+
+
+
+