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

Allow Journal Managers to invite users to adopt a role - Editors, Authors, Readers, etc #9658

Open
Tracked by #3022
Devika008 opened this issue Jan 26, 2024 · 6 comments
Assignees
Labels
Community:2:Priority Any issue that has been identified through research or feedback as a major community priority. Enhancement:2:Moderate A new feature or improvement that can be implemented in less than 4 weeks. Privacy Any issue that impacts user privacy, such as GDPR and other privacy regulations.
Milestone

Comments

@Devika008
Copy link

Devika008 commented Jan 26, 2024

Hello,

Since Allow journal managers to invite users to adopt a role was too big, upon discussion we decided to divide it into four smaller issues, the first one being this.

This issue highlights only the user flow of journal managers inviting users like editors, authors, readers, etc to OJS. The user flow reflects all the research, discussions and feedback received on this issue over the last few years along with some minor testing with a small user group at the Copenhagen Sprint.

Summary of the requirement

  1. In the “Users & Roles” section of the settings, we add a new “Invite user to take a role” action that can be used to invite any user to the journal OJS software based on an email address. The email sent will add the following:
  • Invitation request along with details of the role, starting date etc.
  • ORCiD verification details
  • GDPR compliance
  1. Multiple hosted Journal OJS Installation: For Multiple Hosted Journals, Editors/ JMs cannot access information of users of one Journal to another. In spite of the journals being hosted on the same OJS instance, the user will have to go through the verification again to protect the information to be GDPR compliant. This is the same method followed by likes of Slack wherein even if the channel is hosted by the same company, the invitation process needs to be followed and accepted by the user. However, I as a user will not have to create a new account, I can use my existing OJS logins and verify and accept the role.

  2. Other important considerations

  • Even if the user information is publicly available, the JM / editor cannot input the information without consent. This will be translated in the journey in a way where the editors can input the information but they wont be stored in the system. They are shown to the user as suggestions when they accept the invite and the user approves or changes it. Post which the information is stored in the system
  • Co-author reauthorization is required even if the user is an existing OJS user

Below are the user flows for inviting users to a role in OJS

A. Landing Page ( Settings > Users & Roles > Users)
I have tweaked the interface to make it more accessible, instead of the arrows at the start of each row, I have added a "more options" icon at the end. I have shown three states of it below.

  1. Image

  2. Image

  3. Image

B. The JM/editor needs to add a new role to a known user and searches for the user via their username or email ID by clicking on “invite user to take a role

  1. Image

If an invitation is sent to an existing user to acquire a new role then the users name will appear in both the tables and not just one table

  1. Image
    How the roles table functions
  • Selecting a role from the drop down is compulsory
  • The start date auto defaults to “today’s date” with an option for the Journal Manager to set a date in the future as well as past
  • End date is not a field the JM can fill. Once the JM clicks on “Remove Role” the end date defaults to that date.
  • Journal Masthead --> always auto defaults to appearing in the masthead with options of them not not certain roles which can be managed from the settings
  • Once the JM clicks on “Remove Role” then not only the user access is removed but they stop appearing in the masthead as well
  • Nothing can be toggled or changed once invitation is accepted by the user
  1. Image

  2. Image

  3. Image

  4. Image

C. The JM/editor needs to add a new role to a known user and finds the user in the list or searches for the user via their username or email ID.

  1. Image

  2. Image

  3. Image

  4. Image

  5. Image

  6. Image

If the user goes ahead with the ORCID Verification

  1. Image

  2. Image

Incase the user decides to skip ORCID verification, the following screen will come

  1. Image

  2. Image

D. The editor needs to add a new user and the user doesn’t have any existing OJS Account

  1. Image

  2. Image

  3. Image

  4. Image

  5. Image

6.a Image

Incase the username already exists, the following indication/error message will appear

6.b. Image

  1. Image

  2. Image

  3. Image

  4. Image

  5. Image

E. For Multiple Hosted Journals, Editors/ JMs cannot access information of users of one Journal to another. In spite of the journals being hosted on the same OJS instance, the user will have to go through the verification again to protect their information and fort he process to be GDPR compliant. This is the same method followed by likes of Slack wherein even if the channel is hosted by the same company, the invitation process needs to be followed and accepted by the user. However, I as a user will not have to create a new account, I can use my existing OJS logins and verify and accept the role

  1. Image

  2. Image

  3. Image

  4. Image

  5. Image

An existing OJS user, has two options here, either to link their existing OJS account or to create a new one using a new email id. Do note that even if the user uses an existing account, no information about the user activity can be shared with other journals in the same installation

  1. Image

  2. Image

  3. Image

  4. Image

  5. Image

