Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
git /
cesa-v3 /
docs /
specs /
Delete
Unzip
Name
Size
Permission
Date
Action
echasl23-admin-login-design.md
1.89
KB
-rw-r--r--
2026-05-18 12:51
echasl23-admin-login-requirements.md
2.43
KB
-rw-r--r--
2026-05-18 12:51
mail-queue-monitor-design.md
2.64
KB
-rw-r--r--
2026-05-18 12:51
mail-queue-monitor-requirements.md
2.04
KB
-rw-r--r--
2026-05-18 12:51
member-portal-login-design.md
2.41
KB
-rw-r--r--
2026-05-20 09:05
member-portal-login-requirements.md
1.48
KB
-rw-r--r--
2026-05-20 09:05
member-transformation-declaration-design.md
2.84
KB
-rw-r--r--
2026-05-20 09:05
member-transformation-declaration-requirements.md
2.02
KB
-rw-r--r--
2026-05-20 09:05
Save
Rename
# ECHASL23 (PHPMaker) users — design **System:** cesa-v3 **Requirements:** [echasl23-admin-login-requirements.md](echasl23-admin-login-requirements.md) ## Data model | DB column | Entity property | Notes | |-----------|-----------------|-------| | `adminuserid` | `id` | PK | | `adminusername` | `username` | Unique login | | `adminpassword` | `password` | 32-char MD5 hex | | `email` | `email_address` | | | `level` | `access_level` | PHPMaker user level ID | | `activated` | `activated` | Must be true to log in | | `pwdchanged` | `pwdchanged` | Updated when password changes | | `profile` | `profile` | Serialized PHPMaker profile (not edited in Sonata) | Doctrine maps `App\UserBundle\Entity\UserOld` via annotation mapping under `src/UserBundle/Entity` (added to `doctrine.yaml`). ## Security ``` form_login → chain provider ├─ users (UserList / user_list) └─ echasl23_users (UserOld / echasl23, activated only) ``` - **Password hasher:** `Echasl23Md5PasswordHasher` registered for `UserOld` only; `UserList` keeps `auto`. - **Roles:** `Echasl23UserService::resolveRoles(UserOld)` — level < 0 → super-admin role set; otherwise base staff roles including `ROLE_ADMIN` and `ROLE_SONATA_ADMIN`. ## Services | Class | Responsibility | |-------|----------------| | `Echasl23UserService` | MD5 hash on save, `resolveRoles`, `applyPlainPassword`, `touchPasswordChanged` | | `Echasl23Md5PasswordHasher` | Symfony `PasswordHasherInterface` for login | | `Echasl23UserProvider` | Entity provider; rejects inactive users | ## Sonata - **Admin:** `UserOldAdmin` — model `UserOld`, CRUD via default Sonata controller. - **Hooks:** `prePersist` / `preUpdate` delegate to `Echasl23UserService` for password hashing. - **Form:** `plainPassword` (unmapped) on entity for create/edit only. ## Tests - `tests/Unit/UserBundle/Echasl23Md5PasswordHasherTest.php` - `tests/Unit/UserBundle/Echasl23UserServiceTest.php`