From 99ee6fbaac50a985cc496843269350fcebb9ade9 Mon Sep 17 00:00:00 2001 From: Izlydov Date: Wed, 19 Feb 2025 18:29:52 +0300 Subject: [PATCH] bugfix --- .../java/com/displaynone/acss/MainActivity.kt | 11 ++++++++--- .../auth/internal_utils/UserManager.java | 3 ++- .../auth/models/user/UserServiceST.kt | 2 +- .../acss/ui/profile/ProfileFragment.kt | 18 ++++++++++-------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/displaynone/acss/MainActivity.kt b/app/src/main/java/com/displaynone/acss/MainActivity.kt index 1cdb7df..e5e001c 100644 --- a/app/src/main/java/com/displaynone/acss/MainActivity.kt +++ b/app/src/main/java/com/displaynone/acss/MainActivity.kt @@ -53,7 +53,10 @@ class MainActivity : AppCompatActivity() { Log.d("Navigate", "Navigate to " + destination.label) navView.visibility = if (destination.id == R.id.nav_auth) View.GONE else View.VISIBLE val userDTO = UserServiceST.getInstance().getUserDTO() - if (!userDTO.roles.any {it.name == "ROLE_ADMIN"}) navView.menu.findItem(R.id.nav_admin).setVisible(false) else navView.menu.findItem(R.id.nav_admin).setVisible(true) + if (userDTO != null) { + if (!userDTO.roles.any { it.name == "ROLE_ADMIN" }) navView.menu.findItem(R.id.nav_admin) + .setVisible(false) else navView.menu.findItem(R.id.nav_admin).setVisible(true) + } } return navController } @@ -63,8 +66,10 @@ class MainActivity : AppCompatActivity() { } private fun checkForAdmin() { val userDTO = UserServiceST.getInstance().getUserDTO() - if (userDTO.roles.any {it.name == "ROLE_ADMIN"}){ - Log.d("adminlog", "i'm admin") + if (userDTO != null){ + if (userDTO.roles.any {it.name == "ROLE_ADMIN"}) { + Log.d("adminlog", "i'm admin") + } } } } \ No newline at end of file diff --git a/app/src/main/java/com/displaynone/acss/components/auth/internal_utils/UserManager.java b/app/src/main/java/com/displaynone/acss/components/auth/internal_utils/UserManager.java index b28ba7f..2c9397c 100644 --- a/app/src/main/java/com/displaynone/acss/components/auth/internal_utils/UserManager.java +++ b/app/src/main/java/com/displaynone/acss/components/auth/internal_utils/UserManager.java @@ -3,6 +3,7 @@ package com.displaynone.acss.components.auth.internal_utils; import android.content.Context; import android.content.SharedPreferences; +import androidx.annotation.Nullable; import androidx.security.crypto.EncryptedSharedPreferences; import androidx.security.crypto.MasterKeys; @@ -45,7 +46,7 @@ public class UserManager { .putString(ACCESS_KEY,toJson(userDTO)) .apply(); } - public UserDTO getDto() { + public @Nullable UserDTO getDto() { if (this.userDTO != null) return this.userDTO; UserDTO userDTO = fromJson( _preferences.getString(ACCESS_KEY, null)); return userDTO; diff --git a/app/src/main/java/com/displaynone/acss/components/auth/models/user/UserServiceST.kt b/app/src/main/java/com/displaynone/acss/components/auth/models/user/UserServiceST.kt index 3e8a030..5bd33ca 100644 --- a/app/src/main/java/com/displaynone/acss/components/auth/models/user/UserServiceST.kt +++ b/app/src/main/java/com/displaynone/acss/components/auth/models/user/UserServiceST.kt @@ -84,7 +84,7 @@ class UserServiceST( suspend fun openDoor(code: String): Result { return userRepository.openDoor(tokenManager.authTokenPair!!.accessToken, code = code) } - fun getUserDTO(): UserDTO { + fun getUserDTO(): UserDTO? { return userManager.dto } fun saveUserDTO(userDTO: UserDTO){ diff --git a/app/src/main/java/com/displaynone/acss/ui/profile/ProfileFragment.kt b/app/src/main/java/com/displaynone/acss/ui/profile/ProfileFragment.kt index 57030c8..9739573 100644 --- a/app/src/main/java/com/displaynone/acss/ui/profile/ProfileFragment.kt +++ b/app/src/main/java/com/displaynone/acss/ui/profile/ProfileFragment.kt @@ -75,15 +75,17 @@ class ProfileFragment: Fragment(R.layout.fragment_profile) { Log.d("check", "cheking for roles") val userDTO = UserServiceST.getInstance().getUserDTO() - if (userDTO.roles.any {it.name == "ROLE_ADMIN"}){ - Log.d("adminlog", "i'm admin") - binding.buttonSearch.visibility = View.VISIBLE - binding.rightsUsingSmartphone.text = "Пропуск действителен" - } - if (userDTO.roles.any {it.name == "ROLE_USER"}){ - Log.d("userlog", "i'm user") + if (userDTO != null) { + if (userDTO.roles.any { it.name == "ROLE_ADMIN" }) { + Log.d("adminlog", "i'm admin") + binding.buttonSearch.visibility = View.VISIBLE + binding.rightsUsingSmartphone.text = "Пропуск действителен" + } + if (userDTO.roles.any { it.name == "ROLE_USER" }) { + Log.d("userlog", "i'm user") - binding.rightsUsingSmartphone.text = "Пропуск действителен" + binding.rightsUsingSmartphone.text = "Пропуск действителен" + } } } private fun hideButtons() {