Skip to main content
SnailyCAD uses a comprehensive permissions system to control user access to various features and actions. Permissions can be assigned to individual users or granted through custom roles.

User Ranks

There are three primary user ranks:

USER

Standard user with permissions determined by assigned permissions and roles.

ADMIN

Administrative user with elevated permissions based on assigned permissions.

OWNER

Full access to all features and settings. Cannot be restricted.
OWNER rank users automatically bypass all permission checks and have full access to the CAD.

How Permissions Work

Permissions are evaluated based on:
  1. User rank - OWNER users have all permissions
  2. Direct user permissions - Permissions assigned directly to the user
  3. Role permissions - Permissions granted through assigned custom roles
A user has a permission if:
  • They are an OWNER, OR
  • The permission is in their direct permissions, OR
  • The permission is in any of their assigned roles

Permission Categories

Law Enforcement (LEO)

Permissions related to law enforcement activities.
Leo
boolean
Access to law enforcement features and the LEO dashboard.
ViewIncidents
boolean
View LEO incidents and reports.
ManageIncidents
boolean
Create, edit, and manage LEO incidents.
PurgeLeoIncidents
boolean
Permanently delete LEO incidents.
ViewImpoundLot
boolean
View impounded vehicles.
ManageImpoundLot
boolean
Impound and release vehicles.
ViewJail
boolean
View jailed citizens.
ManageJail
boolean
Arrest and release citizens from jail.
ViewCitizenLogs
boolean
View citizen activity logs.
DeleteCitizenRecords
boolean
Delete records from citizen profiles (arrests, tickets, warnings).
ViewLicenseExams
boolean
View license examination requests.
ManageLicenseExams
boolean
Approve or deny license examination requests.
ManageDMV
boolean
Manage DMV operations and vehicle registrations.
ManageBureauOfFirearms
boolean
Manage weapon registrations and firearm licenses.
ViewCallHistory
boolean
View call history.
ManageCallHistory
boolean
Edit and manage call history.
LiveMap
boolean
Access to the live map feature.
SetUserDefinedCallsignOnOfficer
boolean
Set custom callsigns for officers.
ManageAwardsAndQualifications
boolean
Assign awards and qualifications to officers.
LeoManageCustomFields
boolean
Manage custom fields in LEO context.
LeoManageCitizenProfile
boolean
Edit citizen profiles from LEO interface.

Dispatch

Permissions for dispatch operations.
Dispatch
boolean
Access to dispatch features and the dispatch dashboard.
ManageSmartSigns
boolean
Control smart traffic signs.
ManageSmartMotorwaySigns
boolean
Control smart motorway signs.

EMS/Fire Department

Permissions for emergency medical services and fire department.
EmsFd
boolean
Access to EMS/FD features and dashboard.
ViewEmsFdIncidents
boolean
View EMS/FD incidents.
ManageEmsFdIncidents
boolean
Create and manage EMS/FD incidents.
PurgeEmsFdIncidents
boolean
Permanently delete EMS/FD incidents.
DeclareCitizenDead
boolean
Declare citizens as deceased.
ViewDeadCitizens
boolean
View deceased citizens list.
ManageDeadCitizens
boolean
Manage deceased citizens records.
SetUserDefinedCallsignOnEmsFd
boolean
Set custom callsigns for EMS/FD units.

Citizen Services

Permissions for civilian business operations.
ViewTaxiCalls
boolean
View taxi service calls.
ManageTaxiCalls
boolean
Accept and manage taxi calls.
ViewTowCalls
boolean
View tow service calls.
ManageTowCalls
boolean
Accept and manage tow calls.
ViewTowLogs
boolean
View tow service logs.
CreateBusinesses
boolean
Create new businesses.

Administrative Permissions

