TF-2387 Handle logout twake workplace

This commit is contained in:
dab246
2024-11-05 14:51:17 +07:00
committed by Dat H. Pham
parent e13f86a037
commit 623826d29f
7 changed files with 46 additions and 27 deletions
@@ -102,7 +102,7 @@ class AuthenticationClientMobile implements AuthenticationClientBase {
@override
Future<TokenOIDC> signInTwakeWorkplace(OIDCConfiguration oidcConfiguration) async {
final uri = await FlutterWebAuth2.authenticate(
url: oidcConfiguration.singInUrl,
url: oidcConfiguration.signInTWPUrl,
callbackUrlScheme: OIDCConstant.twakeWorkplaceUrlScheme,
options: const FlutterWebAuth2Options(
intentFlags: ephemeralIntentFlags,
@@ -115,7 +115,7 @@ class AuthenticationClientMobile implements AuthenticationClientBase {
@override
Future<TokenOIDC> signUpTwakeWorkplace(OIDCConfiguration oidcConfiguration) async {
final uri = await FlutterWebAuth2.authenticate(
url: oidcConfiguration.signUpUrl,
url: oidcConfiguration.signUpTWPUrl,
callbackUrlScheme: OIDCConstant.twakeWorkplaceUrlScheme,
options: const FlutterWebAuth2Options(
intentFlags: ephemeralIntentFlags,
@@ -11,13 +11,13 @@ extension OidcConfigurationExtensions on OIDCConfiguration {
String get redirectUrl {
if (PlatformInfo.isWeb) {
if (AppConfig.domainRedirectUrl.endsWith('/')) {
return AppConfig.domainRedirectUrl + loginRedirectOidcWeb;
} else {
return '${AppConfig.domainRedirectUrl}/$loginRedirectOidcWeb';
}
return AppConfig.domainRedirectUrl.endsWith('/')
? AppConfig.domainRedirectUrl + loginRedirectOidcWeb
: '${AppConfig.domainRedirectUrl}/$loginRedirectOidcWeb';
} else {
return redirectOidcMobile;
return authority == AppConfig.saasRegistrationUrl
? OIDCConstant.twakeWorkplaceRedirectUrl
: redirectOidcMobile;
}
}
@@ -29,11 +29,13 @@ extension OidcConfigurationExtensions on OIDCConfiguration {
return '${AppConfig.domainRedirectUrl}/$logoutRedirectOidcWeb';
}
} else {
return redirectOidcMobile;
}
return authority == AppConfig.saasRegistrationUrl
? OIDCConstant.twakeWorkplaceRedirectUrl
: redirectOidcMobile;
}
}
String get singInUrl => ServicePath(authority)
String get signInTWPUrl => ServicePath(authority)
.withQueryParameters([
StringQueryParameter(
OIDCConstant.postLoginRedirectUrlPathParams,
@@ -43,7 +45,7 @@ extension OidcConfigurationExtensions on OIDCConfiguration {
])
.generateEndpointPath();
String get signUpUrl => ServicePath(authority)
String get signUpTWPUrl => ServicePath(authority)
.withQueryParameters([
StringQueryParameter(
OIDCConstant.postRegisteredRedirectUrlPathParams,
@@ -46,12 +46,12 @@ class TwakeWelcomeController extends ReloadableController {
void onClickSignIn(BuildContext context) {
TipDialogHelper.loading(AppLocalizations.of(context).loadingPleaseWait);
if (AppConfig.saasServerUrl.isEmpty) {
if (AppConfig.saasJmapServerUrl.isEmpty) {
consumeState(Stream.value(Left(SignInTwakeWorkplaceFailure(CanNotFoundSaasServerUrl()))));
return;
}
final baseUri = Uri.tryParse(AppConfig.saasServerUrl);
final baseUri = Uri.tryParse(AppConfig.saasJmapServerUrl);
if (baseUri == null) {
consumeState(Stream.value(Left(SignInTwakeWorkplaceFailure(SaasServerUriIsNull()))));
@@ -61,7 +61,7 @@ class TwakeWelcomeController extends ReloadableController {
consumeState(_signInTwakeWorkplaceInteractor.execute(
baseUri: baseUri,
oidcConfiguration: OIDCConfiguration(
authority: AppConfig.registrationUrl,
authority: AppConfig.saasRegistrationUrl,
clientId: OIDCConstant.clientId,
scopes: AppConfig.oidcScopes
)
@@ -71,12 +71,12 @@ class TwakeWelcomeController extends ReloadableController {
void onSignUpTwakeWorkplace(BuildContext context) {
TipDialogHelper.loading(AppLocalizations.of(context).loadingPleaseWait);
if (AppConfig.saasServerUrl.isEmpty) {
if (AppConfig.saasJmapServerUrl.isEmpty) {
consumeState(Stream.value(Left(SignUpTwakeWorkplaceFailure(CanNotFoundSaasServerUrl()))));
return;
}
final baseUri = Uri.tryParse(AppConfig.saasServerUrl);
final baseUri = Uri.tryParse(AppConfig.saasJmapServerUrl);
if (baseUri == null) {
consumeState(Stream.value(Left(SignUpTwakeWorkplaceFailure(SaasServerUriIsNull()))));
@@ -86,7 +86,7 @@ class TwakeWelcomeController extends ReloadableController {
consumeState(_signUpTwakeWorkplaceInteractor.execute(
baseUri: baseUri,
oidcConfiguration: OIDCConfiguration(
authority: AppConfig.registrationUrl,
authority: AppConfig.saasRegistrationUrl,
clientId: OIDCConstant.clientId,
scopes: AppConfig.oidcScopes
)
@@ -7,7 +7,6 @@ import 'package:tip_dialog/tip_dialog.dart';
import 'package:tmail_ui_user/features/starting_page/presentation/twake_welcome/twake_welcome_controller.dart';
import 'package:tmail_ui_user/features/starting_page/presentation/twake_welcome/twake_welcome_view_style.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart';
class TwakeWelcomeView extends GetWidget<TwakeWelcomeController> {
@@ -34,14 +33,10 @@ class TwakeWelcomeView extends GetWidget<TwakeWelcomeController> {
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
overlayColor: WidgetStateProperty.all(Colors.transparent),
signInTitle: AppConfig.isSaasPlatForm
? AppLocalizations.of(context).signIn.capitalizeFirst ?? ''
: null,
signInTitle: AppLocalizations.of(context).signIn.capitalizeFirst ?? '',
onSignInOnTap: () => controller.onClickSignIn(context),
onCreateTwakeIdOnTap: () => controller.onSignUpTwakeWorkplace(context),
createTwakeIdTitle: AppConfig.isSaasPlatForm
? AppLocalizations.of(context).createTwakeId
: null,
createTwakeIdTitle: AppLocalizations.of(context).createTwakeId,
useCompanyServerTitle: AppLocalizations.of(context).useCompanyServer,
description: AppLocalizations.of(context).descriptionWelcomeTo,
descriptionTextStyle: TwakeWelcomeViewStyle.descriptionTextStyle,
+2 -2
View File
@@ -67,7 +67,7 @@ class AppConfig {
static bool get isSaasPlatForm => _platformEnv.toLowerCase() == saasPlatform;
static String get registrationUrl => dotenv.get('REGISTRATION_URL', fallback: '');
static String get saasRegistrationUrl => dotenv.get('SAAS_REGISTRATION_URL', fallback: '');
static String get saasServerUrl => dotenv.get('SAAS_SERVER_URL', fallback: '');
static String get saasJmapServerUrl => dotenv.get('SAAS_JMAP_SERVER_URL', fallback: '');
}