* Store users: Ensure the last owner cannot be downgraded
Changes the behaviour of the `AddOrUpdateStoreUser` method to throw errors for the failure cases, so that the UI and API can report the actual problem. A role change might fail if the user already has that role or if they are the last owner of the store.
* Cleanup code
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Adding endpoint in Greenfield to allow server email settings
* Adding related swagger file
* Refactoring EmailSettingsData to be more readable
* Adding server email masking
* Adding tests
* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.serveremail.json
Co-authored-by: d11n <mail@dennisreimann.de>
* Masking smtp server email returned over greenfield api and test
* Retaining password if password mask is used
* Remove magic string *****
* Flatten request for server's settings. Fix bug on shared setting instances
* Remove useless doc
* Simplify code
* Fix Store Email settings page
---------
Co-authored-by: d11n <mail@dennisreimann.de>
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* HTML lang setting and Head tags for POS and Crowdfund public pages
* updates #6229
* updates 6229
* resolve conflict
* updated according to Nicolas' recommendations
* updates #6229
* Add RawMeta method in safe.cs
* ...
* resolve conflicts
* resolve conflict
* resolve conflicts
* Updates as Nicolas request
* updates
---------
Co-authored-by: d11n <mail@dennisreimann.de>
* App: Add events which the app subscribes to
Various events, which are relevant for the app to react to changes made on the server.
* Refactor events
* Do not extend NewBlockEvent
* Refactoring events
* Add store role events
* Refactoring: Rename StoreUserEvent
* Fix: Subscribe to UserEvent.Invited
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>