ExtBase already comes with a domain model for the existing table fe_user. This domain model is:
Tx_Extbase_Domain_Model_FrontendUser
It contains all default fe_users fields that come with TYPO3.
If you have extended fe_users with your own fields, you also have to extend the Tx_Extbase_Domain_Model_FrontendUser domain model and the associated repository so it knows the new fields you have added to fe_users.
The associated repository is:
Tx_Extbase_Domain_Repository_FrontendUserRepository
You have to set the storage PID(s) for the repository, so it can find your fe_users.
For controller actions used in frontend plugins use:
plugin.your_plugin {
persistence {
storagePid = somePid, anotherPid
}
}
If controller actions used in backend modules use:
module.your_module {
persistence {
storagePid = somePid, anotherPid
}
}
As far as I know it is not possible to use the same dialogs which come with TYPO3 for your own extension, so you have to create your own actions (new/edit/show) and forms in your backend module.
[Edit]
By default, ExtBase assumes, that all fe_users have assigned a record type. When you open one of your frontend users, you will see the tab "extended" contains a dropdown field, which is labeled "record type". If this field is not set, ExtBase will not be able to find the fe_user by using one of the find-methods from the repository.
You should set the record type for all fe_users (recommended way) or you can disable the mapping to the field by using the following TS in your setup
config.tx_extbase.persistence.classes {
Tx_Extbase_Domain_Model_FrontendUser {
mapping.recordType >
}
}
For newly created fe_users or fe_groups, you can set the default value for the field "record type" by adding the following TS to your root pageTS
TCAdefaults.fe_users.tx_extbase_type = Tx_Extbase_Domain_Model_FrontendUser
TCAdefaults.fe_groups.tx_extbase_type = Tx_Extbase_Domain_Model_FrontendUserGroup