Permissions for CAD administration and management.
ManageCADSettings
boolean
Access and modify CAD settings, features, and configuration.
ViewUsers
boolean
View user list and details.
ManageUsers
boolean
Edit user information and permissions.
BanUsers
boolean
Ban and unban users.
DeleteUsers
boolean
Permanently delete users.
ViewCitizens
boolean
View all citizens in the system.
ManageCitizens
boolean
Edit citizen information.
DeleteCitizens
boolean
Delete citizens.
ViewUnits
boolean
View all LEO and EMS/FD units.
ManageUnits
boolean
Edit unit information.
DeleteUnits
boolean
Delete units.
ManageUnitCallsigns
boolean
Manage unit callsigns.
ManageUnitRank
boolean
Manage unit ranks.
ViewBusinesses
boolean
View all businesses.
ManageBusinesses
boolean
Edit business information and approve/deny business applications.
DeleteBusinesses
boolean
Delete businesses.
ViewExpungementRequests
boolean
View expungement requests.
ManageExpungementRequests
boolean
Approve or deny expungement requests.
ViewNameChangeRequests
boolean
View name change requests.
ManageNameChangeRequests
boolean
Approve or deny name change requests.
ManagePendingWarrants
boolean
Approve or deny pending warrant requests.
ManageCourthousePosts
boolean
Manage courthouse posts and announcements.
ViewCustomFields
boolean
View custom fields configuration.
ManageCustomFields
boolean
Create and edit custom fields.
ViewCustomRoles
boolean
View custom roles.
ManageCustomRoles
boolean
Create and edit custom roles.
ImportCitizens
boolean
Import citizens from external sources.
ImportRegisteredVehicles
boolean
Import vehicle registrations.
ImportRegisteredWeapons
boolean
Import weapon registrations.
DeleteRegisteredVehicles
boolean
Delete vehicle registrations in bulk.
DeleteRegisteredWeapons
boolean
Delete weapon registrations in bulk.

Value Management

Permissions for managing various value types in the CAD.
ManageValueLicense
boolean
Manage license types and categories.
ManageValueGender
boolean
Manage gender values.
ManageValueEthnicity
boolean
Manage ethnicity values.
ManageValueVehicle
boolean
Manage vehicle makes, models, and related values.
ManageValueWeapon
boolean
Manage weapon types and related values.
ManageValueBloodGroup
boolean
Manage blood group values.
ManageValueBusinessRole
boolean
Manage business role types.
ManageValueCodes10
boolean
Manage 10-codes.
ManageValuePenalCode
boolean
Manage penal codes.
ManageValueDepartment
boolean
Manage departments.
ManageValueOfficerRank
boolean
Manage officer ranks.
ManageValueDivision
boolean
Manage divisions.
ManageValueDLCategory
boolean
Manage driver’s license categories.
ManageValueImpoundLot
boolean
Manage impound lot locations.
ManageValueVehicleFlag
boolean
Manage vehicle flag types.
ManageValueCitizenFlag
boolean
Manage citizen flag types.
ManageValueQualification
boolean
Manage qualification types.
ManageValueCallType
boolean
Manage 911 call types.
ManageValueAddress
boolean
Manage address values.
ManageValueEmergencyVehicle
boolean
Manage emergency vehicle types.
ManageValueAddressFlag
boolean
Manage address flag types.
ManageValueVehicleTrimLevel
boolean
Manage vehicle trim levels.
ManageValueWeaponFlag
boolean
Manage weapon flag types.

Default Permission Sets

SnailyCAD provides default permission sets for common roles:

Law Enforcement Default Permissions

[
  "Leo",
  "ViewIncidents",
  "ManageIncidents",
  "ViewImpoundLot",
  "ManageImpoundLot",
  "ViewJail",
  "ManageJail",
  "ViewCallHistory",
  "ManageCallHistory",
  "ViewLicenseExams",
  "ManageLicenseExams",
  "ManageDMV",
  "ManageBureauOfFirearms",
  "DeleteCitizenRecords",
  "ViewCitizenLogs",
  "ManageWarrants",
  "ManageAwardsAndQualifications",
  "LeoManageCustomFields",
  "LeoManageCitizenProfile"
]

