User Management
User management in EmberBlocks allows you to control who can access your app and what they can do. Manage team members, create custom roles, and optionally connect to an external user table for additional user data.
Overview
Section titled “Overview”The Users tab in your app editor has three sections:
| Section | Purpose |
|---|---|
| Members | View and manage app users |
| Roles | Create and configure access roles |
| External | Connect to an external user table |
User Roles
Section titled “User Roles”Roles determine what users can do in your app.
Default Roles
Section titled “Default Roles”Every app starts with two default roles:
| Role | Permissions | Notes |
|---|---|---|
| Admin | Full access including billing, user management, role creation, and app deletion | Fixed, cannot be modified |
| User | Published app access only | Default role for new invites |
Admin Role
Section titled “Admin Role”The Admin role is special:
- Cannot be edited or deleted
- Has access to all features including:
- Editor (Layout, Data, Actions tabs)
- User management
- Role creation and deletion
- Billing information
- App deletion
- The app creator is automatically assigned Admin
User Role
Section titled “User Role”The default User role:
- Can only access the published version of the app
- Cannot see the editor or make changes
- Cannot invite other users
- Perfect for end users who consume data
Custom Roles
Section titled “Custom Roles”Create custom roles to define specific permission levels for your team.
Creating a Custom Role
Section titled “Creating a Custom Role”- Navigate to the Users tab
- Click Roles in the sidebar
- Click Create Role
- Configure the role:
| Field | Required | Description |
|---|---|---|
| Name | Yes | Role name (e.g., “Manager”, “Analyst”) |
| Description | No | Explain what this role is for |
| Edit App & Invite Users | No | Toggle to grant editor access |
The “Edit App & Invite Users” Permission
Section titled “The “Edit App & Invite Users” Permission”This is the key permission that separates editors from users:
| Permission | Enabled | Disabled |
|---|---|---|
| Access app editor | Yes | No |
| Create/edit views | Yes | No |
| Manage components | Yes | No |
| Configure data sources | Yes | No |
| Create/edit actions | Yes | No |
| Invite users | Yes | No |
| Manage user roles | Yes | No |
| Access published app | Yes | Yes |
Example Custom Roles
Section titled “Example Custom Roles”| Role | Edit Permission | Use Case |
|---|---|---|
| Manager | Enabled | Team leads who build and manage the app |
| Analyst | Disabled | Users who view reports and dashboards |
| Contractor | Disabled | External users with limited access |
| Support | Enabled | Support team who can edit but not delete |
Editing Roles
Section titled “Editing Roles”- Click on a role in the list
- Update the name, description, or permissions
- Click Save
Deleting Roles
Section titled “Deleting Roles”- Click the menu icon on the role card
- Select Delete
- Confirm the deletion
Managing Members
Section titled “Managing Members”Viewing Members
Section titled “Viewing Members”The Members section displays all users with access to your app:
| Column | Description |
|---|---|
| User | Name and email |
| Role | Assigned role |
| Status | Accepted or Pending invitation |
| Joined | When they joined or were invited |
Searching and Filtering
Section titled “Searching and Filtering”- Use the search box to find users by name or email
- Filter by role to see specific groups
- Sort by name, role, or join date
Inviting Users
Section titled “Inviting Users”To invite new users:
- Navigate to Users > Members
- Click Invite User
- Fill in the invitation form:
| Field | Required | Description |
|---|---|---|
| Yes | User’s email address | |
| First Name | No | User’s first name |
| Last Name | No | User’s last name |
| Role | Yes | Select a role to assign |
| Profile Image | No | Upload or link an avatar |
- Click Send Invite
The user receives an email invitation to join the app.
Invitation Status
Section titled “Invitation Status”| Status | Description |
|---|---|
| Pending | Invitation sent, waiting for user to accept |
| Accepted | User has joined the app |
Editing User Details
Section titled “Editing User Details”- Click on a user in the list
- Update their details:
- First name
- Last name
- Role assignment
- Profile image
- Click Save
Changing User Roles
Section titled “Changing User Roles”- Find the user in the members list
- Click the role dropdown
- Select the new role
- Changes apply immediately
Removing Users
Section titled “Removing Users”- Click the menu icon on the user row
- Select Remove
- Confirm the removal
Bulk Role Assignment
Section titled “Bulk Role Assignment”For managing many users:
- Select multiple users using checkboxes
- Click Change Role in the bulk actions bar
- Select the new role
- Apply to all selected users
External User Table
Section titled “External User Table”Connect your app members to an external database table for additional user data.
Why Use External User Tables?
Section titled “Why Use External User Tables?”Link app members to your existing user data to:
- Access additional user fields (department, manager, etc.)
- Use external user data in formulas via
$user - Keep user data synchronized with your main database
- Avoid duplicating user information
How It Works
Section titled “How It Works”- Your app members are stored in EmberBlocks
- Each member has an
external_row_idfield - This ID links to a row in your external table
- The external table’s fields become available via
$user
Setting Up External User Connection
Section titled “Setting Up External User Connection”- Navigate to Users > External
- Select a connected database
- Choose the external user table
- Select the key field to match on:
| Field | Description |
|---|---|
| Key Field | The field in the external table that matches external_row_id |
Common key fields:
email- Match by email addressuser_id- Match by unique IDemployee_id- Match by employee identifier
Linking Members to External Records
Section titled “Linking Members to External Records”For each app member, set their external_row_id:
- Edit the member
- Set the External Row ID to match the key field value
- Save changes
Example:
- External table has
emailas key field - Member email:
john@company.com - Set external_row_id:
john@company.com
Accessing External User Data
Section titled “Accessing External User Data”Once linked, external fields are available in formulas:
{{$user.department}}{{$user.manager_name}}{{$user.hire_date}}Preview External Data
Section titled “Preview External Data”In the External settings, you can preview:
- Which members are linked
- What external data is available
- Any unmatched members
Formula Context
Section titled “Formula Context”User data is available throughout your app via the $user variable:
Built-in Fields
Section titled “Built-in Fields”| Field | Description |
|---|---|
$user.id | EmberBlocks user ID |
$user.email | User’s email address |
$user.first_name | User’s first name |
$user.last_name | User’s last name |
$user.role | User’s role name |
$user.image | Profile image URL |
External Fields
Section titled “External Fields”If an external user table is connected:
{{$user.department}}{{$user.location}}{{$user.employee_id}}Example Formulas
Section titled “Example Formulas”Filter data by department:
{{FILTER(tasks, tasks.department = $user.department)}}Show manager-specific content:
{{IF($user.is_manager, 'View Team Reports', 'View My Reports')}}Personalized greeting:
Welcome, {{$user.first_name}}!Permissions Best Practices
Section titled “Permissions Best Practices”Start Restrictive
Section titled “Start Restrictive”- Begin with minimal permissions
- Add access as needed
- Use custom roles for specific team needs
Role Planning
Section titled “Role Planning”Before creating roles, consider:
- Who needs to edit the app?
- Who only needs to view data?
- Are there different viewing permissions needed?
- Should anyone be able to invite others?
Regular Audits
Section titled “Regular Audits”Periodically review:
- Users who haven’t accessed the app
- Pending invitations that should be revoked
- Roles that are no longer needed
- Permissions that may be too broad
Documentation
Section titled “Documentation”- Add descriptions to custom roles
- Document what each role is for
- Keep a record of role assignments
Security Considerations
Section titled “Security Considerations”Data Access
Section titled “Data Access”- Users only see data based on their role
- Editor access grants full data visibility
- Use component visibility formulas for row-level filtering
Sensitive Data
Section titled “Sensitive Data”- Be cautious with Admin role assignment
- Regularly review who has editor access
- Remove access promptly when users leave
External Connections
Section titled “External Connections”- External user tables expose database fields
- Only include necessary fields in your user table
- Avoid exposing sensitive internal data
Troubleshooting
Section titled “Troubleshooting”Common Issues
Section titled “Common Issues”| Issue | Cause | Solution |
|---|---|---|
| Can’t invite users | Not Admin or Editor | Request appropriate role |
| Invitation not received | Email issues | Check spam folder, resend invitation |
| External data not showing | Missing link | Verify external_row_id matches |
| Role changes not working | Page cache | Refresh the page |
User Can’t Access App
Section titled “User Can’t Access App”- Check they’ve accepted the invitation
- Verify their role has appropriate permissions
- Ensure the app is published (for User role)
- Check for any visibility formulas hiding content
External Data Not Loading
Section titled “External Data Not Loading”- Verify the database connection is active
- Check the key field mapping is correct
- Ensure external_row_id is set for the member
- Confirm the external table has matching data
Related Topics
Section titled “Related Topics”- App Settings - Configure app properties
- Apps - Learn about app structure and publishing
- Formulas - Use $user in dynamic expressions
- Database Connections - Connect external databases