Сделал шуточную авторизацию

This commit is contained in:
Кашин Максим 2023-11-21 00:24:18 +04:00
parent 4b3c61ca06
commit 0b8c882823
3 changed files with 23 additions and 7 deletions

View File

@ -27,6 +27,9 @@ interface UserDao {
@Query("SELECT * FROM users WHERE email = :email") @Query("SELECT * FROM users WHERE email = :email")
suspend fun getUserByEmail(email: String): User suspend fun getUserByEmail(email: String): User
@Query("SELECT password FROM users WHERE email = :email")
suspend fun getPasswordByEmail(email: String): String
@Query("SELECT * FROM users WHERE email = :email AND password = :password") @Query("SELECT * FROM users WHERE email = :email AND password = :password")
suspend fun getUserByEmailAndPassword(email: String, password: String): User? suspend fun getUserByEmailAndPassword(email: String, password: String): User?
} }

View File

@ -30,14 +30,20 @@ import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.NavHostController
import com.example.labwork.R import com.example.labwork.R
import com.example.labwork.database.DAO.UserDao
import com.example.labwork.ui.theme.LightBluePolitech import com.example.labwork.ui.theme.LightBluePolitech
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@Composable @Composable
fun LoginPage(navController: NavController) { fun LoginPage(navController: NavController, userDao: UserDao, navHostController: NavHostController) {
var username by remember { mutableStateOf("") } var email by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") } var password by remember { mutableStateOf("") }
var userPassword by remember { mutableStateOf("") }
var showPassword by remember { mutableStateOf(false) } var showPassword by remember { mutableStateOf(false) }
var acceptLogin by remember { mutableStateOf(false) }
Column( Column(
modifier = Modifier modifier = Modifier
@ -54,9 +60,9 @@ fun LoginPage(navController: NavController) {
Spacer(modifier = Modifier.height(16.dp)) Spacer(modifier = Modifier.height(16.dp))
TextField( TextField(
value = username, value = email,
onValueChange = { username = it }, onValueChange = { email = it },
label = { Text("Логин") }, label = { Text("Почта") },
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(horizontal = 16.dp), .padding(horizontal = 16.dp),
@ -109,7 +115,14 @@ fun LoginPage(navController: NavController) {
Spacer(modifier = Modifier.height(8.dp)) Spacer(modifier = Modifier.height(8.dp))
Button( Button(
onClick = { /* Login logic */ }, onClick = {
GlobalScope.launch {
userPassword = userDao.getPasswordByEmail(email)
}
if(userPassword == password) {
navHostController.navigate("ListProduct")
}
},
colors = ButtonDefaults.buttonColors(backgroundColor = LightBluePolitech, ), colors = ButtonDefaults.buttonColors(backgroundColor = LightBluePolitech, ),
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()

View File

@ -45,7 +45,7 @@ fun RegisteryOrLogin(userDao: UserDao, navHostController: NavHostController) {
NavHost(navController, startDestination = "login") { NavHost(navController, startDestination = "login") {
composable("login") { composable("login") {
LoginPage(navController) LoginPage(navController, userDao, navHostController)
} }
composable("register") { composable("register") {
RegisteryPage(navController, userDao, navHostController) RegisteryPage(navController, userDao, navHostController)