Skip to content

Implement comprehensive access control with role-based permissions #178

@Smartdevs17

Description

@Smartdevs17

Implement comprehensive access control with role-based permissions

Description

Context: Different users (merchants, subscribers, auditors, system admins) need different levels of access to subscription operations.

Current Limitation: Access control is minimal with only basic authorization checks, lacking granular permission management.

Expected Outcome: Implement a comprehensive role-based access control (RBAC) system with customizable roles, permissions, and permission inheritance.

Acceptance Criteria

  • Define roles: Merchant, Subscriber, Auditor, Admin with corresponding permissions
  • Implement RoleManager contract with role assignment and revocation
  • Add permission checks to all sensitive contract functions
  • Support role hierarchies (admin inherits all permissions)
  • Add permission delegation with limited scope and time
  • Implement multi-signature requirements for high-value operations
  • Add role change history for audit purposes
  • Create React Native UI for role management
  • Write tests for all permission scenarios

Technical Scope

Files Likely Affected:

  • contracts/access_control/src/lib.rs - New access control module
  • contracts/access_control/src/roles.rs - Role definitions
  • contracts/subscription/src/lib.rs - Updated authorization

APIs/Contracts Involved:

  • grant_role(user: Address, role: Role)
  • revoke_role(user: Address, role: Role)
  • has_permission(user: Address, permission: Permission) -> bool
  • delegate_permission(user: Address, permission: Permission, delegate: Address, duration: u64)

Edge Cases to Consider:

  • Role revocation while delegation is active
  • Circular role dependencies
  • Emergency access (kill switch)
  • Role assignment during contract upgrade

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programenhancementNew feature or requestsecuritySecurity related issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions