Permissions Guide
TestPlanIt uses a sophisticated multi-level permission system that combines system-wide access levels, project-specific permissions, role-based access control, and group assignments. This guide explains how permissions work and how to configure them effectively.
Overview
TestPlan It's permission model has three layers:
- System Access Levels - Global access tiers for all users
- Project Access Control - Project-specific permission management
- Role-Based Permissions - Granular control over features and actions
These layers work together to provide flexible, secure access control across the entire application.
System Access Levels
Every user has a system-wide access level that determines their baseline permissions across TestPlanIt.
Access Level Hierarchy
ADMIN (System Administrator)
Capabilities:
- Full access to all features and data
- Manage all users, groups, and system settings
- Access all projects regardless of assignment
- Configure system-wide settings (statuses, workflows, templates, fields)
- Manage integrations and SSO configuration
- View and modify all data
- Cannot be restricted by project-level permissions
Use Cases:
- IT administrators
- Platform owners
- System maintenance personnel
Permissions:
- All administrative functions
- All project access automatically
- Override all permission restrictions
- User management
- System configuration
PROJECTADMIN (Project Administrator)
Capabilities:
- Manage projects they are assigned to
- Add/remove users from their projects
- Configure project settings
- Create and delete projects
- Assign roles within their projects
- Full access to content within assigned projects
Use Cases:
- Team leads
- Project managers
- Department heads
Permissions:
- Create projects
- Manage assigned projects
- Manage project members
- Configure project settings
- Full access to project data
- Cannot access system-wide administration
- Cannot manage users outside their projects
USER (Standard User)
Capabilities:
- Access projects they're assigned to
- Create and modify test content
- Execute tests and record results
- View and use assigned projects
- Basic collaboration features
Use Cases:
- Testers
- QA engineers
- Developers
- Contributors
Permissions:
- Access assigned projects
- Create test cases, runs, sessions
- Record test results
- Comment and collaborate
- Cannot create projects
- Cannot manage users
- Cannot access system settings
NONE (No Access)
Capabilities:
- Cannot access any functionality
- Account exists but is inactive
- Can log in but sees no content
Use Cases:
- Suspended accounts
- Pending activation
- Disabled users
Permissions:
- No project access
- No content access
- Read-only or no access to dashboard
Setting Access Levels:
- Only ADMIN users can set system access levels
- Navigate to Administration > Users
- Edit user and select access level
- Changes take effect immediately
Project Access Control
Projects can be configured with different access models to control who can view and modify content.
Project Access Types
DEFAULT
Behavior: Basic access for all system users
When to Use:
- Open projects accessible to all users
- Company-wide test repositories
- Shared resources
Access Rules:
- All users with access level USER or higher can access
- Uses user's global role for permissions
- Simplest access model
GLOBAL_ROLE (Recommended)
Behavior: Access based on user's global role
When to Use:
- Standard project access model
- Role-based permissions needed
- Most common configuration
Access Rules:
- Users with access level USER or higher can access
- Permissions determined by their global role
- Can be overridden with specific permissions
- Group assignments still apply
SPECIFIC_ROLE
Behavior: Only explicitly assigned users can access
When to Use:
- Confidential or restricted projects
- Department-specific projects
- Projects requiring explicit approval
Access Rules:
- Must be explicitly assigned to access
- Uses assigned project-specific role
- Must have default role configured
- More restrictive than GLOBAL_ROLE
NO_ACCESS
Behavior: Explicitly deny access to specific users
When to Use:
- Revoke access for specific individuals
- Temporary access removal
- Override inherited permissions
Access Rules:
- User cannot access the project
- Overrides all other permissions
- Even ADMIN users respect NO_ACCESS (except system admins)
- Highest priority denial
Configuring Project Access
Setting Default Access Type:
- Navigate to project settings
- Select Default Access Type:
- GLOBAL_ROLE (most common)
- SPECIFIC_ROLE (restrictive)
- DEFAULT (open)
- If using SPECIFIC_ROLE, select a Default Role
- Save changes
Managing Project Members:
- Navigate to Project Settings > Members
- Click Add Member to assign users
- For each member, configure:
- Access Type: Choose permission model
- Role: Select role (if using SPECIFIC_ROLE)
- Remove users to revoke access
Roles and Permissions
Roles define what actions users can perform within projects. TestPlanIt uses application areas to organize permissions.
Application Areas
Permissions are granted per application area:
- Repository - Test case management
- TestRuns - Test execution and results
- Sessions - Exploratory testing sessions
- Milestones - Project milestones
- Issues - Issue tracking
- ProjectManagement - Project configuration
- Documentation - Project documentation
- Shared Steps - Shared test step groups
- Configurations - Test configurations
- Forecasting - Time forecasting
- Reporting - Reports and analytics
- Settings - Project settings
Permission Types
For each application area, roles can have:
- canAddEdit - Create and modify items
- canDelete - Delete items
- canClose - Mark items as complete/closed
Default Roles
TestPlanIt includes several pre-configured roles:
Project Admin
- Full access to all application areas
- All permissions enabled
- Can manage project members
- Recommended for project leads
Manager
- Can add/edit in most areas
- Can close items (runs, sessions, milestones)
- Cannot delete critical data
- Good for team leads
Contributor
- Can add/edit test content
- Can record test results
- Cannot delete or close
- Standard role for team members
Tester
- Can add/edit repository and test runs
- Can record test results
- Limited administrative access
- Focused on test execution
Guest (Read-Only)
- Can view content
- Cannot add, edit, or delete
- Cannot record results
- For stakeholders and viewers
Creating Custom Roles
- Navigate to Administration > Roles
- Click Create Role
- Enter role name
- For each application area, toggle:
- Add/Edit permission
- Delete permission
- Close permission
- Save role
- Assign to users in projects
Role Assignment
Roles can be assigned:
- Globally - User's system-wide default role
- Per-Project - Override global role for specific projects
- Via Groups - Inherit role from group membership
Assignment Priority:
- Explicit user permission (highest priority)
- Group permission
- Project default role
- User's global role
- System defaults (lowest priority)
Group-Based Permissions
Groups provide an efficient way to manage permissions for teams.
Group Structure
Creating Groups:
- Navigate to Administration > Groups
- Click Create Group
- Name the group (e.g., "QA Team", "Engineering")
- Add users to the group
- Save
Assigning Groups to Projects:
- Navigate to Project Settings > Members
- Click Add Group
- Select the group
- Configure group permissions:
- Access type (GLOBAL_ROLE or SPECIFIC_ROLE)
- Role (if using SPECIFIC_ROLE)
- Save
Group Permission Behavior
- All group members inherit the group's project permissions
- Individual permissions override group permissions
- Multiple groups - User gets highest permissions
- NO_ACCESS denial overrides group permissions
Use Cases
Department Access:
Group: "QA Department"
Projects: All testing projects
Role: Tester
Access Type: GLOBAL_ROLE
Project Team:
Group: "Project Phoenix Team"
Projects: Project Phoenix only
Role: Contributor
Access Type: SPECIFIC_ROLE
Stakeholders:
Group: "Executives"
Projects: All projects
Role: Guest (Read-Only)
Access Type: GLOBAL_ROLE
Permission Resolution
Understanding how TestPlanIt resolves permissions when multiple rules apply:
Resolution Order
-
System Admin Check
- If user has ADMIN access level → Full access to everything
- Overrides all other rules
-
Project Creator Check
- If user created the project → Full project access
- Overrides project-level permissions
-
Explicit NO_ACCESS Denial
- If user has NO_ACCESS for project → Access denied
- Overrides group and default access
-
Explicit User Permission
- Check user-specific project permission
- Takes precedence over group and defaults
-
Group Permission
- Check if user is in groups with project access
- Multiple groups → highest permissions win
-
Project Default Access
- Apply project's default access type
- Use default role if configured
-
System Default
- If no other rules match → Deny access
Permission Examples
Example 1: Simple Access
User: John (access level: USER)
Global Role: Tester
Project: Default Access Type = GLOBAL_ROLE
Result: John can access, with Tester permissions
Example 2: Specific Role Override
User: Sarah (access level: USER)
Global Role: Tester
Project: Sarah explicitly assigned as "Project Admin" role
Result: Sarah has Project Admin permissions (overrides global role)
Example 3: Group Access
User: Mike (access level: USER, no individual assignment)
Group: "QA Team" (assigned to project with Contributor role)
Project: Default Access Type = SPECIFIC_ROLE
Result: Mike can access via group, with Contributor permissions
Example 4: NO_ACCESS Denial
User: Jane (access level: PROJECTADMIN)
Project: Jane explicitly set to NO_ACCESS
Result: Jane cannot access, despite being a PROJECTADMIN
Example 5: Multiple Groups
User: Alex
Group 1: "Testers" → Tester role
Group 2: "Managers" → Manager role
Project: Both groups assigned
Result: Alex gets Manager permissions (highest)
Common Permission Scenarios
Scenario 1: New Employee Onboarding
Goal: Give new QA engineer access to testing projects
Steps:
- Create user account
- Set access level to USER
- Assign global role: Tester
- Add to group: "QA Team"
- Group provides access to relevant projects
Result: User can access and test assigned projects
Scenario 2: Confidential Project
Goal: Restrict project to specific team
Steps:
- Create project
- Set default access type: SPECIFIC_ROLE
- Set default role: Contributor
- Explicitly assign team members
- Or create dedicated group
Result: Only assigned users can access
Scenario 3: Temporary Contractor
Goal: Grant limited access for external contractor
Steps:
- Create user account
- Set access level: USER
- Assign global role: Guest (Read-Only)
- Add to specific projects with Guest role
- Set expiration reminder
Result: Contractor has view-only access
Scenario 4: Department Migration
Goal: Move team between projects
Steps:
- Create new group: "Team Alpha"
- Add all team members
- Assign group to new projects
- Remove from old projects
- One change updates entire team
Result: Efficient team management
Scenario 5: Revoking Access
Goal: Remove access for departing employee
Steps:
- Navigate to user management
- Option A: Set access level to NONE
- Option B: Set NO_ACCESS for all projects
- Option C: Deactivate account
- Remove from groups
Result: User has no access
Troubleshooting Permissions
"Access Denied" to Project
Check:
- User's system access level (must not be NONE)
- Project's default access type
- User's explicit project permission
- Group memberships
- NO_ACCESS denials
Solutions:
- Set access level to USER or higher
- Add user to project explicitly
- Add user to appropriate group
- Remove NO_ACCESS denial
- Change project to GLOBAL_ROLE if too restrictive
Cannot Modify Content
Check:
- Role permissions for the application area
- canAddEdit permission enabled
- User's effective role
- Item-specific restrictions
Solutions:
- Assign role with canAddEdit for relevant area
- Upgrade user's role
- Check if item is archived or locked
- Verify project access type
Group Members Not Getting Access
Check:
- Group properly assigned to project
- Group access type configured
- Role assigned to group (if SPECIFIC_ROLE)
- Users are active group members
Solutions:
- Verify group assignment in project settings
- Set appropriate access type for group
- Assign role if using SPECIFIC_ROLE
- Confirm users are in the group
Permissions Not Updated
Check:
- Browser cache
- User logged out/in
- Permission changes saved
- Session refreshed
Solutions:
- Hard refresh browser (Ctrl+Shift+R / Cmd+Shift+R)
- Log out and log back in
- Verify changes were saved
- Wait a moment for changes to propagate
Best Practices
Permission Design
- Start Restrictive - Begin with minimal access, add as needed
- Use Groups - Manage teams via groups, not individual assignments
- Consistent Roles - Use same role names across projects
- Document Rules - Document your permission strategy
- Regular Audits - Periodically review access rights
Role Management
- Limit Custom Roles - Too many roles become confusing
- Descriptive Names - Use clear, descriptive role names
- Template Roles - Create role templates for common patterns
- Permission Testing - Test roles before wide deployment
- Version Control - Track role permission changes
Group Organization
- Functional Groups - Organize by department or function
- Project Groups - Create project-specific teams when needed
- Temporary Groups - Use for short-term projects
- Group Hierarchies - Consider nested group structure
- Naming Conventions - Use consistent group naming
Security
- Principle of Least Privilege - Grant minimum necessary access
- Regular Reviews - Audit permissions quarterly
- Remove Promptly - Revoke access when no longer needed
- Separate Duties - Don't give one person all permissions
- Monitor Access - Track who accesses sensitive projects
Compliance
- Document Policies - Write down permission policies
- Access Logs - Enable and review access logs
- Separation - Separate production and test environments
- Audit Trail - Maintain audit trail of permission changes
- Compliance Reports - Generate regular access reports
Administrator Tools
User Management
Administration > Users:
- View all users
- Set system access levels
- Assign global roles
- Deactivate accounts
- Reset passwords (if applicable)
Role Management
Administration > Roles:
- Create custom roles
- Edit role permissions
- View role usage
- Delete unused roles
- Set default role
Group Management
Administration > Groups:
- Create groups
- Add/remove members
- View group projects
- Delete groups
- Audit group access
Project Settings
Project Settings > Members:
- View all members
- Add/remove users
- Configure access types
- Assign roles
- Manage groups
API and Programmatic Access
Permission information is accessible via API:
Get User Permissions:
GET /api/users/{userId}/permissions
Get Project Members:
GET /api/projects/{projectId}/members
Update User Project Permission:
PUT /api/model/UserProjectPermission/update
Content-Type: application/json
{
"where": {"userId_projectId": {"userId": "abc", "projectId": 123}},
"data": {
"accessType": "SPECIFIC_ROLE",
"roleId": 5
}
}
Related Documentation:
- User Management - Managing user accounts
- Groups - Group configuration
- Roles - Role management
- Projects - Project settings
- Administration - Admin overview