daevin 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/Daevin_test/.editorconfig +15 -0
- package/Daevin_test/.env.example +92 -0
- package/Daevin_test/.gitattributes +10 -0
- package/Daevin_test/CODE_OF_CONDUCT.md +3 -0
- package/Daevin_test/CONTRIBUTING.md +3 -0
- package/Daevin_test/LICENSE +21 -0
- package/Daevin_test/README.md +314 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/ApiLoginProxyForWebClientAction.php +52 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/ApiLogoutAction.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/ApiRefreshProxyForWebClientAction.php +47 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/ForgotPasswordAction.php +43 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/GetAuthenticatedUserAction.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/RegisterUserAction.php +39 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/ResetPasswordAction.php +61 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/SendVerificationEmailAction.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/VerifyEmailAction.php +43 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/WebLoginAction.php +46 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Actions/WebLogoutAction.php +17 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Classes/LoginCustomAttribute.php +97 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Configs/appSection-authentication.php +117 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Exceptions/EmailNotVerifiedException.php +12 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Exceptions/InvalidEmailVerificationDataException.php +12 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Exceptions/InvalidResetPasswordTokenException.php +12 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Exceptions/LoginFailedException.php +12 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Exceptions/RefreshTokenMissingException.php +12 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Mails/ForgotPassword.php +32 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Mails/Templates/forgot-password.blade.php +73 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Middlewares/RedirectIfAuthenticated.php +35 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Notifications/EmailVerified.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Notifications/PasswordReset.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Notifications/VerifyEmail.php +49 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Notifications/Welcome.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Providers/AuthServiceProvider.php +76 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Providers/MainServiceProvider.php +32 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Providers/MiddlewareServiceProvider.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/README.md +1 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/CallOAuthServerTask.php +36 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/CreatePasswordResetTokenTask.php +14 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/CreateUserByCredentialsTask.php +34 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/LoginTask.php +14 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/MakeRefreshCookieTask.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/SendVerificationEmailTask.php +16 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Stubs/oauth-private.key +51 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Stubs/oauth-public.key +14 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/TestCase.php +18 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/CreatePasswordResetTokenTaskTest.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/CreateUserByCredentialsTaskTest.php +42 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/ForgotPasswordActionTest.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/LoginCustomAttributeTest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/RedirectIfAuthenticatedMiddlewareTest.php +44 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/RegisterUserActionTest.php +64 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/ResetPasswordActionTest.php +83 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/SendVerificationEmailTaskTest.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/WebLoginActionTest.php +75 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/Traits/AuthenticationTrait.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/ForgotPasswordController.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/GetAuthenticatedUserController.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/LoginProxyForWebClientController.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/LogoutController.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/RefreshProxyForWebClientController.php +35 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/RegisterUserController.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/ResetPasswordController.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/SendVerificationEmailController.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Controllers/VerifyEmailController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/ForgotPasswordRequest.php +50 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/GetAuthenticatedUserRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/LoginProxyPasswordGrantRequest.php +57 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/LogoutRequest.php +51 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/RefreshProxyRequest.php +51 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/RegisterUserRequest.php +61 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/ResetPasswordRequest.php +55 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/SendVerificationEmailRequest.php +56 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Requests/VerifyEmailRequest.php +51 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/ForgotPassword.v1.public.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/GetAuthenticatedUser.v1.private.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/LoginProxyForWebClient.v1.public.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/LoginUsingCredentialGrant.v1.public.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/LoginUsingPasswordGrant.v1.private.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/Logout.v1.public.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/RefreshProxyForWebClient.v1.public.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/RegisterUser.v1.private.php +38 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/ResetPassword.v1.public.php +37 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/SendVerificationEmail.v1.public.php +32 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Routes/VerifyEmail.v1.public.php +35 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/ApiTestCase.php +74 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/ApiLoginProxyForWebClientTest.php +129 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/ApiLogoutTest.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/ApiRefreshProxyForWebClientTest.php +86 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/ForgotPasswordTest.php +56 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/GetAuthenticatedUserTest.php +76 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/RegisterUserTest.php +208 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/ResetPasswordTest.php +79 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/SendVerificationEmailTest.php +95 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/Stubs/oauth-private.key +51 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/Stubs/oauth-public.key +14 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/API/Tests/Functional/VerifyEmailTest.php +84 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Controllers/LoginController.php +39 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Controllers/LogoutController.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Requests/LoginRequest.php +54 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Requests/LogoutRequest.php +50 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Routes/GetLogin.v1.public.php +8 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Routes/PostLogin.v1.public.php +8 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Routes/PostLogout.php +7 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/UI/WEB/Views/login.blade.php +121 -0
- package/Daevin_test/app/Containers/AppSection/Authentication/composer.json +11 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/AssignRolesToUserAction.php +32 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/AttachPermissionsToRoleAction.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/AttachPermissionsToUserAction.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/CreatePermissionAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/CreateRoleAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/DeleteRoleAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/DetachPermissionsFromRoleAction.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/DetachPermissionsFromUserAction.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/FindPermissionAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/FindRoleAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/GetAllPermissionsAction.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/GetAllRolesAction.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/GetRolePermissionsAction.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/GetUserPermissionsAction.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/GetUserRolesAction.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/RevokeRolesFromUserAction.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/SyncPermissionsOnRoleAction.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Actions/SyncUserRolesAction.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Configs/appSection-authorization.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Configs/permission.php +161 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Factories/PermissionFactory.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Factories/RoleFactory.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Migrations/2016_12_29_201047_create_permission_tables.php +141 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Migrations/2017_04_22_122453_add_extra_fields_to_permissions_tale.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Migrations/2017_04_22_122522_add_extra_fields_to_roles_table.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Repositories/PermissionRepository.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Repositories/RoleRepository.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Seeders/AuthorizationDefaultUsersSeeder_4.php +36 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Seeders/AuthorizationGivePermissionsToRolesSeeder_3.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Seeders/AuthorizationPermissionsSeeder_1.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Data/Seeders/AuthorizationRolesSeeder_2.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Models/Permission.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Models/Role.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Providers/MainServiceProvider.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/README.md +1 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/AssignRolesToUserTask.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/CreatePermissionTask.php +41 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/CreateRoleTask.php +41 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/DeleteRoleTask.php +35 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/DetachPermissionsFromRoleTask.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/DetachPermissionsFromUserTask.php +24 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/FindPermissionTask.php +49 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/FindRoleTask.php +49 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/GetAllPermissionsTask.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/GetAllRolesTask.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tasks/RevokeRoleFromUserTask.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/TestCase.php +18 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/CreatePermissionTaskTest.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/CreateRoleTaskTest.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/DeleteRoleTaskTest.php +36 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/FindPermissionTaskTest.php +44 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/FindRoleTaskTest.php +44 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/PermissionFactoryTest.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/PermissionMigrationTest.php +95 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Tests/Unit/RoleFactoryTest.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Traits/AuthorizationTrait.php +11 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/Traits/IsResourceOwnerTrait.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/AssignRolesToUserController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/AttachPermissionsToRoleController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/AttachPermissionsToUserController.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/CreateRoleController.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/DeleteRoleController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/DetachPermissionsFromRoleController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/DetachPermissionsFromUserController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/FindPermissionController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/FindRoleController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/GetAllPermissionsController.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/GetAllRolesController.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/GetRolePermissionsController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/GetUserPermissionsController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/GetUserRolesController.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/RevokeRolesFromUserController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/SyncPermissionOnRoleController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Controllers/SyncUserRolesController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/AssignRolesToUserRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/AttachPermissionsToRoleRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/AttachPermissionsToUserRequest.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/CreateRoleRequest.php +47 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/DeleteRoleRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/DetachPermissionsFromRoleRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/DetachPermissionsFromUserRequest.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/FindPermissionRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/FindRoleRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/GetAllPermissionsRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/GetAllRolesRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/GetRolePermissionsRequest.php +51 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/GetUserPermissionsRequest.php +51 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/GetUserRolesRequest.php +51 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/RevokeRolesFromUserRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/SyncPermissionsOnRoleRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Requests/SyncUserRolesRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/AssignRolesToUser.v1.private.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/AttachPermissionsToRole.v1.private.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/AttachPermissionsToUser.v1.private.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/CreateRole.v1.private.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/DeleteRole.v1.private.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/DetachPermissionsFromRole.v1.private.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/DetachPermissionsFromUser.v1.private.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/FindPermission.v1.private.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/FindRole.v1.private.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/GetAllPermissions.v1.private.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/GetAllRoles.v1.private.php +21 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/GetRolePermissions.v1.private.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/GetUserPermissions.v1.private.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/GetUserRoles.v1.private.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/RevokeRolesFromUser.v1.private.php +29 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/SyncPermissionOnRole.v1.private.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/SyncUserRoles.v1.private.php +27 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/_permission.v1.public.php +25 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/_role.v1.public.php +43 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Routes/_userPermissions.v1.public.php +48 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/ApiTestCase.php +15 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/AssignRolesToUserTest.php +71 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/AttachPermissionToUserTest.php +114 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/AttachPermissionsToRoleTest.php +115 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/CreateRoleTest.php +65 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/DeleteRoleTest.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/DetachPermissionFromUserTest.php +120 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/DetachPermissionsFromRoleTest.php +115 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/FindPermissionTest.php +42 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/FindRoleTest.php +42 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/GetAllPermissionsTest.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/GetAllRolesTest.php +32 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/GetRolePermissionsTest.php +39 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/GetUserPermissionsTest.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/GetUserRolesTest.php +40 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/RevokeRolesFromUserTest.php +115 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/SyncPermissionsOnRoleTest.php +92 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Tests/Functional/SyncUserRolesTest.php +93 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Transformers/PermissionTransformer.php +28 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/API/Transformers/RoleTransformer.php +34 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/WEB/Controllers/UnauthorizedController.php +19 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/WEB/Requests/UnauthorizedRequest.php +49 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/WEB/Routes/GetUnauthorized.php +7 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/UI/WEB/Views/unauthorized.blade.php +43 -0
- package/Daevin_test/app/Containers/AppSection/Authorization/composer.json +11 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Actions/CreatePostsAction.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Actions/DeletePostsAction.php +18 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Actions/FindPostsByIdAction.php +18 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Actions/GetAllPostsAction.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Actions/UpdatePostsAction.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Configs/appSection-posts.php +14 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Data/Factories/PostsFactory.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Data/Migrations/2023_2_19_55939_create_posts_migration.php +30 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Data/Repositories/PostsRepository.php +17 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Models/Posts.php +42 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Posts.json +7 -0
- package/Daevin_test/app/Containers/AppSection/Posts/README.md +194 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Tasks/CreatePostsTask.php +34 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Tasks/DeletePostsTask.php +35 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Tasks/FindPostsByIdTask.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Tasks/GetAllPostsTask.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Posts/Tasks/UpdatePostsTask.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Controllers/Controller.php +94 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Requests/CreatePostsRequest.php +54 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Requests/DeletePostsRequest.php +54 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Requests/FindPostsByIdRequest.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Requests/GetAllPostsRequest.php +54 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Requests/UpdatePostsRequest.php +56 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Routes/CreatePostsRoute.v1.private.php +52 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Routes/DeletePostsRoute.v1.private.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Routes/FindPostsByIdRoute.v1.private.php +52 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Routes/GetAllPostsRoute.v1.private.php +74 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Routes/UpdatePostsRoute.v1.private.php +52 -0
- package/Daevin_test/app/Containers/AppSection/Posts/UI/API/Transformers/PostsTransformer.php +49 -0
- package/Daevin_test/app/Containers/AppSection/Posts/composer.json +7 -0
- package/Daevin_test/app/Containers/AppSection/User/Actions/CreateAdminAction.php +39 -0
- package/Daevin_test/app/Containers/AppSection/User/Actions/DeleteUserAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/User/Actions/FindUserByIdAction.php +22 -0
- package/Daevin_test/app/Containers/AppSection/User/Actions/GetAllUsersAction.php +21 -0
- package/Daevin_test/app/Containers/AppSection/User/Actions/UpdateUserAction.php +33 -0
- package/Daevin_test/app/Containers/AppSection/User/Actions/UpdateUserPasswordAction.php +35 -0
- package/Daevin_test/app/Containers/AppSection/User/Configs/appSection-user.php +5 -0
- package/Daevin_test/app/Containers/AppSection/User/Data/Factories/UserFactory.php +44 -0
- package/Daevin_test/app/Containers/AppSection/User/Data/Migrations/2000_01_01_000001_create_users_table.php +34 -0
- package/Daevin_test/app/Containers/AppSection/User/Data/Migrations/2000_01_01_000002_create_password_resets_table.php +28 -0
- package/Daevin_test/app/Containers/AppSection/User/Data/Repositories/UserRepository.php +21 -0
- package/Daevin_test/app/Containers/AppSection/User/Data/Seeders/UserPermissionsSeeder_1.php +26 -0
- package/Daevin_test/app/Containers/AppSection/User/Models/User.php +58 -0
- package/Daevin_test/app/Containers/AppSection/User/Notifications/PasswordUpdatedNotification.php +28 -0
- package/Daevin_test/app/Containers/AppSection/User/Providers/MainServiceProvider.php +39 -0
- package/Daevin_test/app/Containers/AppSection/User/README.md +1 -0
- package/Daevin_test/app/Containers/AppSection/User/Tasks/DeleteUserTask.php +35 -0
- package/Daevin_test/app/Containers/AppSection/User/Tasks/FindUserByEmailTask.php +28 -0
- package/Daevin_test/app/Containers/AppSection/User/Tasks/FindUserByIdTask.php +31 -0
- package/Daevin_test/app/Containers/AppSection/User/Tasks/GetAllUsersTask.php +26 -0
- package/Daevin_test/app/Containers/AppSection/User/Tasks/UpdateUserTask.php +42 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/TestCase.php +18 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/CreateAdminActionTest.php +50 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/DeleteUserTaskTest.php +35 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/FindUserByIdTaskTest.php +35 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/PasswordResetsMigrationTest.php +28 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/UpdateUserTaskTest.php +52 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/UserFactoryTest.php +36 -0
- package/Daevin_test/app/Containers/AppSection/User/Tests/Unit/UsersMigrationTest.php +34 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Controllers/DeleteUserController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Controllers/FindUserByIdController.php +26 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Controllers/GetAllUsersController.php +28 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Controllers/UpdateUserController.php +30 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Controllers/UpdateUserPasswordController.php +30 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Requests/DeleteUserRequest.php +48 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Requests/FindUserByIdRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Requests/GetAllUsersRequest.php +45 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Requests/UpdateUserPasswordRequest.php +56 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Requests/UpdateUserRequest.php +50 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Routes/DeleteUser.v1.private.php +26 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Routes/FindUserById.v1.private.php +24 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Routes/GetAllUsers.v1.private.php +23 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Routes/UpdateUser.v1.private.php +27 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Routes/UpdateUserPassword.v1.private.php +36 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Routes/_user.v1.public.php +25 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Tests/ApiTestCase.php +15 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Tests/Functional/DeleteUserTest.php +50 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Tests/Functional/FindUserByIdTest.php +80 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Tests/Functional/GetAllUsersTest.php +88 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Tests/Functional/UpdateUserPasswordTest.php +126 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Tests/Functional/UpdateUserTest.php +80 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/API/Transformers/UserTransformer.php +52 -0
- package/Daevin_test/app/Containers/AppSection/User/UI/CLI/Commands/CreateAdminCommand.php +37 -0
- package/Daevin_test/app/Containers/AppSection/User/composer.json +7 -0
- package/Daevin_test/app/Containers/AppSection/Users/Actions/CreateUsersAction.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Users/Actions/DeleteUsersAction.php +18 -0
- package/Daevin_test/app/Containers/AppSection/Users/Actions/FindUsersByIdAction.php +18 -0
- package/Daevin_test/app/Containers/AppSection/Users/Actions/GetAllUsersAction.php +23 -0
- package/Daevin_test/app/Containers/AppSection/Users/Actions/UpdateUsersAction.php +26 -0
- package/Daevin_test/app/Containers/AppSection/Users/Configs/appSection-users.php +14 -0
- package/Daevin_test/app/Containers/AppSection/Users/Data/Factories/UsersFactory.php +22 -0
- package/Daevin_test/app/Containers/AppSection/Users/Data/Migrations/2023_2_19_55939_create_users_migration.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Users/Data/Repositories/UsersRepository.php +17 -0
- package/Daevin_test/app/Containers/AppSection/Users/Models/Users.php +44 -0
- package/Daevin_test/app/Containers/AppSection/Users/README.md +194 -0
- package/Daevin_test/app/Containers/AppSection/Users/Tasks/CreateUsersTask.php +34 -0
- package/Daevin_test/app/Containers/AppSection/Users/Tasks/DeleteUsersTask.php +35 -0
- package/Daevin_test/app/Containers/AppSection/Users/Tasks/FindUsersByIdTask.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Users/Tasks/GetAllUsersTask.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Users/Tasks/UpdateUsersTask.php +33 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Controllers/Controller.php +94 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Requests/CreateUsersRequest.php +55 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Requests/DeleteUsersRequest.php +54 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Requests/FindUsersByIdRequest.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Requests/GetAllUsersRequest.php +54 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Requests/UpdateUsersRequest.php +57 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Routes/CreateUsersRoute.v1.private.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Routes/DeleteUsersRoute.v1.private.php +31 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Routes/FindUsersByIdRoute.v1.private.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Routes/GetAllUsersRoute.v1.private.php +75 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Routes/UpdateUsersRoute.v1.private.php +53 -0
- package/Daevin_test/app/Containers/AppSection/Users/UI/API/Transformers/UsersTransformer.php +49 -0
- package/Daevin_test/app/Containers/AppSection/Users/Users.json +7 -0
- package/Daevin_test/app/Containers/AppSection/Users/composer.json +7 -0
- package/Daevin_test/app/Ship/Broadcasts/channels.php +16 -0
- package/Daevin_test/app/Ship/Commands/HelloWorldCommand.php +32 -0
- package/Daevin_test/app/Ship/Commands/closures.php +19 -0
- package/Daevin_test/app/Ship/Configs/apiato.php +185 -0
- package/Daevin_test/app/Ship/Configs/debugbar.php +275 -0
- package/Daevin_test/app/Ship/Configs/fractal.php +43 -0
- package/Daevin_test/app/Ship/Configs/hashids.php +54 -0
- package/Daevin_test/app/Ship/Configs/ide-helper.php +319 -0
- package/Daevin_test/app/Ship/Configs/notification.php +16 -0
- package/Daevin_test/app/Ship/Configs/repository.php +250 -0
- package/Daevin_test/app/Ship/Contracts/MustVerifyEmail.php +14 -0
- package/Daevin_test/app/Ship/Criterias/CreatedTodayCriteria.php +15 -0
- package/Daevin_test/app/Ship/Criterias/GroupByCriteria.php +21 -0
- package/Daevin_test/app/Ship/Criterias/IsNullCriteria.php +21 -0
- package/Daevin_test/app/Ship/Criterias/NotNullCriteria.php +21 -0
- package/Daevin_test/app/Ship/Criterias/OrderByCreationDateAscendingCriteria.php +14 -0
- package/Daevin_test/app/Ship/Criterias/OrderByCreationDateDescendingCriteria.php +14 -0
- package/Daevin_test/app/Ship/Criterias/OrderByFieldCriteria.php +37 -0
- package/Daevin_test/app/Ship/Criterias/OrderByNameCriteria.php +14 -0
- package/Daevin_test/app/Ship/Criterias/OrderByUpdateDateAscendingCriteria.php +14 -0
- package/Daevin_test/app/Ship/Criterias/OrderByUpdateDateDescendingCriteria.php +14 -0
- package/Daevin_test/app/Ship/Criterias/ThisBetweenDatesCriteria.php +21 -0
- package/Daevin_test/app/Ship/Criterias/ThisEqualThatCriteria.php +20 -0
- package/Daevin_test/app/Ship/Criterias/ThisLikeThatCriteria.php +35 -0
- package/Daevin_test/app/Ship/Criterias/ThisUserCriteria.php +19 -0
- package/Daevin_test/app/Ship/Events/.gitkeep +0 -0
- package/Daevin_test/app/Ship/Exceptions/CreateResourceFailedException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/DeleteResourceFailedException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/EmailIsMissedException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/Handlers/ExceptionsHandler.php +107 -0
- package/Daevin_test/app/Ship/Exceptions/InternalErrorException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/NotAuthorizedResourceException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/NotFoundException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/NotImplementedException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/UnsupportedFractalSerializerException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/UpdateResourceFailedException.php +12 -0
- package/Daevin_test/app/Ship/Exceptions/ValidationFailedException.php +12 -0
- package/Daevin_test/app/Ship/Generators/CustomStubs/.gitkeep +0 -0
- package/Daevin_test/app/Ship/Helpers/helpers.php +12 -0
- package/Daevin_test/app/Ship/Kernels/ConsoleKernel.php +46 -0
- package/Daevin_test/app/Ship/Kernels/HttpKernel.php +113 -0
- package/Daevin_test/app/Ship/Listeners/.gitkeep +0 -0
- package/Daevin_test/app/Ship/Mails/.gitkeep +0 -0
- package/Daevin_test/app/Ship/Mails/Templates/.gitkeep +0 -0
- package/Daevin_test/app/Ship/Middlewares/Authenticate.php +16 -0
- package/Daevin_test/app/Ship/Middlewares/EncryptCookies.php +17 -0
- package/Daevin_test/app/Ship/Middlewares/PreventRequestsDuringMaintenance.php +17 -0
- package/Daevin_test/app/Ship/Middlewares/TrimStrings.php +19 -0
- package/Daevin_test/app/Ship/Middlewares/TrustHosts.php +20 -0
- package/Daevin_test/app/Ship/Middlewares/TrustProxies.php +28 -0
- package/Daevin_test/app/Ship/Middlewares/VerifyCsrfToken.php +17 -0
- package/Daevin_test/app/Ship/Migrations/2017_09_12_174826_create_notifications_table.php +35 -0
- package/Daevin_test/app/Ship/Migrations/2019_08_19_000000_create_failed_jobs_table.php +36 -0
- package/Daevin_test/app/Ship/Migrations/2021_03_01_150940_create_jobs_table.php +39 -0
- package/Daevin_test/app/Ship/Notifications/.gitkeep +0 -0
- package/Daevin_test/app/Ship/Parents/Actions/Action.php +10 -0
- package/Daevin_test/app/Ship/Parents/Actions/SubAction.php +10 -0
- package/Daevin_test/app/Ship/Parents/Commands/ConsoleCommand.php +10 -0
- package/Daevin_test/app/Ship/Parents/Controllers/ApiController.php +10 -0
- package/Daevin_test/app/Ship/Parents/Controllers/WebController.php +10 -0
- package/Daevin_test/app/Ship/Parents/Criterias/Criteria.php +10 -0
- package/Daevin_test/app/Ship/Parents/Events/Event.php +10 -0
- package/Daevin_test/app/Ship/Parents/Exceptions/Exception.php +10 -0
- package/Daevin_test/app/Ship/Parents/Factories/Factory.php +10 -0
- package/Daevin_test/app/Ship/Parents/Jobs/Job.php +25 -0
- package/Daevin_test/app/Ship/Parents/Listeners/Listener.php +10 -0
- package/Daevin_test/app/Ship/Parents/Mails/Mail.php +10 -0
- package/Daevin_test/app/Ship/Parents/Middlewares/Middleware.php +10 -0
- package/Daevin_test/app/Ship/Parents/Models/Model.php +11 -0
- package/Daevin_test/app/Ship/Parents/Models/UserModel.php +17 -0
- package/Daevin_test/app/Ship/Parents/Notifications/Notification.php +10 -0
- package/Daevin_test/app/Ship/Parents/Policies/Policy.php +26 -0
- package/Daevin_test/app/Ship/Parents/Providers/AuthServiceProvider.php +20 -0
- package/Daevin_test/app/Ship/Parents/Providers/BroadcastServiceProvider.php +26 -0
- package/Daevin_test/app/Ship/Parents/Providers/EventServiceProvider.php +40 -0
- package/Daevin_test/app/Ship/Parents/Providers/MainServiceProvider.php +24 -0
- package/Daevin_test/app/Ship/Parents/Providers/MiddlewareServiceProvider.php +16 -0
- package/Daevin_test/app/Ship/Parents/Providers/RouteServiceProvider.php +24 -0
- package/Daevin_test/app/Ship/Parents/Repositories/Repository.php +10 -0
- package/Daevin_test/app/Ship/Parents/Requests/Request.php +10 -0
- package/Daevin_test/app/Ship/Parents/Seeders/Seeder.php +10 -0
- package/Daevin_test/app/Ship/Parents/Tasks/Task.php +10 -0
- package/Daevin_test/app/Ship/Parents/Tests/PhpUnit/TestCase.php +51 -0
- package/Daevin_test/app/Ship/Parents/Transformers/Transformer.php +25 -0
- package/Daevin_test/app/Ship/Parents/Values/Value.php +9 -0
- package/Daevin_test/app/Ship/Providers/RouteServiceProvider.php +35 -0
- package/Daevin_test/app/Ship/Providers/ShipProvider.php +44 -0
- package/Daevin_test/app/Ship/Seeders/SeedDeploymentData.php +18 -0
- package/Daevin_test/app/Ship/Seeders/SeedTestingData.php +18 -0
- package/Daevin_test/app/Ship/Tests/TestCase.php +10 -0
- package/Daevin_test/app/Ship/composer.json +21 -0
- package/Daevin_test/artisan +53 -0
- package/Daevin_test/bootstrap/app.php +55 -0
- package/Daevin_test/bootstrap/cache/.gitignore +2 -0
- package/Daevin_test/composer.json +112 -0
- package/Daevin_test/composer.lock +12696 -0
- package/Daevin_test/config/app.php +206 -0
- package/Daevin_test/config/auth.php +117 -0
- package/Daevin_test/config/broadcasting.php +67 -0
- package/Daevin_test/config/cache.php +110 -0
- package/Daevin_test/config/cors.php +34 -0
- package/Daevin_test/config/database.php +151 -0
- package/Daevin_test/config/filesystems.php +76 -0
- package/Daevin_test/config/hashing.php +52 -0
- package/Daevin_test/config/logging.php +119 -0
- package/Daevin_test/config/mail.php +117 -0
- package/Daevin_test/config/queue.php +93 -0
- package/Daevin_test/config/services.php +34 -0
- package/Daevin_test/config/session.php +201 -0
- package/Daevin_test/config/view.php +36 -0
- package/Daevin_test/database/factories/ModelFactory.php +4 -0
- package/Daevin_test/database/migrations/.gitkeep +0 -0
- package/Daevin_test/database/seeders/DatabaseSeeder.php +24 -0
- package/Daevin_test/lang/ar/auth.php +19 -0
- package/Daevin_test/lang/ar/pagination.php +19 -0
- package/Daevin_test/lang/ar/passwords.php +22 -0
- package/Daevin_test/lang/ar/validation.php +149 -0
- package/Daevin_test/lang/en/auth.php +20 -0
- package/Daevin_test/lang/en/pagination.php +19 -0
- package/Daevin_test/lang/en/passwords.php +22 -0
- package/Daevin_test/lang/en/validation.php +169 -0
- package/Daevin_test/lang/es/auth.php +19 -0
- package/Daevin_test/lang/es/pagination.php +19 -0
- package/Daevin_test/lang/es/passwords.php +22 -0
- package/Daevin_test/lang/es/validation.php +149 -0
- package/Daevin_test/lang/fa/auth.php +18 -0
- package/Daevin_test/lang/fa/pagination.php +17 -0
- package/Daevin_test/lang/fa/passwords.php +20 -0
- package/Daevin_test/lang/fa/validation.php +182 -0
- package/Daevin_test/lang/fr/auth.php +19 -0
- package/Daevin_test/lang/fr/pagination.php +19 -0
- package/Daevin_test/lang/fr/passwords.php +22 -0
- package/Daevin_test/lang/fr/validation.php +149 -0
- package/Daevin_test/package-lock.json +10031 -0
- package/Daevin_test/package.json +19 -0
- package/Daevin_test/php_cs.dist.php +39 -0
- package/Daevin_test/phpspec.yml +5 -0
- package/Daevin_test/phpunit.xml +38 -0
- package/Daevin_test/psalm.dist.xml +18 -0
- package/Daevin_test/public/.htaccess +21 -0
- package/Daevin_test/public/favicon.ico +0 -0
- package/Daevin_test/public/index.php +55 -0
- package/Daevin_test/public/robots.txt +2 -0
- package/Daevin_test/public/web.config +28 -0
- package/Daevin_test/resources/css/app.css +0 -0
- package/Daevin_test/resources/js/app.js +1 -0
- package/Daevin_test/resources/js/bootstrap.js +28 -0
- package/Daevin_test/resources/views/.gitkeep +0 -0
- package/Daevin_test/server.php +21 -0
- package/Daevin_test/storage/app/.gitignore +3 -0
- package/Daevin_test/storage/app/public/.gitignore +2 -0
- package/Daevin_test/storage/debugbar/.gitignore +2 -0
- package/Daevin_test/storage/framework/cache/.gitignore +2 -0
- package/Daevin_test/storage/framework/sessions/.gitignore +2 -0
- package/Daevin_test/storage/framework/testing/.gitignore +2 -0
- package/Daevin_test/storage/framework/views/.gitignore +2 -0
- package/Daevin_test/storage/logs/.gitignore +2 -0
- package/Daevin_test/webpack.mix.js +17 -0
- package/bin/classes/Apiato/index.js +208 -0
- package/bin/classes/Containers/Action.js +169 -0
- package/bin/classes/Containers/ComposerJSON.js +27 -0
- package/bin/classes/Containers/Config.js +39 -0
- package/bin/classes/Containers/Controller.js +120 -0
- package/bin/classes/Containers/Factory.js +47 -0
- package/bin/classes/Containers/Migration.js +80 -0
- package/bin/classes/Containers/Model.js +126 -0
- package/bin/classes/Containers/ReadMe.js +212 -0
- package/bin/classes/Containers/Repository.js +54 -0
- package/bin/classes/Containers/Request.js +341 -0
- package/bin/classes/Containers/Route.js +336 -0
- package/bin/classes/Containers/Task.js +225 -0
- package/bin/classes/Containers/Transformer.js +94 -0
- package/bin/classes/Helpers.js +150 -0
- package/bin/classes/tes.js +0 -0
- package/bin/constants.js +11 -0
- package/bin/core/output.json +13 -0
- package/bin/core/schemaToSql.js +118 -0
- package/bin/core/sqlToSchema.js +206 -0
- package/bin/index.js +103 -0
- package/dbconfig.json +74 -0
- package/package.json +39 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Actions;
|
4
|
+
|
5
|
+
use Apiato\Core\Exceptions\IncorrectIdException;
|
6
|
+
use App\Containers\AppSection\Authentication\Notifications\Welcome;
|
7
|
+
use App\Containers\AppSection\Authentication\Tasks\CreateUserByCredentialsTask;
|
8
|
+
use App\Containers\AppSection\Authentication\Tasks\SendVerificationEmailTask;
|
9
|
+
use App\Containers\AppSection\Authentication\UI\API\Requests\RegisterUserRequest;
|
10
|
+
use App\Containers\AppSection\User\Models\User;
|
11
|
+
use App\Ship\Exceptions\CreateResourceFailedException;
|
12
|
+
use App\Ship\Parents\Actions\Action as ParentAction;
|
13
|
+
|
14
|
+
class RegisterUserAction extends ParentAction
|
15
|
+
{
|
16
|
+
/**
|
17
|
+
* @param RegisterUserRequest $request
|
18
|
+
* @return User
|
19
|
+
* @throws CreateResourceFailedException
|
20
|
+
* @throws IncorrectIdException
|
21
|
+
*/
|
22
|
+
public function run(RegisterUserRequest $request): User
|
23
|
+
{
|
24
|
+
$sanitizedData = $request->sanitizeInput([
|
25
|
+
'email',
|
26
|
+
'password',
|
27
|
+
'name',
|
28
|
+
'gender',
|
29
|
+
'birth',
|
30
|
+
]);
|
31
|
+
|
32
|
+
$user = app(CreateUserByCredentialsTask::class)->run($sanitizedData);
|
33
|
+
|
34
|
+
$user->notify(new Welcome());
|
35
|
+
app(SendVerificationEmailTask::class)->run($user, $request->verification_url);
|
36
|
+
|
37
|
+
return $user;
|
38
|
+
}
|
39
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Actions;
|
4
|
+
|
5
|
+
use Apiato\Core\Exceptions\IncorrectIdException;
|
6
|
+
use App\Containers\AppSection\Authentication\Exceptions\InvalidResetPasswordTokenException;
|
7
|
+
use App\Containers\AppSection\Authentication\Notifications\PasswordReset;
|
8
|
+
use App\Containers\AppSection\Authentication\UI\API\Requests\ResetPasswordRequest;
|
9
|
+
use App\Containers\AppSection\User\Tasks\FindUserByEmailTask;
|
10
|
+
use App\Ship\Exceptions\NotFoundException;
|
11
|
+
use App\Ship\Exceptions\UpdateResourceFailedException;
|
12
|
+
use App\Ship\Parents\Actions\Action as ParentAction;
|
13
|
+
use Illuminate\Support\Facades\Hash;
|
14
|
+
use Illuminate\Support\Facades\Password;
|
15
|
+
use Illuminate\Support\Str;
|
16
|
+
|
17
|
+
class ResetPasswordAction extends ParentAction
|
18
|
+
{
|
19
|
+
/**
|
20
|
+
* @param ResetPasswordRequest $request
|
21
|
+
* @return mixed
|
22
|
+
* @throws InvalidResetPasswordTokenException
|
23
|
+
* @throws NotFoundException
|
24
|
+
* @throws UpdateResourceFailedException
|
25
|
+
* @throws IncorrectIdException
|
26
|
+
*/
|
27
|
+
public function run(ResetPasswordRequest $request): mixed
|
28
|
+
{
|
29
|
+
$sanitizedData = $request->sanitizeInput([
|
30
|
+
'email',
|
31
|
+
'token',
|
32
|
+
'password',
|
33
|
+
'password_confirmation' => $request->password,
|
34
|
+
]);
|
35
|
+
|
36
|
+
$status = Password::broker()->reset(
|
37
|
+
$sanitizedData,
|
38
|
+
function ($user, $password) {
|
39
|
+
$user->forceFill([
|
40
|
+
'password' => Hash::make($password),
|
41
|
+
])->setRememberToken(Str::random(60));
|
42
|
+
|
43
|
+
$user->save();
|
44
|
+
}
|
45
|
+
);
|
46
|
+
|
47
|
+
switch ($status) {
|
48
|
+
case Password::INVALID_TOKEN:
|
49
|
+
throw new InvalidResetPasswordTokenException();
|
50
|
+
case Password::INVALID_USER:
|
51
|
+
throw new NotFoundException('User Not Found.');
|
52
|
+
case Password::PASSWORD_RESET:
|
53
|
+
$user = app(FindUserByEmailTask::class)->run($sanitizedData['email']);
|
54
|
+
$user->notify(new PasswordReset());
|
55
|
+
|
56
|
+
return $status;
|
57
|
+
default:
|
58
|
+
throw new UpdateResourceFailedException();
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Actions/SendVerificationEmailAction.php
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Actions;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Tasks\SendVerificationEmailTask;
|
6
|
+
use App\Containers\AppSection\Authentication\UI\API\Requests\SendVerificationEmailRequest;
|
7
|
+
use App\Ship\Parents\Actions\Action as ParentAction;
|
8
|
+
|
9
|
+
class SendVerificationEmailAction extends ParentAction
|
10
|
+
{
|
11
|
+
/**
|
12
|
+
* @param SendVerificationEmailRequest $request
|
13
|
+
* @return void
|
14
|
+
*/
|
15
|
+
public function run(SendVerificationEmailRequest $request): void
|
16
|
+
{
|
17
|
+
app(SendVerificationEmailTask::class)->run($request->user(), $request->verification_url);
|
18
|
+
}
|
19
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Actions;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Exceptions\InvalidEmailVerificationDataException;
|
6
|
+
use App\Containers\AppSection\Authentication\Notifications\EmailVerified;
|
7
|
+
use App\Containers\AppSection\Authentication\UI\API\Requests\VerifyEmailRequest;
|
8
|
+
use App\Containers\AppSection\User\Models\User;
|
9
|
+
use App\Containers\AppSection\User\Tasks\FindUserByIdTask;
|
10
|
+
use App\Ship\Exceptions\NotFoundException;
|
11
|
+
use App\Ship\Parents\Actions\Action as ParentAction;
|
12
|
+
use Throwable;
|
13
|
+
|
14
|
+
class VerifyEmailAction extends ParentAction
|
15
|
+
{
|
16
|
+
/**
|
17
|
+
* @param VerifyEmailRequest $request
|
18
|
+
* @throws NotFoundException
|
19
|
+
* @throws Throwable
|
20
|
+
*/
|
21
|
+
public function run(VerifyEmailRequest $request): void
|
22
|
+
{
|
23
|
+
$user = app(FindUserByIdTask::class)->run($request->id);
|
24
|
+
|
25
|
+
throw_unless($this->validateData($request, $user), InvalidEmailVerificationDataException::class);
|
26
|
+
|
27
|
+
if (!$user->hasVerifiedEmail()) {
|
28
|
+
$user->markEmailAsVerified();
|
29
|
+
|
30
|
+
$user->notify(new EmailVerified());
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
/**
|
35
|
+
* @param VerifyEmailRequest $request
|
36
|
+
* @param User $user
|
37
|
+
* @return bool
|
38
|
+
*/
|
39
|
+
private function validateData(VerifyEmailRequest $request, User $user): bool
|
40
|
+
{
|
41
|
+
return hash_equals((string)$request->hash, sha1($user->getEmailForVerification()));
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Actions;
|
4
|
+
|
5
|
+
use Apiato\Core\Exceptions\IncorrectIdException;
|
6
|
+
use App\Containers\AppSection\Authentication\Classes\LoginCustomAttribute;
|
7
|
+
use App\Containers\AppSection\Authentication\Exceptions\LoginFailedException;
|
8
|
+
use App\Containers\AppSection\Authentication\Tasks\LoginTask;
|
9
|
+
use App\Containers\AppSection\Authentication\UI\WEB\Requests\LoginRequest;
|
10
|
+
use App\Containers\AppSection\User\Models\User;
|
11
|
+
use App\Ship\Parents\Actions\Action as ParentAction;
|
12
|
+
use Illuminate\Contracts\Auth\Authenticatable;
|
13
|
+
use Illuminate\Support\Facades\Auth;
|
14
|
+
|
15
|
+
class WebLoginAction extends ParentAction
|
16
|
+
{
|
17
|
+
/**
|
18
|
+
* @param LoginRequest $request
|
19
|
+
* @return User|Authenticatable|null
|
20
|
+
* @throws LoginFailedException
|
21
|
+
* @throws IncorrectIdException
|
22
|
+
*/
|
23
|
+
public function run(LoginRequest $request): User|Authenticatable|null
|
24
|
+
{
|
25
|
+
$sanitizedData = $request->sanitizeInput([
|
26
|
+
'email',
|
27
|
+
'password',
|
28
|
+
'remember_me' => false,
|
29
|
+
]);
|
30
|
+
|
31
|
+
list($username, $loginAttribute) = LoginCustomAttribute::extract($sanitizedData);
|
32
|
+
|
33
|
+
$loggedIn = app(LoginTask::class)->run(
|
34
|
+
$username,
|
35
|
+
$sanitizedData['password'],
|
36
|
+
$loginAttribute,
|
37
|
+
$sanitizedData['remember_me']
|
38
|
+
);
|
39
|
+
|
40
|
+
if (!$loggedIn) {
|
41
|
+
throw new LoginFailedException('Invalid Login Credentials.');
|
42
|
+
}
|
43
|
+
|
44
|
+
return Auth::user();
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Actions;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Actions\Action as ParentAction;
|
6
|
+
use Illuminate\Support\Facades\Auth;
|
7
|
+
|
8
|
+
class WebLogoutAction extends ParentAction
|
9
|
+
{
|
10
|
+
/**
|
11
|
+
* @return void
|
12
|
+
*/
|
13
|
+
public function run(): void
|
14
|
+
{
|
15
|
+
Auth::guard('web')->logout();
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Classes;
|
4
|
+
|
5
|
+
use Illuminate\Support\Arr;
|
6
|
+
|
7
|
+
class LoginCustomAttribute
|
8
|
+
{
|
9
|
+
/**
|
10
|
+
* Extract the login custom attributes.
|
11
|
+
* @param array $data
|
12
|
+
* @return array
|
13
|
+
*/
|
14
|
+
public static function extract(array $data): array
|
15
|
+
{
|
16
|
+
$prefix = config('appSection-authentication.login.prefix', '');
|
17
|
+
$allowedLoginAttributes = static::getAllowedLoginAttributes();
|
18
|
+
|
19
|
+
$fields = array_keys($allowedLoginAttributes);
|
20
|
+
$loginUsername = null;
|
21
|
+
// The original attribute the user tried to log in witch
|
22
|
+
// eg 'email', 'name', 'phone'
|
23
|
+
$loginAttribute = null;
|
24
|
+
|
25
|
+
// Find first login custom attribute (allowed login attributes) found in request
|
26
|
+
// eg: search the request exactly in order which they are in 'authentication-container'
|
27
|
+
// for 'email' then 'phone' then 'name' in request
|
28
|
+
// and put the first one found in 'username' field witch its value as 'username' value
|
29
|
+
foreach ($fields as $field) {
|
30
|
+
$fieldName = $prefix . $field;
|
31
|
+
$loginUsername = Arr::get($data, $fieldName);
|
32
|
+
$loginAttribute = $field;
|
33
|
+
|
34
|
+
if ($loginUsername !== null) {
|
35
|
+
break;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
return [
|
40
|
+
static::processLoginAttributeCaseSensitivity($loginUsername),
|
41
|
+
$loginAttribute,
|
42
|
+
];
|
43
|
+
}
|
44
|
+
|
45
|
+
private static function getAllowedLoginAttributes(): mixed
|
46
|
+
{
|
47
|
+
$allowedLoginFields = config('appSection-authentication.login.attributes');
|
48
|
+
if (!$allowedLoginFields) {
|
49
|
+
$allowedLoginFields = ['email' => []];
|
50
|
+
}
|
51
|
+
|
52
|
+
return $allowedLoginFields;
|
53
|
+
}
|
54
|
+
|
55
|
+
/**
|
56
|
+
* @param string $username
|
57
|
+
* @return string
|
58
|
+
*/
|
59
|
+
private static function processLoginAttributeCaseSensitivity(string $username): string
|
60
|
+
{
|
61
|
+
return config('appSection-authentication.login.case_sensitive') ? $username : strtolower($username);
|
62
|
+
}
|
63
|
+
|
64
|
+
public static function mergeValidationRules(array $rules): array
|
65
|
+
{
|
66
|
+
$prefix = config('appSection-authentication.login.prefix', '');
|
67
|
+
$allowedLoginAttributes = config('appSection-authentication.login.attributes', ['email' => []]);
|
68
|
+
|
69
|
+
if (count($allowedLoginAttributes) === 1) {
|
70
|
+
$key = array_key_first($allowedLoginAttributes);
|
71
|
+
$optionalValidators = $allowedLoginAttributes[$key];
|
72
|
+
$validators = implode('|', $optionalValidators);
|
73
|
+
|
74
|
+
$fieldName = $prefix . $key;
|
75
|
+
|
76
|
+
$rules[$fieldName] = "required:$fieldName|$validators";
|
77
|
+
|
78
|
+
return $rules;
|
79
|
+
}
|
80
|
+
|
81
|
+
foreach ($allowedLoginAttributes as $key => $optionalValidators) {
|
82
|
+
// build all other login fields together
|
83
|
+
$otherLoginFields = Arr::except($allowedLoginAttributes, $key);
|
84
|
+
$otherLoginFields = array_keys($otherLoginFields);
|
85
|
+
$otherLoginFields = preg_filter('/^/', $prefix, $otherLoginFields);
|
86
|
+
$otherLoginFields = implode(',', $otherLoginFields);
|
87
|
+
|
88
|
+
$validators = implode('|', $optionalValidators);
|
89
|
+
|
90
|
+
$fieldName = $prefix . $key;
|
91
|
+
|
92
|
+
$rules[$fieldName] = "required_without_all:$otherLoginFields|$validators";
|
93
|
+
}
|
94
|
+
|
95
|
+
return $rules;
|
96
|
+
}
|
97
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Configs/appSection-authentication.php
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
return [
|
4
|
+
/*
|
5
|
+
|--------------------------------------------------------------------------
|
6
|
+
| Email Confirmation
|
7
|
+
|--------------------------------------------------------------------------
|
8
|
+
|
|
9
|
+
| When set to true, the user must verify his email before being able to
|
10
|
+
| Login, after his registration.
|
11
|
+
|
|
12
|
+
*/
|
13
|
+
|
14
|
+
'require_email_verification' => true,
|
15
|
+
'verification_link_expiration_time' => 30, // in minute
|
16
|
+
|
17
|
+
/*
|
18
|
+
|--------------------------------------------------------------------------
|
19
|
+
| Clients
|
20
|
+
|--------------------------------------------------------------------------
|
21
|
+
|
|
22
|
+
| A list of clients that have access to the application.
|
23
|
+
|
|
24
|
+
*/
|
25
|
+
|
26
|
+
'clients' => [
|
27
|
+
'web' => [
|
28
|
+
'id' => env('CLIENT_WEB_ID'),
|
29
|
+
'secret' => env('CLIENT_WEB_SECRET'),
|
30
|
+
],
|
31
|
+
'mobile' => [
|
32
|
+
'id' => env('CLIENT_MOBILE_ID'),
|
33
|
+
'secret' => env('CLIENT_MOBILE_SECRET'),
|
34
|
+
],
|
35
|
+
|
36
|
+
// add your other clients here
|
37
|
+
],
|
38
|
+
|
39
|
+
/*
|
40
|
+
|--------------------------------------------------------------------------
|
41
|
+
| Login With Custom Field
|
42
|
+
|--------------------------------------------------------------------------
|
43
|
+
|
|
44
|
+
| This allows you to choose which field you want to use for passport auth.
|
45
|
+
|
|
46
|
+
*/
|
47
|
+
|
48
|
+
'login' => [
|
49
|
+
|
50
|
+
/*
|
51
|
+
|--------------------------------------------------------------------------
|
52
|
+
| Allowed Login Attributes
|
53
|
+
|--------------------------------------------------------------------------
|
54
|
+
|
|
55
|
+
| A list of fields the user can log in with.
|
56
|
+
| The key is the field name. The value contains validation rules of the key.
|
57
|
+
|
|
58
|
+
| The order determines the order the fields are tested to log in (in case multiple fields are submitted!)
|
59
|
+
|
|
60
|
+
| Example: 'phone' => ['string', 'min:6', 'max:25'],
|
61
|
+
|
|
62
|
+
*/
|
63
|
+
|
64
|
+
'attributes' => [
|
65
|
+
'email' => ['email'],
|
66
|
+
],
|
67
|
+
|
68
|
+
/*
|
69
|
+
|--------------------------------------------------------------------------
|
70
|
+
| Case Sensitive
|
71
|
+
|--------------------------------------------------------------------------
|
72
|
+
|
|
73
|
+
| This field represents if login attribute should be case-sensitive.
|
74
|
+
| If false, then user can log in with both `admin@admin.com` and `Admin@Admin.Com`
|
75
|
+
|
|
76
|
+
*/
|
77
|
+
|
78
|
+
'case_sensitive' => false,
|
79
|
+
|
80
|
+
/*
|
81
|
+
|--------------------------------------------------------------------------
|
82
|
+
| Prefix
|
83
|
+
|--------------------------------------------------------------------------
|
84
|
+
|
|
85
|
+
| Use this $prefix variable in order to allow for nested elements.
|
86
|
+
| For example, if your login fields are nested in "data.attributes.name / data.attributes.email"
|
87
|
+
| simply set the $prefix to "data.attributes."
|
88
|
+
|
|
89
|
+
*/
|
90
|
+
|
91
|
+
'prefix' => '',
|
92
|
+
],
|
93
|
+
|
94
|
+
/*
|
95
|
+
|--------------------------------------------------------------------------
|
96
|
+
| Reset Password URLs
|
97
|
+
|--------------------------------------------------------------------------
|
98
|
+
|
|
99
|
+
| Insert your allowed reset password urls which user can request to be injected into the email.
|
100
|
+
|
|
101
|
+
*/
|
102
|
+
'allowed-reset-password-urls' => [
|
103
|
+
env('APP_URL', 'http://api.apiato.test/v1') . '/password/reset',
|
104
|
+
],
|
105
|
+
|
106
|
+
/*
|
107
|
+
|--------------------------------------------------------------------------
|
108
|
+
| Verify Email URLs
|
109
|
+
|--------------------------------------------------------------------------
|
110
|
+
|
|
111
|
+
| Insert your allowed verify email urls which user can request to be injected into the email.
|
112
|
+
|
|
113
|
+
*/
|
114
|
+
'allowed-verify-email-urls' => [
|
115
|
+
env('APP_URL', 'http://api.apiato.test/v1') . '/email/verify',
|
116
|
+
],
|
117
|
+
];
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Exceptions;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Exceptions\Exception as ParentException;
|
6
|
+
use Symfony\Component\HttpFoundation\Response;
|
7
|
+
|
8
|
+
class EmailNotVerifiedException extends ParentException
|
9
|
+
{
|
10
|
+
protected $code = Response::HTTP_FORBIDDEN;
|
11
|
+
protected $message = 'Your email address is not verified.';
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Exceptions;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Exceptions\Exception as ParentException;
|
6
|
+
use Symfony\Component\HttpFoundation\Response;
|
7
|
+
|
8
|
+
class InvalidEmailVerificationDataException extends ParentException
|
9
|
+
{
|
10
|
+
protected $code = Response::HTTP_UNPROCESSABLE_ENTITY;
|
11
|
+
protected $message = 'Invalid Email Verification Data Provided.';
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Exceptions;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Exceptions\Exception as ParentException;
|
6
|
+
use Symfony\Component\HttpFoundation\Response;
|
7
|
+
|
8
|
+
class InvalidResetPasswordTokenException extends ParentException
|
9
|
+
{
|
10
|
+
protected $code = Response::HTTP_FORBIDDEN;
|
11
|
+
protected $message = 'Invalid Reset Password Token Provided.';
|
12
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Exceptions/LoginFailedException.php
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Exceptions;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Exceptions\Exception as ParentException;
|
6
|
+
use Symfony\Component\HttpFoundation\Response;
|
7
|
+
|
8
|
+
class LoginFailedException extends ParentException
|
9
|
+
{
|
10
|
+
protected $code = Response::HTTP_UNPROCESSABLE_ENTITY;
|
11
|
+
protected $message = 'An Exception happened during the Login Process.';
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Exceptions;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Exceptions\Exception as ParentException;
|
6
|
+
use Symfony\Component\HttpFoundation\Response;
|
7
|
+
|
8
|
+
class RefreshTokenMissingException extends ParentException
|
9
|
+
{
|
10
|
+
protected $code = Response::HTTP_BAD_REQUEST;
|
11
|
+
protected $message = 'We could not find the Refresh Token. Maybe none is provided?';
|
12
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Mails;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\User\Models\User;
|
6
|
+
use App\Ship\Parents\Mails\Mail as ParentMail;
|
7
|
+
use Illuminate\Bus\Queueable;
|
8
|
+
use Illuminate\Contracts\Queue\ShouldQueue;
|
9
|
+
|
10
|
+
class ForgotPassword extends ParentMail implements ShouldQueue
|
11
|
+
{
|
12
|
+
use Queueable;
|
13
|
+
|
14
|
+
public function __construct(
|
15
|
+
protected User $recipient,
|
16
|
+
protected string $token,
|
17
|
+
protected string $reseturl
|
18
|
+
) {
|
19
|
+
}
|
20
|
+
|
21
|
+
public function build(): static
|
22
|
+
{
|
23
|
+
return $this->view('appSection@authentication::forgot-password')
|
24
|
+
->to($this->recipient->email, $this->recipient->name)
|
25
|
+
->with([
|
26
|
+
'token' => $this->token,
|
27
|
+
'reseturl' => $this->reseturl,
|
28
|
+
'email' => $this->recipient->email,
|
29
|
+
'app_url' => config('app.url'),
|
30
|
+
]);
|
31
|
+
}
|
32
|
+
}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en-US">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
6
|
+
<title>Reset Password</title>
|
7
|
+
<meta name="description" content="Reset Password Email Template.">
|
8
|
+
<style type="text/css">
|
9
|
+
a:hover {text-decoration: underline !important;}
|
10
|
+
</style>
|
11
|
+
</head>
|
12
|
+
|
13
|
+
<body marginheight="0" topmargin="0" marginwidth="0" style="margin: 0px; background-color: #f2f3f8;" leftmargin="0">
|
14
|
+
<!--100% body table-->
|
15
|
+
<table cellspacing="0" border="0" cellpadding="0" width="100%" bgcolor="#f2f3f8"
|
16
|
+
style="@import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700|Open+Sans:300,400,600,700); font-family: 'Open Sans', sans-serif;">
|
17
|
+
<tr>
|
18
|
+
<td>
|
19
|
+
<table style="background-color: #f2f3f8; max-width:670px; margin:0 auto;" width="100%" border="0"
|
20
|
+
align="center" cellpadding="0" cellspacing="0">
|
21
|
+
<tr>
|
22
|
+
<td style="height:80px;"> </td>
|
23
|
+
</tr>
|
24
|
+
<tr>
|
25
|
+
<td style="height:20px;"> </td>
|
26
|
+
</tr>
|
27
|
+
<tr>
|
28
|
+
<td>
|
29
|
+
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"
|
30
|
+
style="max-width:670px;background:#fff; border-radius:3px; text-align:center;-webkit-box-shadow:0 6px 18px 0 rgba(0,0,0,.06);-moz-box-shadow:0 6px 18px 0 rgba(0,0,0,.06);box-shadow:0 6px 18px 0 rgba(0,0,0,.06);">
|
31
|
+
<tr>
|
32
|
+
<td style="height:40px;"> </td>
|
33
|
+
</tr>
|
34
|
+
<tr>
|
35
|
+
<td style="padding:0 35px;">
|
36
|
+
<h1 style="color:#1e1e2d; font-weight:500; margin:0;font-size:32px;font-family:'Rubik',sans-serif;">You have
|
37
|
+
requested to reset your password</h1>
|
38
|
+
<span
|
39
|
+
style="display:inline-block; vertical-align:middle; margin:29px 0 26px; border-bottom:1px solid #cecece; width:100px;"></span>
|
40
|
+
<p style="color:#455056; font-size:15px;line-height:24px; margin:0;">
|
41
|
+
We cannot simply send you your old password. A unique link to reset your
|
42
|
+
password has been generated for you. To reset your password, click the
|
43
|
+
following link and follow the instructions.
|
44
|
+
</p>
|
45
|
+
<a href="{{$reseturl}}?email={{$email}}&token={{$token}}"
|
46
|
+
style="background:#20e277;text-decoration:none !important; font-weight:500; margin-top:35px; color:#fff;text-transform:uppercase; font-size:14px;padding:10px 24px;display:inline-block;border-radius:50px;">Reset
|
47
|
+
Password</a>
|
48
|
+
</td>
|
49
|
+
</tr>
|
50
|
+
<tr>
|
51
|
+
<td style="height:40px;"> </td>
|
52
|
+
</tr>
|
53
|
+
</table>
|
54
|
+
</td>
|
55
|
+
<tr>
|
56
|
+
<td style="height:20px;"> </td>
|
57
|
+
</tr>
|
58
|
+
<tr>
|
59
|
+
<td style="text-align:center;">
|
60
|
+
<p style="font-size:14px; color:rgba(69, 80, 86, 0.7411764705882353); line-height:18px; margin:0 0 0;">© <strong>{{$app_url}}</strong></p>
|
61
|
+
</td>
|
62
|
+
</tr>
|
63
|
+
<tr>
|
64
|
+
<td style="height:80px;"> </td>
|
65
|
+
</tr>
|
66
|
+
</table>
|
67
|
+
</td>
|
68
|
+
</tr>
|
69
|
+
</table>
|
70
|
+
<!--/100% body table-->
|
71
|
+
</body>
|
72
|
+
|
73
|
+
</html>
|
package/Daevin_test/app/Containers/AppSection/Authentication/Middlewares/RedirectIfAuthenticated.php
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Middlewares;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Middlewares\Middleware as ParentMiddleware;
|
6
|
+
use App\Ship\Providers\RouteServiceProvider;
|
7
|
+
use Closure;
|
8
|
+
use Illuminate\Http\RedirectResponse;
|
9
|
+
use Illuminate\Http\Request;
|
10
|
+
use Illuminate\Http\Response;
|
11
|
+
use Illuminate\Support\Facades\Auth;
|
12
|
+
|
13
|
+
class RedirectIfAuthenticated extends ParentMiddleware
|
14
|
+
{
|
15
|
+
/**
|
16
|
+
* Handle an incoming request.
|
17
|
+
*
|
18
|
+
* @param Request $request
|
19
|
+
* @param Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
20
|
+
* @param string|null ...$guards
|
21
|
+
* @return Response|RedirectResponse
|
22
|
+
*/
|
23
|
+
public function handle(Request $request, Closure $next, ...$guards)
|
24
|
+
{
|
25
|
+
$guards = empty($guards) ? [null] : $guards;
|
26
|
+
|
27
|
+
foreach ($guards as $guard) {
|
28
|
+
if (Auth::guard($guard)->check()) {
|
29
|
+
return redirect(RouteServiceProvider::HOME);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
return $next($request);
|
34
|
+
}
|
35
|
+
}
|