feat: Implement SMS sending functionality with KavehNegar and Rangineh providers
- Add SendSmsMessage class for encapsulating SMS message data. - Create KavehNegarProvider and RanginehProvider classes implementing SmsProviderInterface for sending SMS. - Implement SmsLogRepository and SmsTemplateRepository for managing SMS logs and templates. - Develop SendSmsHandler for handling SMS sending messages. - Create SmsService to manage SMS dispatching and logging. - Add UserProfileController for managing user profiles with CRUD operations. - Implement UserProfile entity and repository for user profile data management. - Update symfony.lock and bootstrap.php for project dependencies and environment setup.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
security:
|
||||
password_hashers:
|
||||
App\Auth\Entity\User:
|
||||
algorithm: auto
|
||||
|
||||
providers:
|
||||
app_user_provider:
|
||||
entity:
|
||||
class: App\Auth\Entity\User
|
||||
property: mobileNumber
|
||||
|
||||
firewalls:
|
||||
dev:
|
||||
pattern: ^/(_profiler|_wdt|assets|build)/
|
||||
security: false
|
||||
|
||||
health:
|
||||
pattern: ^/health$
|
||||
security: false
|
||||
|
||||
public_endpoints:
|
||||
pattern: ^/(api/v1/user/(send-code|verify-code|register)|oauth/token$|session/token|api/v1/categorys/|api/v1/doctors$|api/v1/clinics$|api/v1/clinic/doctor-list/|api/v1/clinic-pro/doctor-addresses/|api/v1/appointment-slots|api/v1/comments/|api/v1/rate/|api/v1/blogs$)
|
||||
stateless: true
|
||||
security: false
|
||||
|
||||
payment_callback:
|
||||
pattern: ^/api/v1/(payment|subscription-payment)/callback/
|
||||
stateless: true
|
||||
security: false
|
||||
|
||||
api:
|
||||
pattern: ^/(api|oauth)/
|
||||
stateless: true
|
||||
provider: app_user_provider
|
||||
custom_authenticators:
|
||||
- App\Auth\Security\PasswordAuthenticator
|
||||
jwt: ~
|
||||
|
||||
access_control:
|
||||
- { path: ^/health$, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/user/send-code, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/user/verify-code, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/user/register, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/user/login, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/appointment-slots, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/comments/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/rate/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/blogs$, roles: PUBLIC_ACCESS }
|
||||
- path: '^/api/v1/blog/[^/]+$'
|
||||
methods: [GET]
|
||||
roles: PUBLIC_ACCESS
|
||||
- { path: ^/oauth/token$, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/oauth/token/refresh$, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/session/token, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/payment/callback/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/subscription-payment/callback/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/doc, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/categorys/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/doctors$, roles: PUBLIC_ACCESS }
|
||||
- path: '^/api/v1/doctor/[^/]+$'
|
||||
methods: [GET]
|
||||
roles: PUBLIC_ACCESS
|
||||
- { path: ^/api/v1/clinic/doctor-list/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/clinic-pro/doctor-addresses/, roles: PUBLIC_ACCESS }
|
||||
- { path: ^/api/v1/clinics$, roles: PUBLIC_ACCESS }
|
||||
- path: '^/api/v1/clinic/[^/]+$'
|
||||
methods: [GET]
|
||||
roles: PUBLIC_ACCESS
|
||||
- { path: ^/api/v1/user/\d+$, methods: [DELETE], roles: ROLE_ADMIN }
|
||||
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
|
||||
- { path: ^/oauth/userinfo, roles: IS_AUTHENTICATED_FULLY }
|
||||
- { path: ^/oauth/logout, roles: IS_AUTHENTICATED_FULLY }
|
||||
|
||||
when@test:
|
||||
security:
|
||||
password_hashers:
|
||||
App\Auth\Entity\User:
|
||||
algorithm: auto
|
||||
cost: 4
|
||||
Reference in New Issue
Block a user