{% extends 'admin/layout.html.twig' %} {% block title %}{{ is_new ? 'New User' : 'Edit User' }} - KitscoApp{% endblock %} {% block page_title %}{{ is_new ? 'New User' : 'Edit User' }}{% endblock %} {% block content %}
{{ form_start(form, {'attr': {'class': 'space-y-6'}}) }}
{{ form_row(form.firstName) }}
{{ form_row(form.lastName) }}
{{ form_row(form.email) }}
{{ form_row(form.phone) }}

{{ is_new ? 'Password' : 'Change Password' }}

{% if not is_new %}

Leave blank to keep the current password.

{% endif %}
{{ form_widget(form.plainPassword.first, {'attr': {'placeholder': 'Password'}}) }}
{{ form_widget(form.plainPassword.second, {'attr': {'placeholder': 'Confirm'}}) }}
{{ form_errors(form.plainPassword) }}

Role

Higher roles inherit all permissions from lower roles.

{% set role_meta = { 'ROLE_SUPER_ADMIN': {'label': 'Super Admin', 'icon': 'bi-shield-lock-fill', 'color': 'purple', 'desc': 'Full system access, user management, CMS'}, 'ROLE_ADMIN': {'label': 'Admin', 'icon': 'bi-gear-fill', 'color': 'blue', 'desc': 'Settings, reports, all manager permissions'}, 'ROLE_MANAGER': {'label': 'Manager', 'icon': 'bi-people-fill', 'color': 'cyan', 'desc': 'Oversees shop and accounting operations'}, 'ROLE_ACCOUNTANT': {'label': 'Accountant', 'icon': 'bi-calculator-fill', 'color': 'green', 'desc': 'Invoices, payments, financial reports'}, 'ROLE_SHOPKEEPER': {'label': 'Shopkeeper', 'icon': 'bi-shop', 'color': 'orange', 'desc': 'Products, inventory, orders'}, 'ROLE_CUSTOMER': {'label': 'Customer', 'icon': 'bi-person-fill', 'color': 'gray', 'desc': 'Customer portal access only'} } %} {% set current_role = null %} {% for role in form.role %} {% if role.vars.checked %} {% set current_role = role.vars.value %} {% endif %} {% endfor %} {% set current_meta = current_role ? role_meta[current_role] : null %}
{% set icon_bg = { 'purple': 'bg-purple-100', 'blue': 'bg-blue-100', 'cyan': 'bg-cyan-100', 'green': 'bg-green-100', 'orange': 'bg-orange-100', 'gray': 'bg-gray-100' } %} {% set icon_text = { 'purple': 'text-purple-500', 'blue': 'text-blue-500', 'cyan': 'text-cyan-500', 'green': 'text-green-500', 'orange': 'text-orange-500', 'gray': 'text-gray-500' } %} {% set hover_bg = { 'purple': 'hover:bg-purple-50', 'blue': 'hover:bg-blue-50', 'cyan': 'hover:bg-cyan-50', 'green': 'hover:bg-green-50', 'orange': 'hover:bg-orange-50', 'gray': 'hover:bg-gray-50' } %} {% set selected_bg = { 'purple': 'bg-purple-50', 'blue': 'bg-blue-50', 'cyan': 'bg-cyan-50', 'green': 'bg-green-50', 'orange': 'bg-orange-50', 'gray': 'bg-gray-50' } %}
{{ form_errors(form.role) }}

Inactive users cannot log in to the system.

Cancel
{# Mark role field as rendered to prevent duplicate output #} {% do form.role.setRendered %} {{ form_end(form) }}
{% endblock %} {% block javascripts %} {{ parent() }} {% endblock %}