Brokeret LogoDocs
Forex CRM / Treasury/Staff Permissions

Staff Permissions

Configure treasury team roles, permissions, and notification thresholds.

Overview

Treasury uses a role-based permission system to control what staff members can do. Staff are assigned to teams and roles, with permissions defined at the role level.

Admin URL: /admin/treasury/settings/teams-roles

Staff Management

Adding Treasury Staff

Location: Treasury > Settings > StaffURL: /admin/treasury/settings/staff

To add a staff member to Treasury:

  1. Go to Settings > Staff
  2. Click "Add Staff"
  3. Search for the admin user
  4. Select a team and role
  5. Click "Add"

Removing Staff

From the staff list, click the ... menu on the staff member and select "Remove".


Teams

Teams are organizational groups for categorizing staff. They don't affect permissions but help organize your treasury team.

Default Teams:

  • General - Default team for all treasury officers
  • Deposits Team - Specialized team for handling deposit requests
  • Withdrawals Team - Specialized team for handling withdrawal requests
  • Transfers Team - Specialized team for handling transfer requests

Creating a Team

  1. Go to Settings > Teams & Roles
  2. Click "Create Team"
  3. Enter team name, color, and icon
  4. Click "Save"

Roles

Roles define what permissions a staff member has. Each staff member is assigned one role.

Default Roles

RoleDescriptionKey Permissions
Treasury OfficerBasic accessView, Approve Deposits/Withdrawals
Senior OfficerExtended access+ Decline, Process Transfers, Whitelisting
Treasury SupervisorManagement access+ Balance Operations, Vouchers, Manage Staff, Reports
Treasury AdminFull access+ Manage Methods, Manage Settings
Super AdminUnrestrictedAll permissions

Creating a Role

  1. Go to Settings > Teams & Roles
  2. Click "Create Role"
  3. Enter role name, color, and icon
  4. Select permissions from each category
  5. Click "Save"

Permission Categories

Access Level

PermissionDescription
super_adminFull unrestricted access to all Treasury features

View Access

PermissionDescription
viewCan access the Treasury dashboard
view_transactionsCan view all deposit and withdrawal transactions
view_walletsCan view wallet balances and details

Deposits

PermissionDescription
approve_depositsCan approve pending deposit requests
decline_depositsCan decline/reject deposit requests

Withdrawals

PermissionDescription
approve_withdrawalsCan approve pending withdrawal requests
decline_withdrawalsCan decline/reject withdrawal requests

Whitelisted Accounts

PermissionDescription
approve_whitelistedCan approve whitelisted account requests
reject_whitelistedCan reject whitelisted account requests
manage_whitelistedCan suspend, delete, or modify whitelisted accounts

Operations

PermissionDescription
process_transfersCan process transfer requests between accounts
balance_operationsCan perform quick balance adjustments (deposit, withdraw, deduct)
create_vouchersCan create new vouchers
manage_vouchersCan view, cancel, and manage existing vouchers

Administration

PermissionDescription
manage_methodsCan create and edit deposit/withdrawal methods
manage_staffCan configure staff access and permissions
manage_settingsCan change Treasury settings and configuration

Reports & Help

PermissionDescription
view_reportsCan access reports and analytics
export_reportsCan export reports to CSV/Excel
view_guidesCan access help guides and documentation

Notifications

PermissionDescription
receive_email_notificationsReceive email alerts for deposits, withdrawals, and other events above configured thresholds

Email Notifications for Staff

Staff with the receive_email_notifications permission will receive email alerts when transactions exceed configured thresholds.

How It Works

  1. Configure Thresholds:

    • Deposits: Settings > Deposits > "Notify Staff via Email Above"
    • Withdrawals: Settings > Withdrawals > "Notify Admin on Large Amount"
  2. Enable Permission:

    • Edit the role in Settings > Teams & Roles
    • Enable "Receive Email Notifications" under Notifications
  3. Trigger:

    • When a deposit/withdrawal is approved and exceeds the threshold
    • Email is sent to all eligible staff members

Email Content

The notification email includes:

  • Transaction type and action (e.g., "Deposit Approved")
  • Amount
  • User name and email
  • Transaction ID
  • Payment method
  • Date and time
  • Link to view details

Email Template

The notification uses the "Admin Notification - Generic" email template, which can be customized at:Admin > Settings > Email Templates > admin-notification


Checking Permissions Programmatically

// Get staff config for an admin
$staffConfig = TreasuryStaffConfig::where('admin_id', $adminId)->first();

// Check specific permission
if ($staffConfig->hasPermission('approve_deposits')) {
    // Can approve deposits
}

// Check if can receive notifications
if ($staffConfig->canReceiveEmailNotifications()) {
    // Send notification
}

// Check if super admin
if ($staffConfig->isSuperAdmin()) {
    // Has all permissions
}

Models

  • app/Models/Treasury/TreasuryStaffConfig.php - Staff configuration
  • app/Models/Treasury/TreasuryOption.php - Teams and roles

Controllers

  • app/Http/Controllers/Admin/Treasury/StaffController.php - Staff management
  • app/Http/Controllers/Admin/Treasury/TeamsRolesController.php - Teams & roles management

Views

  • resources/views/admin/treasury/settings/staff.blade.php - Staff list
  • resources/views/admin/treasury/settings/teams-roles.blade.php - Teams & roles list
  • resources/views/admin/treasury/settings/roles/create.blade.php - Create role form
  • resources/views/admin/treasury/settings/roles/edit.blade.php - Edit role form

Middleware

  • app/Http/Middleware/CheckTreasuryPermission.php - Permission checking middleware

Best Practices

  1. Principle of least privilege: Give staff only the permissions they need
  2. Use teams for organization: Group staff by function (deposits, withdrawals, etc.)
  3. Create custom roles: Don't modify default roles; create new ones for specific needs
  4. Enable notifications for supervisors: Senior staff should have email notifications enabled
  5. Set reasonable thresholds: Don't set notification thresholds too low to avoid email overload
  6. Regular audits: Periodically review staff permissions and remove unnecessary access
  7. Document role purposes: Add descriptions to custom roles for clarity