Highlighted

Control Single Help Output Access Based on Product Module Permutations

Engaged ,
Apr 14, 2020

Copy link to clipboard

Copied

Running RoboHelp 2019 (update 12). I produce responsive HTML 5 help for a software application. The help will be hosted in the cloud (e.g. Azure) and users will access it via a link within the software application (something they have to sign in to, to open/run). 

 

The application consists of a standard feature set that all users receive but also includes a number of optional a la carte modules/features that they can purchase/subscribe to. Here's the big picture "ask": I'd like to restrict users from accessing help topics for modules they haven't purchased. Generating and hosting 30 different permutations of the help based on all the possible combinations of product modules is untenable.

 

General steps would look similar to this:

  1. User logs into software application (authentication is managed via Auth0). User only has access to software modules they've purchased.
  2. User launches help from software application. Some solution detects which modules the user has.
  3. The help opens and the user doesn't have access to help topics/content for modules they haven't purchased.


Is anyone doing anything like this? I'm interested in any solution (e.g., RoboServer, third-party software, custom scripting/coding, whatever). 

 

I'm not interested in filtering - that relies on the user to control what they see. I want our customer information (provided after authentication) to control what they see. That said, maybe there's a solution that can leverage build tags (along with custom scripting/coding, some interface between our software and RoboServer, etc.) to achieve the desired goal. 

 

If RoboServer can do something similar to this, can it be performed without setting up and managing users in RoboServer? (That is, authentication is passed through to it from our software).

 

Thoughts?

TOPICS
New UI, RoboHelp server, Scripting

Views

651

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

Control Single Help Output Access Based on Product Module Permutations

Engaged ,
Apr 14, 2020

Copy link to clipboard

Copied

Running RoboHelp 2019 (update 12). I produce responsive HTML 5 help for a software application. The help will be hosted in the cloud (e.g. Azure) and users will access it via a link within the software application (something they have to sign in to, to open/run). 

 

The application consists of a standard feature set that all users receive but also includes a number of optional a la carte modules/features that they can purchase/subscribe to. Here's the big picture "ask": I'd like to restrict users from accessing help topics for modules they haven't purchased. Generating and hosting 30 different permutations of the help based on all the possible combinations of product modules is untenable.

 

General steps would look similar to this:

  1. User logs into software application (authentication is managed via Auth0). User only has access to software modules they've purchased.
  2. User launches help from software application. Some solution detects which modules the user has.
  3. The help opens and the user doesn't have access to help topics/content for modules they haven't purchased.


Is anyone doing anything like this? I'm interested in any solution (e.g., RoboServer, third-party software, custom scripting/coding, whatever). 

 

I'm not interested in filtering - that relies on the user to control what they see. I want our customer information (provided after authentication) to control what they see. That said, maybe there's a solution that can leverage build tags (along with custom scripting/coding, some interface between our software and RoboServer, etc.) to achieve the desired goal. 

 

If RoboServer can do something similar to this, can it be performed without setting up and managing users in RoboServer? (That is, authentication is passed through to it from our software).

 

Thoughts?

TOPICS
New UI, RoboHelp server, Scripting

Views

652

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Apr 14, 2020 0
Adobe Community Professional ,
Apr 14, 2020

Copy link to clipboard

Copied

One way I have heard of for controlling what modules are seen, when your other requirements don't apply, is to use merged help and only install the outputs for the modules purchased. Obviously there must not be links from the standard project to the modules where not all are being installed.

 

I can't speak for how RoboServer would handle things with your own authentication. I believe but am not sure that it can do what you want if configured by RoboServer. I will see if I can find someone with the requisite knowledge.

 

 

 

www.grainge.org for free RoboHelp & Authoring info. Use the blue Reply button at the top to help me help you.
The black Reply link nests replies and they sort out of order.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 14, 2020 0
Engaged ,
Apr 14, 2020

Copy link to clipboard

Copied

Thank you for the response, Peter. The end users are brick and mortar businesses. The software application is a web-based application that's installed locally and requires an internet connection. We prefer to host the help in the cloud and not install locally (in the past, my employer published locally installed software and we delivered/included help via CHM files).

 

However, you raise an interesting point. Each enduser will have some space in the cloud for data and other application dependencies. I hadn't considered the possibility of "installing" multiple instances of the help in the cloud. So if we have 1 core help system and, for example, 10 optional module help systems, and then generate all as merged help, but have our cloud network administrator and development team automate an install (copy/paste) of the core and relevant optional help modules based on the end user's product profile, that might work.

 

We currently publish merged help for 8 RH2017 projects for internal staff only - but all child projects are always included (we want staff to be able to access everything). For that reason, I'm not sure how merged help output functions (apart from the linking between projects issue) if you remove a child help system (by simply deleting it after publishing - or only copying/pasting the parent output and some of the child outputs). This *could* be a potential solution. I'll have to play around with merged help output, and depending on what I learn, then check with our cloud dev team on whether it'd be possible from their end. Two other benefits if this works: I still only have to publish "one" output (multiple projects, but only one output per project), and I don't have to worry about authentication (I can simply continue to piggyback onto our application's authentication).

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 14, 2020 0
Adobe Community Professional ,
Apr 14, 2020

Copy link to clipboard

Copied

You cannot simply add and remove child projects without generating the parent again.

 

http://www.grainge.org/pages/authoring/merging_webhelp/merging_method_2019.htm

 

I think you would have to create multiple merges, generate those, then let your developers point users to the correct combination.

 

www.grainge.org for free RoboHelp & Authoring info. Use the blue Reply button at the top to help me help you.
The black Reply link nests replies and they sort out of order.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 14, 2020 0
Engaged ,
Apr 14, 2020

Copy link to clipboard

Copied

My thought was that I'd generate one master merge output with all possible projects - for example, 1 parent project, with 11 merged child projects. The parent project is an empty placeholder/organizer with a re-direct to a "home" topic in one of the child projects (how we do it in RH2017), 1 child project is help for all standard/core functions/features that everyone gets (this is the project where I'd stick the target topic of the redirect), and the other 10 child projects are for each optional module. Then, I was hoping that if you copy/pasted from the entire merged help output the 1 parent project output, 1 standard/core child project output, and whatever combo of the other child project outputs, that copy of the merged help might still work (the absence of the projects not copied would just remove them from the TOC, index, etc. and the rest of the combined help would "just work"). 

 

Good golly. If my math is correct, generating multiple merges for all the different permutations for 10 optional modules would result in a little more than 1,000 different outputs. 

 

 I'd still love to hear if anyone has a solution to the overall issue. Thank you.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 14, 2020 0
Adobe Community Professional ,
Apr 14, 2020

Copy link to clipboard

Copied

I don't know how the developers did it, but in a previous job the developers fudged the structure.

 

We published our help like so (not in the merge structure):

 

Base Product

- v1

- v2

Module 1

- v1

- v1.1

- v2

Module 2

- v1

- v2

- v3

 

etc

 

The application sent a list of modules and versions installed and magic happened so to the end user it was like the help was published like this:

 

Base product v2

-mergedProjects

 --Module 1 v1

 --Module 2 v3

 

I think we were working with webhelp, but the principle should be the same for responsive or frameless.

 

Sorry I can't give details of how they did it. Hopefully my super non-technical overview can point your devs in the right direction.

 

 

At a different timeI did play around with removing children from a merge in responsive and from memory it was possible as long as the placeholder files initially generated by the parent were not deleted, that is, the screendata.js, projectdata.js and parentdata.js files remained in the correct folder locations. I can't remember if all had to be kept or only one or two. 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 14, 2020 0