Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect IBM/HCL Notes Client for Domino Support #667

Closed
JoelProminic opened this issue Feb 26, 2020 · 17 comments
Closed

Detect IBM/HCL Notes Client for Domino Support #667

JoelProminic opened this issue Feb 26, 2020 · 17 comments
Assignees
Labels
enhancement test ready Feature/bug ready for testing

Comments

@JoelProminic
Copy link
Contributor

JoelProminic commented Feb 26, 2020

In order to use Domino tools like DXL Importer (#668) or On Disk Project (#669, #670, #646), the user needs to have the Notes client installed at a location where Moonshine can access it.

This is similar to the checks we do for SDKs with Getting Started. Nowever, we can't automate the install of IBM/HCL Notes on a workstation, so we just want to find and save the path.

The expected directories are:

# macOS
/Applications/IBM Notes.app/
/Applications/HCL Notes.app/

# Windows
C:\Program Files (x86)\IBM\Notes
TODO:  HCL

The App Store build won't be able to access these directories without a bookmark, so we will need a settings page where they can can select the path. This should be in the other builds as well, but we expect it to be populated by default.

I'll give the details for how to use this path in the related issues above.

Some other checks we may need to do:

  • Check the Notes client version. If it matters, we'll focus our support on the latest version 11.0
  • Check if the Notes client is setup properly to allow DXL Importer or other tools access without a password. I'll think about whether I can make a script for this.
@JoelProminic JoelProminic added this to the v2.7.0 milestone Feb 26, 2020
@JoelProminic JoelProminic self-assigned this Feb 26, 2020
@JoelProminic JoelProminic changed the title Detect IBM/HCL Notes Client Client for Domino Support Detect IBM/HCL Notes Client for Domino Support Feb 26, 2020
@rat-moonshine
Copy link
Collaborator

rat-moonshine commented Feb 27, 2020

I think I misunderstood Notes with Node.js when @JustinProminic mentioned about this in Getting Started page, which completed as #661 in branch.

@rat-moonshine
Copy link
Collaborator

rat-moonshine commented Feb 27, 2020

Are we need two separate entries or one, in Getting Started page?

# macOS
/Applications/IBM Notes.app/
/Applications/HCL Notes.app/

The App Store build won't be able to access these directories without a bookmark, so we will need a settings page where they can can select the path.

We can accommodate same pattern usability that we triggers for macOS Git/SVN access, where user prompts and requires to browse-select particular folder to provide bookmarking access.

rat-moonshine added a commit to Moonshine-IDE/Moonshine-SDK-Installer that referenced this issue Feb 27, 2020
rat-moonshine added a commit that referenced this issue Feb 27, 2020
rat-moonshine added a commit that referenced this issue Feb 27, 2020
- Added initial codes for Getting Started check
(reference #667)
rat-moonshine added a commit to Moonshine-IDE/Moonshine-SDK-Installer that referenced this issue Feb 27, 2020
rat-moonshine added a commit to Moonshine-IDE/Moonshine-SDK-Installer that referenced this issue Feb 27, 2020
- Adding detection in SDK-installer
(reference Moonshine-IDE/Moonshine-IDE#667)
rat-moonshine added a commit to Moonshine-IDE/Moonshine-SDK-Installer that referenced this issue Mar 2, 2020
rat-moonshine added a commit that referenced this issue Mar 2, 2020
- Permission window to provide access on macOS
- Some older codes adjusted
(reference #667)
@rat-moonshine
Copy link
Collaborator

Codes adjusted and tested both on Windows and macOS. While on Windows it suppose to detect by following two default locations:

C:\Program Files (x86)\IBM\Notes
C:\Program Files (x86)\HCL\Notes (I don't know if this right, please provide correct path if this is wrong in case of HCL)

On macOS, this suppose to test following two locations:

/Applications/IBM Notes.app/
/Applications/HCL Notes.app/

On macOS, a permission access will be ask through Getting Started window, as we have permission request for Git/SVN on macOS.

@rat-moonshine rat-moonshine added the test ready Feature/bug ready for testing label Mar 2, 2020
@JoelProminic
Copy link
Contributor Author

I tested this from a branch build.

Some minor text updates - I may request further changes after reviewing with @JustinProminic:

Update the Getting Started By Feature entry to:

Domino Support
Use Domino On Disk Projects and import Java agents

Update the "Notes Domino" settings page:

  • Change the name to "Domino"
  • Change the description to "IBM/HCL Domino Integration"
  • Change the field label from "IBM/HCL Notes Executable" to "IBM/HCL Notes Installation" to emphasize that this is a directory rather than the executable itself.

I get this prompt when clicking the configure icon on the Getting Started path for both the App Store and non-Sandbox builds. This is not needed for non-Sandbox, since we don't need a bookmark to acess the directory.

image

Change the text to:

In order to use the Domino Integration features, you must grant Moonshine permission to access the IBM Notes installation.

Click Allow Access to open the application shown below. Then click "Open" to grant access.



/Applications/IBM Notes.app

@rat-moonshine and I also discussed some behavior issues with the file chooser. The behavior changes with the Finder view mode that is selected by the user:
image
image

Only the third view mode (from the second screenshot) enables the Open button. The other views show the contents of IBM Notes.app, and there is no .app file to select (see the first screenshot).

We need to make sure that this will work for all four view modes. We may need to experiment with a custom filter using FileFilter.

@rat-moonshine
Copy link
Collaborator

rat-moonshine commented Mar 3, 2020

  • Minor textual changes have done
  • Notes-permission window now appear only in App Store version of Moonshine

While using FileFilter (to select .app file only) didn't made any difference for me in testing.

@JoelProminic
Copy link
Contributor Author

Getting Started window doesn't appear on startup when IBM/HCL Notes is detected, but access is not granted. I'll discuss with @JustinProminic whether this is desired - not all users will want this.

The text on the Allow Access prompt was not update:
image

In the AppStore version, the FileChooser opens to whichever directory was last accessed, rather than to /Applications/IBM Notes.app. If we can't avoid this, then the FileFilter logic discussed above may not matter, since the user would need to manually browse to IBM Notes.app anyway.

The Allow Access prompt no longer appears on the non-Sandbox build, but I still see the warning icon on the Getting Started page:

image

rat-moonshine added a commit that referenced this issue Mar 4, 2020
- Removed some unnecessary codes
(reference #667)
rat-moonshine added a commit to Moonshine-IDE/Moonshine-SDK-Installer that referenced this issue Mar 4, 2020
- Notes size updated for Notes in configuration
(reference Moonshine-IDE/Moonshine-IDE#667)
@rat-moonshine
Copy link
Collaborator

Getting Started window doesn't appear on startup when IBM/HCL Notes is detected, but access is not granted. I'll discuss with @JustinProminic whether this is desired - not all users will want this.

I'm not sure if I successfully able to test this case - as Getting Started opens for me if an item has pending download and 'do not show again' checkbox is not selected, during my tests.

The text on the Allow Access prompt was not update:

Texts have updated.

The Allow Access prompt no longer appears on the non-Sandbox build, but I still see the warning icon on the Getting Started page:

Showing of warning now adjusted. Please, check.

@JustinProminic
Copy link

We need to avoid using the trademark name IBM anymore. Only HCL should be used. And it should be like this: HCL (R) Notes / Domino. Don't make it say in pop-up boxes and configuration screens IBM / HCL. Just use HCL only.

@JoelProminic
Copy link
Contributor Author

Besides the change from @JustinProminic's comment above, the updates looked good in my test.

@rat-moonshine
Copy link
Collaborator

IBM references now removed from Moonshine and Moonshine-SDK-Installer.

@rat-moonshine
Copy link
Collaborator

rat-moonshine commented Mar 6, 2020

Beside I tested that the path I'm providing to the ANE to open-by the file chooser in sandbox Moonshine, which was correct; I also read through this article which were discussing similar type of problem if not exact:
https://apple.stackexchange.com/questions/62410/how-can-i-open-a-folder-called-something-app-in-various-applications

So I went through some more tests to understand the pre-selection behaviour better on sandbox. Following were my findings during these tests.

Open-by Path Opened by the Path? Description
/Applications/IBM Notes.app No -
/Users/$user/Documents/SomeFolder/SomeApp.app Yes Open-by behaviour was same as was in non-sandbox
/Applications/SomeApp.app No -
/Applications/SomeApp.id Yes Open-by behaviour was same as was in non-sandbox

After these I have a feeling that Apple reinforced a mix kind of restrictions, maybe. When .app is pre-selectable through a file-dialog, it is not permitted to pre-select when located inside /Applications folder. On the other hand, a different extension file is permitted to be preselect inside /Applications.

I'm not sure if this a limitation/restriction regulated by Apple, if or how we can do something about it.

@JoelProminic
Copy link
Contributor Author

In order for the user to do a DXL Import (#668) or On Disk Project (#646, #669) without entering their Notes password, they need to update a setting in the Notes client. I'd like to provide some guidance for the users when they set up the Notes path.

For now, I'd like to add a writeup like this to the Domino Settings page. If it doesn't fit well within the page, you can have it open with a link like "Enable passwordless access."

In order to run HCL Notes operations from Moonshine, you need to enable a Notes setting that will allow local applications to run without your password. Note that your Notes client must still be open, authenticated, and unlocked in order for this setting to work.

  1. Open HCL Notes > Security > User Security... (or File > Security > User Security... for older versions)
  2. Enter your Notes Password
  3. In the Security Basics tab, enable the "Don't prompt for password from other Notes-based programes" checkbox setting.

image

If you do not wish to enable this setting, then you can still run the Maven or Ant scripts from a Terminal or Command Prompt and enter the password manually.

If the user does not include this setting, they'll see the script hang with a password prompt (and in some cases, the prompt might be buried in other text).

I'll look into how we can make the operations fail in a clearer way. If we can detect the problems automatically, we can display a message like this:

ERROR:  Missing password.  To fix this, follow the instructions at Moonshine > Settings > Domino, or run this command from a Terminal or Command Line:  <command>

@rat-moonshine
Copy link
Collaborator

Above instruction added into Domino settings view.

@rat-moonshine
Copy link
Collaborator

This issue is now merged into 'master'.

@piotrzarzycki21
Copy link
Collaborator

If that issue involves update to Installer please send me link for newest version. I'm closing issue.

@piotrzarzycki21 piotrzarzycki21 added this to Done #2.3.0 in Moonshine-IDE - Features via automation Apr 30, 2020
@rat-moonshine
Copy link
Collaborator

If that issue involves update to Installer please send me link for newest version. I'm closing issue.

Branch for Moonshine SDK Installer also merged into 'master'. So you should access the functionality with new usual build.

@piotrzarzycki21
Copy link
Collaborator

If that issue involves update to Installer please send me link for newest version. I'm closing issue.

Branch for Moonshine SDK Installer also merged into 'master'. So you should access the functionality with new usual build.

Ahh!! Sorry I forgot that we have now automatic build of Installer ;) Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement test ready Feature/bug ready for testing
Projects
Development

No branches or pull requests

4 participants