use of com.microsoft.azuretools.authmanage.AuthMethodManager in project azure-tools-for-java by Microsoft.
the class ServiceExplorerView method makeActions.
private void makeActions() {
refreshAction = new Action("Refresh", Activator.getImageDescriptor("icons/RefreshLight_16.png")) {
@Override
public void run() {
azureModule.load(true);
}
};
refreshAction.setToolTipText("Refresh");
signInOutAction = new Action("Sign In/Sign Out", com.microsoft.azuretools.core.Activator.getImageDescriptor("icons/SignOutLight_16.png")) {
@Override
public void run() {
try {
AuthMethodManager authMethodManager = AuthMethodManager.getInstance();
boolean isSignedIn = authMethodManager.isSignedIn();
if (isSignedIn) {
SignOutCommandHandler.doSignOut(PluginUtil.getParentShell());
} else {
SignInCommandHandler.doSignIn(PluginUtil.getParentShell());
}
} catch (Exception ex) {
Activator.getDefault().log(ex.getMessage(), ex);
}
}
};
selectSubscriptionAction = new Action("Select Subscriptions", com.microsoft.azuretools.core.Activator.getImageDescriptor("icons/ConnectAccountsLight_16.png")) {
@Override
public void run() {
try {
if (AuthMethodManager.getInstance().isSignedIn()) {
SelectSubsriptionsCommandHandler.onSelectSubscriptions(PluginUtil.getParentShell());
azureModule.load(false);
}
} catch (Exception ex) {
}
}
};
selectSubscriptionAction.setToolTipText("Select Subscriptions");
doubleClickAction = new Action() {
@Override
public void run() {
ISelection selection = viewer.getSelection();
Object obj = ((IStructuredSelection) selection).getFirstElement();
if (!viewer.getExpandedState(obj)) {
viewer.expandToLevel(obj, 1);
} else {
viewer.collapseToLevel(obj, 1);
}
}
};
}
use of com.microsoft.azuretools.authmanage.AuthMethodManager in project azure-tools-for-java by Microsoft.
the class AuthPropertyTester method test.
@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
if (PROPERTY_IS_SIGNED_IN.equals(property)) {
try {
AuthMethodManager authMethodManager = AuthMethodManager.getInstance();
boolean isSignIn = authMethodManager.isSignedIn();
return isSignIn;
} catch (Exception e) {
e.printStackTrace();
}
}
return true;
}
use of com.microsoft.azuretools.authmanage.AuthMethodManager in project azure-tools-for-java by Microsoft.
the class SignOutCommandHandler method doSignOut.
public static void doSignOut(Shell shell) {
EventUtil.executeWithLog(TelemetryConstants.ACCOUNT, TelemetryConstants.SIGNOUT, (operation) -> {
AuthMethodManager authMethodManager = AuthMethodManager.getInstance();
MessageBox messageBox = new MessageBox(shell, SWT.ICON_QUESTION | SWT.YES | SWT.NO);
messageBox.setMessage(getSignOutWarningMessage(authMethodManager));
messageBox.setText("Azure Sign Out");
int response = messageBox.open();
if (response == SWT.YES) {
if (authMethodManager.isSignedIn()) {
authMethodManager.signOut();
}
}
}, (ex) -> ex.printStackTrace());
}
use of com.microsoft.azuretools.authmanage.AuthMethodManager in project azure-tools-for-java by Microsoft.
the class AzureSignInAction method onAzureSignIn.
public static void onAzureSignIn(Project project) {
JFrame frame = WindowManager.getInstance().getFrame(project);
AuthMethodManager authMethodManager = AuthMethodManager.getInstance();
boolean isSignIn = authMethodManager.isSignedIn();
if (isSignIn) {
boolean res = DefaultLoader.getUIHelper().showYesNoDialog(frame.getRootPane(), getSignOutWarningMessage(authMethodManager), "Azure Sign Out", AzureIconLoader.loadIcon(AzureIconSymbol.Common.AZURE));
if (res) {
EventUtil.executeWithLog(ACCOUNT, SIGNOUT, (operation) -> {
authMethodManager.signOut();
});
}
} else {
signInIfNotSignedIn(project).subscribe(isLoggedIn -> {
if (isLoggedIn) {
AzureAccount az = Azure.az(AzureAccount.class);
AzureTaskManager.getInstance().runOnPooledThread(() -> authMethodManager.getAzureManager().getSelectedSubscriptions().stream().limit(5).forEach(s -> {
// pre-load regions;
az.listRegions(s.getId());
}));
}
});
}
}
use of com.microsoft.azuretools.authmanage.AuthMethodManager in project azure-tools-for-java by Microsoft.
the class AzureSignInAction method signInIfNotSignedInInternal.
private static Mono<Boolean> signInIfNotSignedInInternal(Project project) {
final AuthMethodManager authMethodManager = AuthMethodManager.getInstance();
final IDeviceLoginUI deviceLoginUI = new DeviceLoginUI();
return Mono.create(sink -> AzureTaskManager.getInstance().runLater(() -> {
final AuthConfiguration auth;
try {
auth = showSignInWindowAndGetAuthConfiguration(project);
} catch (InterruptedException e) {
sink.error(e);
return;
}
Single<AuthMethodDetails> single;
if (auth.getType() != AuthType.DEVICE_CODE) {
single = loginNonDeviceCodeSingle(auth);
} else {
single = loginDeviceCodeSingle().map(account -> {
AzureTaskManager.getInstance().runLater(() -> deviceLoginUI.promptDeviceCode(account.getDeviceCode()));
CompletableFuture<AuthMethodDetails> future = account.continueLogin().map(ac -> fromAccountEntity(ac.getEntity())).doFinally(signal -> deviceLoginUI.closePrompt()).toFuture();
deviceLoginUI.setFuture(future);
try {
return future.get();
} catch (Throwable ex) {
if (!(ex instanceof CancellationException)) {
ex.printStackTrace();
ErrorWindow.show(project, ex.getMessage(), SIGN_IN_ERROR);
}
return new AuthMethodDetails();
}
});
}
single.subscribeOn(rx.schedulers.Schedulers.io()).subscribe(authMethodDetails -> {
if (authMethodManager.isSignedIn()) {
authMethodManager.setAuthMethodDetails(authMethodDetails);
}
sink.success(authMethodManager.isSignedIn());
}, sink::error);
}));
}
Aggregations