@@ -20,6 +20,7 @@ import mifos_mobile.core.ui.generated.resources.internal_server_error
2020import mifos_mobile.feature.auth.generated.resources.Res
2121import mifos_mobile.feature.auth.generated.resources.feature_sign_in_password_error
2222import mifos_mobile.feature.auth.generated.resources.feature_sign_in_username_error
23+ import mifos_mobile.feature.auth.generated.resources.no_client_assigned
2324import org.jetbrains.compose.resources.StringResource
2425import org.jetbrains.compose.resources.getString
2526import org.mifos.mobile.core.common.DataState
@@ -123,24 +124,34 @@ class LoginViewModel(
123124 is DataState .Success -> {
124125 updateState { it.copy(showOverlay = false ) }
125126 val user = action.loginResult.data
126- val userData = UserData (
127- userId = user.userId,
128- userName = user.username.orEmpty(),
129- clientId = if (user.clients.isNotEmpty()) {
130- user.clients[0 ]
131- } else {
132- user.userId
133- },
134- isAuthenticated = user.isAuthenticated,
135- base64EncodedAuthenticationKey = user.base64EncodedAuthenticationKey.orEmpty(),
136- officeName = user.officeName.orEmpty(),
137- password = state.password,
138- )
139- viewModelScope.launch {
140- userPreferencesRepositoryImpl.updateUser(userData)
141- userPreferencesRepositoryImpl.setIsAuthenticated(true )
127+ if (user.clients.isEmpty()) {
128+ val noClientsMsg = getString(Res .string.no_client_assigned)
129+ viewModelScope.launch {
130+ userPreferencesRepositoryImpl.updateUser(UserData .DEFAULT )
131+ userPreferencesRepositoryImpl.setIsAuthenticated(false )
132+ }
133+ updateState {
134+ it.copy(
135+ isError = true ,
136+ dialogState = LoginState .DialogState .Error (noClientsMsg),
137+ )
138+ }
139+ } else {
140+ val userData = UserData (
141+ userId = user.userId,
142+ userName = user.username.orEmpty(),
143+ clientId = user.clients[0 ],
144+ isAuthenticated = user.isAuthenticated,
145+ base64EncodedAuthenticationKey = user.base64EncodedAuthenticationKey.orEmpty(),
146+ officeName = user.officeName.orEmpty(),
147+ password = state.password,
148+ )
149+ viewModelScope.launch {
150+ userPreferencesRepositoryImpl.updateUser(userData)
151+ userPreferencesRepositoryImpl.setIsAuthenticated(true )
152+ }
153+ sendEvent(LoginEvent .NavigateToPasscode )
142154 }
143- sendEvent(LoginEvent .NavigateToPasscode )
144155 }
145156 }
146157 }
0 commit comments