@Devika008 Devika008 converted this from a draft issue Jan 26, 2024
@Devika008 Devika008 added Community:2:Priority Any issue that has been identified through research or feedback as a major community priority. Enhancement:2:Moderate A new feature or improvement that can be implemented in less than 4 weeks. Privacy Any issue that impacts user privacy, such as GDPR and other privacy regulations. labels Jan 26, 2024
@Devika008 Devika008 added this to the 3.5.0 LTS milestone Jan 26, 2024
@Devika008 Devika008 mentioned this issue Feb 5, 2024
20 tasks
ipula added a commit to ipula/ojs that referenced this issue Mar 14, 2024
ipula added a commit to ipula/ojs that referenced this issue Mar 14, 2024
ipula added a commit to ipula/ojs that referenced this issue Mar 14, 2024
@withanage
Copy link
Member

@Devika008

hi Devika,

We talked about the validation errors in the forms today!

The general technical idea behind this is that we have the REST API endpoint that gives us a list of errors, and the forms in a specific step select from a custom list of fields that they need to display.

I have gone through the designs and we seem to have one way of displaying errors or information, when the step has failed.

Would you be suggesting a similar display for validation errors or may be form-field level validation errors for those specific errors, such es entered email format is not correct?

Screenshot from 2024-05-22 12-21-50

FYI @jardakotesovec @ipula

@Devika008
Copy link
Author

Hello Dulip,

I'll share the designs for validation errors with you and Ipula shortly. My basic logic is to provide inline error validation and not when the user clicks "Next" or comes on the "review screen"

Are there a list of specific errors you are looking at? If yes, then it will be easy for me to provide the designs keeping those specific errors in mind.

@withanage
Copy link
Member

withanage commented May 23, 2024

Thanks Devika,

Are there a list of specific errors you are looking at? If yes, then it will be easy for me to provide the designs keeping those specific errors in mind.

yes, I was meaning the inline errors as you anticipated. Actually, the set of errors, I was looking at was the non-occurance of an input text or the validation according to a certail rule . A message e.g. for missing email and the sytnax validation would be an example.

I tested the ui-library for some of the developments from Jarda and Ipula today and saw some of the validation error messages are still available there. May be they are from the old code still.

Screenshot from 2024-05-23 18-07-23

@jardakotesovec
Copy link
Contributor

@Devika008 I would like to specifically check with you, whether the fields in table (like selecting start date for role) would also show it inline the same way as any other form fields?

@Devika008
Copy link
Author

It would be great if the errors on the table were inline so to replicate the behaviour elsewhere on the system and ease the cognitive load and learning graph of the user however I leave it to you if you think it would be difficult in the table then we can discuss

jardakotesovec added a commit to pkp/ui-library that referenced this issue Jun 13, 2024
* send and accept invitation

* improved creating invitation workflow structure

* send invitation

* Clean Documentation

* Change ORCiD Id to ORCID id

* remove modal

---------

Co-authored-by: Jarda Kotěšovec <[email protected]>
Co-authored-by: withanage <[email protected]>
jardakotesovec added a commit to jardakotesovec/ui-library that referenced this issue Jul 3, 2024
jardakotesovec added a commit to jardakotesovec/pkp-lib that referenced this issue Jul 3, 2024
jardakotesovec added a commit to pkp/ui-library that referenced this issue Jul 3, 2024
jardakotesovec added a commit that referenced this issue Jul 3, 2024
jardakotesovec added a commit to jardakotesovec/ui-library that referenced this issue Jul 3, 2024
withanage added a commit to withanage/ojs that referenced this issue Nov 7, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 7, 2024
withanage added a commit to withanage/ops that referenced this issue Nov 7, 2024
withanage added a commit to withanage/ops that referenced this issue Nov 7, 2024
withanage added a commit to withanage/ops that referenced this issue Nov 7, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 7, 2024
GaziYucel pushed a commit to GaziYucel/ojs that referenced this issue Nov 8, 2024
withanage added a commit to withanage/ops that referenced this issue Nov 11, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 11, 2024
withanage added a commit to pkp/ops that referenced this issue Nov 11, 2024
withanage added a commit to pkp/omp that referenced this issue Nov 11, 2024
withanage added a commit to withanage/ojs that referenced this issue Nov 11, 2024
withanage added a commit to withanage/ojs that referenced this issue Nov 11, 2024
withanage added a commit to withanage/ojs that referenced this issue Nov 11, 2024
@mreiko
Copy link

mreiko commented Nov 12, 2024

@Devika008 @jardakotesovec Can this ticket plus #3022 now be closed given that #9660 and #9661 are in progress?

withanage added a commit to withanage/omp that referenced this issue Nov 21, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 23, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 23, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 23, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 23, 2024
withanage added a commit to withanage/omp that referenced this issue Nov 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Community:2:Priority Any issue that has been identified through research or feedback as a major community priority. Enhancement:2:Moderate A new feature or improvement that can be implemented in less than 4 weeks. Privacy Any issue that impacts user privacy, such as GDPR and other privacy regulations.
Projects
Status: In Progress
Development

No branches or pull requests

7 participants