Dispatch Default Permissions

[
  "Dispatch",
  "LiveMap"
]

EMS/FD Default Permissions

[
  "EmsFd",
  "DeclareCitizenDead",
  "ViewEmsFdIncidents",
  "ManageEmsFdIncidents",
  "ViewDeadCitizens",
  "ManageDeadCitizens"
]

Tow Default Permissions

[
  "ViewTowCalls",
  "ManageTowCalls",
  "ViewTowLogs",
  "CreateBusinesses"
]

Taxi Default Permissions

[
  "ViewTaxiCalls",
  "ManageTaxiCalls"
]

Admin Default Permissions

[
  // Management
  "ViewUsers",
  "ManageUsers",
  "BanUsers",
  "DeleteUsers",
  "ViewCitizens",
  "ManageCitizens",
  "DeleteCitizens",
  "ViewUnits",
  "ManageUnits",
  "DeleteUnits",
  "ManageUnitCallsigns",
  "ManageAwardsAndQualifications",
  "ViewBusinesses",
  "ManageBusinesses",
  "DeleteBusinesses",
  "ViewExpungementRequests",
  "ManageExpungementRequests",
  "ViewNameChangeRequests",
  "ManageNameChangeRequests",
  "ViewCustomFields",
  "ManageCustomFields",
  "ManageCustomRoles",
  "ViewCustomRoles",
  "ManageUnitRank",
  
  // Import
  "ImportCitizens",
  "ImportRegisteredVehicles",
  "ImportRegisteredWeapons",
  
  // All Value Management permissions
  "ManageValueLicense",
  "ManageValueGender",
  "ManageValueEthnicity",
  "ManageValueVehicle",
  "ManageValueWeapon",
  "ManageValueBloodGroup",
  "ManageValueBusinessRole",
  "ManageValueCodes10",
  "ManageValuePenalCode",
  "ManageValueDepartment",
  "ManageValueOfficerRank",
  "ManageValueDivision",
  "ManageValueDLCategory",
  "ManageValueImpoundLot",
  "ManageValueVehicleFlag",
  "ManageValueCitizenFlag",
  "ManageValueQualification",
  "ManageValueCallType",
  "ManageValueAddress",
  "ManageValueEmergencyVehicle",
  "ManageValueAddressFlag",
  "ManageValueVehicleTrimLevel"
]

Courthouse Default Permissions

[
  "ViewExpungementRequests",
  "ManageExpungementRequests",
  "ViewNameChangeRequests",
  "ManageNameChangeRequests",
  "ManagePendingWarrants",
  "ManageCourthousePosts"
]

Managing Permissions

Assigning Permissions to Users

  1. Navigate to Admin > User Management
  2. Click on a user to edit
  3. Select permissions from the available list
  4. Save changes

Creating Custom Roles

  1. Navigate to Admin > Custom Roles
  2. Click Create Role
  3. Name the role and select permissions
  4. Save the role
  5. Assign the role to users

Discord Role Integration

Permissions can be automatically granted based on Discord roles:
  1. Configure Discord integration (see Discord Integration)
  2. Map Discord roles to SnailyCAD permissions
  3. Users with matching Discord roles automatically receive the configured permissions

Best Practices

Use Custom Roles

Group related permissions into custom roles for easier management.

Principle of Least Privilege

Only grant permissions that users need for their role.

Regular Audits

Periodically review user permissions to ensure they’re still appropriate.

Document Changes

Keep track of permission changes using the audit log.

Troubleshooting

User Can’t Access a Feature

  1. Check the user’s rank (OWNER has all permissions)
  2. Verify the user has the required permission directly assigned
  3. Check if any of the user’s roles include the permission
  4. Review audit logs for recent permission changes

Permission Not Taking Effect

  1. Have the user log out and log back in
  2. Verify the permission name matches exactly (case-sensitive)
  3. Check for conflicting CAD feature settings
  4. Review Discord role mappings if using Discord integration

Build docs developers (and LLMs) love