Sharing and Permissions
Tanda provides a powerful sharing system that allows you to collaborate with external users while maintaining security and control over your resources.
Overview
The sharing system enables you to:
- Invite external collaborators to specific projects or SOWs
- Grant different levels of access based on user roles
- Maintain privacy by only sharing specific resources
- Track all access changes for compliance
Access Levels
Tanda supports five different access levels, each with specific permissions:
Owner
- Full control over the resource
- Can delete the resource
- Can manage all team members
- Can transfer ownership
- Can change any settings
Editor
- Can edit all content
- Can add and remove team members (except owners)
- Can create and modify sub-resources
- Cannot delete the resource
- Cannot transfer ownership
Approver
- Can approve or reject changes
- Can add comments and feedback
- Can view all content
- Receives notifications about updates
- Cannot edit content directly
Viewer
- Can view all content
- Can add comments
- Can download and export
- Receives notifications about major updates
- Cannot make any changes
Follower
- Receives notifications about changes
- Can view public information
- Has limited access to content
- Useful for stakeholders who need updates
Inviting Collaborators
From a Project
- Navigate to your project
- Click on the "Access" tab
- Click "Invite People"
- Enter the email address of the person you want to invite
- Select their access level
- Optionally add a personal message
- Click "Send Invitation"
From a SOW
- Open your Statement of Work
- Click on the "Access" tab
- Click "Invite People"
- Enter the email address
- Choose the appropriate access level
- Add an optional message
- Send the invitation
Invitation Options
When inviting someone to a project, you can choose to:
- Grant access to all SOWs - The invited user will automatically have access to all current and future SOWs in the project
- Project only - The user will only have access to the project level, not individual SOWs
Accepting Invitations
For New Users
- Click the invitation link in the email
- You'll see details about what you're being invited to
- Click "Create new account"
- Sign up with the email address that received the invitation
- You'll be automatically redirected back to accept the invitation
- Click "Accept Invitation" to gain access
For Existing Users
- Click the invitation link in the email
- Sign in with your existing account
- The system will verify your email matches the invitation
- Click "Accept Invitation" to gain access
- The resource will appear in your dashboard
Managing Access
Viewing Current Access
In the "Access" tab of any project or SOW, you can see:
- All users who have access
- Their current access level
- Who granted them access and when
- Any expiration dates
Changing Access Levels
- Find the user in the access list
- Click on their current access level dropdown
- Select the new access level
- The change takes effect immediately
Revoking Access
- Find the user in the access list
- Click the trash icon next to their name
- Confirm the removal
- The user will immediately lose access
Resending Invitations
If someone didn't receive their invitation:
- Find the pending invitation in the access list
- Click the refresh icon
- A new email will be sent
Shared Resources View
Resources that have been shared with you appear in the "Shared with me" section of your dashboard. This includes:
- Projects and SOWs from outside your organization
- Resources where you're not the owner
- Clear indication of your access level
Security Considerations
Email Verification
- Users must sign in with the exact email address that received the invitation
- This ensures invitations can't be forwarded to unauthorized users
Organization Isolation
- Sharing a specific resource doesn't grant access to other resources in the organization
- Each invitation is resource-specific
Audit Trail
- All access changes are logged
- You can track who granted access, when, and what changes were made
- Useful for compliance and security reviews
Access Inheritance
- Project-level access can optionally cascade to all SOWs
- SOW access doesn't grant project access
- Inheritance can be controlled per invitation
Best Practices
- Use appropriate access levels - Grant only the permissions needed
- Add context with messages - Include why you're inviting someone
- Review access regularly - Remove access when no longer needed
- Set expiration dates - For temporary collaborations
- Document access decisions - Use the audit trail for compliance
Troubleshooting
Invitation Not Received
- Check spam folder
- Verify the email address is correct
- Use the resend function
- Check if the user already has an account with a different email
Can't Accept Invitation
- Ensure you're signing in with the invited email
- Check if the invitation has expired
- Verify you're not already signed in with a different account
Missing Shared Resources
- Refresh your dashboard
- Check the "Shared with me" section
- Ensure you've accepted the invitation
- Contact the resource owner if issues persist
API Integration
Developers can integrate sharing functionality using our API:
// Invite a user to a SOW
const response = await fetch('/api/sow/{sowId}/invitations', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_TOKEN'
},
body: JSON.stringify({
email: 'collaborator@example.com',
accessLevel: 'editor',
message: 'Please review this SOW draft',
expiresAt: '2024-12-31T23:59:59Z'
})
});
See the API documentation for complete details on programmatic access management.