I have tested Viewer Role by assigning projects with different Access Levels (User Roles) as Use Cases.
Viewer
Theory:
Role Permissions: login and view issues.
Practical:
For example, I have created two projects such as Public (Buddytutor) and Private (Cloudericks). Under each Project added two issues such as Public Issue and Private Issue.
Next, I had logged in with Jason (Viewer) credentials, Able to view one issue only i.e. Public issue of a Public project only. FYI - See below image.
Testing by Assigning Projects with Different Access Levels
Use Case 1: Viewer
Assigned both projects with Access Level Viewer only. Now I am able to view public issues of both projects, See below image.
Use Case 2: Reporter
In this case user able to view public issues of both projects only and add notes (comment) to issues. And also as a reporter now user can Report an Issue to assigned projects.
Use Case 3: Updater
User able to view public issues, report an issue, add comments to issues. And also user can update the issue and add Relationships.
Use Case 4: Developer
Here user able to view all issues under Public and Private Projects. In extending to Updater permissions here a user can Assign, Change status, Monitor, Close, Move and Delete the issues.
Use Case 5: Manager
Additional to Developer permissions now user can manage assigned projects as update and add subprojects.
Use Case 6: Admin
In this case, also user has all the permissions as same as manager to assigned projects. The user won’t get inherited admin permissions like Add or Delete projects.