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,26 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Notifications;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Models\UserModel;
|
6
|
+
use App\Ship\Parents\Notifications\Notification as ParentNotification;
|
7
|
+
use Illuminate\Bus\Queueable;
|
8
|
+
use Illuminate\Contracts\Queue\ShouldQueue;
|
9
|
+
use Illuminate\Notifications\Messages\MailMessage;
|
10
|
+
|
11
|
+
class EmailVerified extends ParentNotification implements ShouldQueue
|
12
|
+
{
|
13
|
+
use Queueable;
|
14
|
+
|
15
|
+
public function via($notifiable): array
|
16
|
+
{
|
17
|
+
return ['mail'];
|
18
|
+
}
|
19
|
+
|
20
|
+
public function toMail(UserModel $notifiable): MailMessage
|
21
|
+
{
|
22
|
+
return (new MailMessage())
|
23
|
+
->subject('Email Verified')
|
24
|
+
->line('Your email has been verified.');
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Notifications;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Models\UserModel;
|
6
|
+
use App\Ship\Parents\Notifications\Notification as ParentNotification;
|
7
|
+
use Illuminate\Bus\Queueable;
|
8
|
+
use Illuminate\Contracts\Queue\ShouldQueue;
|
9
|
+
use Illuminate\Notifications\Messages\MailMessage;
|
10
|
+
|
11
|
+
class PasswordReset extends ParentNotification implements ShouldQueue
|
12
|
+
{
|
13
|
+
use Queueable;
|
14
|
+
|
15
|
+
public function via($notifiable): array
|
16
|
+
{
|
17
|
+
return ['mail'];
|
18
|
+
}
|
19
|
+
|
20
|
+
public function toMail(UserModel $notifiable): MailMessage
|
21
|
+
{
|
22
|
+
return (new MailMessage())
|
23
|
+
->subject('Password Reset')
|
24
|
+
->line('Your password has been reset successfully.');
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Notifications;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Models\UserModel;
|
6
|
+
use App\Ship\Parents\Notifications\Notification as ParentNotification;
|
7
|
+
use Illuminate\Bus\Queueable;
|
8
|
+
use Illuminate\Contracts\Queue\ShouldQueue;
|
9
|
+
use Illuminate\Notifications\Messages\MailMessage;
|
10
|
+
use Illuminate\Support\Facades\URL;
|
11
|
+
|
12
|
+
class VerifyEmail extends ParentNotification implements ShouldQueue
|
13
|
+
{
|
14
|
+
use Queueable;
|
15
|
+
|
16
|
+
public function __construct(
|
17
|
+
private string $verification_url,
|
18
|
+
) {
|
19
|
+
}
|
20
|
+
|
21
|
+
public function via($notifiable): array
|
22
|
+
{
|
23
|
+
return ['mail'];
|
24
|
+
}
|
25
|
+
|
26
|
+
public function toMail(UserModel $notifiable): MailMessage
|
27
|
+
{
|
28
|
+
return (new MailMessage())
|
29
|
+
->subject('Verify Email Address')
|
30
|
+
->line('Please click the below button to verify your email address.')
|
31
|
+
->action('Verify Email Address', $this->createUrl($notifiable))
|
32
|
+
->line('If you did not create an account, no further action is required.');
|
33
|
+
}
|
34
|
+
|
35
|
+
private function createUrl(UserModel $notifiable): string
|
36
|
+
{
|
37
|
+
$id = config('apiato.hash-id') ? $notifiable->getHashedKey() : $notifiable->getKey();
|
38
|
+
$hash = sha1($notifiable->getEmailForVerification());
|
39
|
+
|
40
|
+
return $this->verification_url . '?url=' . URL::temporarySignedRoute(
|
41
|
+
'verification.verify',
|
42
|
+
now()->addMinutes(config('appSection-authentication.verification_link_expiration_time')),
|
43
|
+
[
|
44
|
+
'id' => $id,
|
45
|
+
'hash' => $hash,
|
46
|
+
]
|
47
|
+
);
|
48
|
+
}
|
49
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Notifications;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Notifications\Notification as ParentNotification;
|
6
|
+
use Illuminate\Bus\Queueable;
|
7
|
+
use Illuminate\Contracts\Queue\ShouldQueue;
|
8
|
+
use Illuminate\Notifications\Messages\MailMessage;
|
9
|
+
|
10
|
+
class Welcome extends ParentNotification implements ShouldQueue
|
11
|
+
{
|
12
|
+
use Queueable;
|
13
|
+
|
14
|
+
public function via($notifiable): array
|
15
|
+
{
|
16
|
+
return ['mail'];
|
17
|
+
}
|
18
|
+
|
19
|
+
public function toMail($notifiable): MailMessage
|
20
|
+
{
|
21
|
+
return (new MailMessage())
|
22
|
+
->subject('Welcome to ' . config('app.name'))
|
23
|
+
->line('Thank you for registering ' . $notifiable->name);
|
24
|
+
}
|
25
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Providers/AuthServiceProvider.php
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Providers;
|
4
|
+
|
5
|
+
use Apiato\Core\Loaders\RoutesLoaderTrait;
|
6
|
+
use App\Ship\Parents\Providers\AuthServiceProvider as ParentAuthProvider;
|
7
|
+
use Carbon\Carbon;
|
8
|
+
use Illuminate\Support\Facades\Route;
|
9
|
+
use Laravel\Passport\Passport;
|
10
|
+
use Laravel\Passport\RouteRegistrar;
|
11
|
+
|
12
|
+
class AuthServiceProvider extends ParentAuthProvider
|
13
|
+
{
|
14
|
+
use RoutesLoaderTrait;
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Indicates if loading of the provider is deferred.
|
18
|
+
*/
|
19
|
+
protected bool $defer = true;
|
20
|
+
|
21
|
+
/**
|
22
|
+
* The policy mappings for the application.
|
23
|
+
*
|
24
|
+
* @var array
|
25
|
+
*/
|
26
|
+
protected $policies = [];
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Register any authentication / authorization services.
|
30
|
+
*/
|
31
|
+
public function boot(): void
|
32
|
+
{
|
33
|
+
parent::boot();
|
34
|
+
|
35
|
+
$this->registerPassport();
|
36
|
+
$this->registerPassportApiRoutes();
|
37
|
+
$this->registerPassportWebRoutes();
|
38
|
+
}
|
39
|
+
|
40
|
+
private function registerPassport(): void
|
41
|
+
{
|
42
|
+
if (config('apiato.api.enabled-implicit-grant')) {
|
43
|
+
Passport::enableImplicitGrant();
|
44
|
+
}
|
45
|
+
|
46
|
+
Passport::tokensExpireIn(Carbon::now()->addMinutes(config('apiato.api.expires-in')));
|
47
|
+
|
48
|
+
Passport::refreshTokensExpireIn(Carbon::now()->addMinutes(config('apiato.api.refresh-expires-in')));
|
49
|
+
}
|
50
|
+
|
51
|
+
private function registerPassportApiRoutes(): void
|
52
|
+
{
|
53
|
+
$prefix = config('apiato.api.prefix');
|
54
|
+
$routeGroupArray = $this->getRouteGroup("/{$prefix}v1");
|
55
|
+
|
56
|
+
if (!$this->app->routesAreCached()) {
|
57
|
+
Route::group($routeGroupArray, function () {
|
58
|
+
Passport::routes(function (RouteRegistrar $router) {
|
59
|
+
$router->forAccessTokens();
|
60
|
+
$router->forTransientTokens();
|
61
|
+
$router->forClients();
|
62
|
+
$router->forPersonalAccessTokens();
|
63
|
+
});
|
64
|
+
});
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
private function registerPassportWebRoutes(): void
|
69
|
+
{
|
70
|
+
if (!$this->app->routesAreCached()) {
|
71
|
+
Passport::routes(function (RouteRegistrar $router) {
|
72
|
+
$router->forAuthorization();
|
73
|
+
});
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Providers/MainServiceProvider.php
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Providers;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Providers\MainServiceProvider as ParentMainServiceProvider;
|
6
|
+
use Laravel\Passport\PassportServiceProvider;
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Class MainServiceProvider.
|
10
|
+
*
|
11
|
+
* The Main Service Provider of this container, it will be automatically registered in the framework.
|
12
|
+
*
|
13
|
+
|
14
|
+
*/
|
15
|
+
class MainServiceProvider extends ParentMainServiceProvider
|
16
|
+
{
|
17
|
+
/**
|
18
|
+
* Container Service Providers.
|
19
|
+
*/
|
20
|
+
public array $serviceProviders = [
|
21
|
+
AuthServiceProvider::class,
|
22
|
+
MiddlewareServiceProvider::class,
|
23
|
+
PassportServiceProvider::class,
|
24
|
+
];
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Container Aliases
|
28
|
+
*/
|
29
|
+
public array $aliases = [
|
30
|
+
|
31
|
+
];
|
32
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Providers/MiddlewareServiceProvider.php
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Providers;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Middlewares\RedirectIfAuthenticated;
|
6
|
+
use App\Ship\Parents\Providers\MiddlewareServiceProvider as ParentMiddlewareServiceProvider;
|
7
|
+
|
8
|
+
class MiddlewareServiceProvider extends ParentMiddlewareServiceProvider
|
9
|
+
{
|
10
|
+
protected array $middlewares = [];
|
11
|
+
|
12
|
+
protected array $middlewareGroups = [];
|
13
|
+
|
14
|
+
protected array $middlewarePriority = [];
|
15
|
+
|
16
|
+
protected array $routeMiddleware = [
|
17
|
+
'guest' => RedirectIfAuthenticated::class,
|
18
|
+
];
|
19
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
### Apiato Authentication Container
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tasks;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Exceptions\LoginFailedException;
|
6
|
+
use App\Ship\Parents\Tasks\Task as ParentTask;
|
7
|
+
use GuzzleHttp\Utils;
|
8
|
+
use Illuminate\Http\Request;
|
9
|
+
use Illuminate\Support\Facades\App;
|
10
|
+
|
11
|
+
class CallOAuthServerTask extends ParentTask
|
12
|
+
{
|
13
|
+
/**
|
14
|
+
* @throws LoginFailedException
|
15
|
+
*/
|
16
|
+
public function run(array $data, string $languageHeader = null): float|object|int|bool|array|string|null
|
17
|
+
{
|
18
|
+
$authFullApiUrl = route('passport.token');
|
19
|
+
|
20
|
+
$headers = [
|
21
|
+
'HTTP_ACCEPT' => 'application/json',
|
22
|
+
'HTTP_ACCEPT_LANGUAGE' => $languageHeader ?? config('app.locale'),
|
23
|
+
];
|
24
|
+
|
25
|
+
$request = Request::create($authFullApiUrl, 'POST', $data, server: $headers);
|
26
|
+
$response = App::handle($request);
|
27
|
+
$content = Utils::jsonDecode($response->getContent(), true);
|
28
|
+
|
29
|
+
// If the internal request to the oauth token endpoint was not successful we throw an exception
|
30
|
+
if (!$response->isOk()) {
|
31
|
+
throw new LoginFailedException($content['message'] ?? null);
|
32
|
+
}
|
33
|
+
|
34
|
+
return $content;
|
35
|
+
}
|
36
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/CreatePasswordResetTokenTask.php
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tasks;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Models\UserModel;
|
6
|
+
use App\Ship\Parents\Tasks\Task as ParentTask;
|
7
|
+
|
8
|
+
class CreatePasswordResetTokenTask extends ParentTask
|
9
|
+
{
|
10
|
+
public function run(UserModel $user): string
|
11
|
+
{
|
12
|
+
return app('auth.password.broker')->createToken($user);
|
13
|
+
}
|
14
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/CreateUserByCredentialsTask.php
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tasks;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\User\Data\Repositories\UserRepository;
|
6
|
+
use App\Containers\AppSection\User\Models\User;
|
7
|
+
use App\Ship\Exceptions\CreateResourceFailedException;
|
8
|
+
use App\Ship\Parents\Tasks\Task as ParentTask;
|
9
|
+
use Exception;
|
10
|
+
use Illuminate\Support\Facades\Hash;
|
11
|
+
|
12
|
+
class CreateUserByCredentialsTask extends ParentTask
|
13
|
+
{
|
14
|
+
public function __construct(
|
15
|
+
protected UserRepository $repository
|
16
|
+
) {
|
17
|
+
}
|
18
|
+
|
19
|
+
/**
|
20
|
+
* @throws CreateResourceFailedException
|
21
|
+
*/
|
22
|
+
public function run(array $data): User
|
23
|
+
{
|
24
|
+
$data['password'] = Hash::make($data['password']);
|
25
|
+
|
26
|
+
try {
|
27
|
+
$user = $this->repository->create($data);
|
28
|
+
} catch (Exception) {
|
29
|
+
throw new CreateResourceFailedException();
|
30
|
+
}
|
31
|
+
|
32
|
+
return $user;
|
33
|
+
}
|
34
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tasks;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Tasks\Task as ParentTask;
|
6
|
+
use Illuminate\Support\Facades\Auth;
|
7
|
+
|
8
|
+
class LoginTask extends ParentTask
|
9
|
+
{
|
10
|
+
public function run(string $username, string $password, string $field = 'email', bool $remember = false): bool
|
11
|
+
{
|
12
|
+
return Auth::guard('web')->attempt([$field => $username, 'password' => $password], $remember);
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tasks;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Tasks\Task as ParentTask;
|
6
|
+
use Illuminate\Contracts\Foundation\Application;
|
7
|
+
use Illuminate\Cookie\CookieJar;
|
8
|
+
use Symfony\Component\HttpFoundation\Cookie;
|
9
|
+
|
10
|
+
class MakeRefreshCookieTask extends ParentTask
|
11
|
+
{
|
12
|
+
public function run($refreshToken): CookieJar|Cookie|Application
|
13
|
+
{
|
14
|
+
// Save the refresh token in a HttpOnly cookie to minimize the risk of XSS attacks
|
15
|
+
return cookie(
|
16
|
+
'refreshToken',
|
17
|
+
$refreshToken,
|
18
|
+
config('apiato.api.refresh-expires-in'),
|
19
|
+
null,
|
20
|
+
null,
|
21
|
+
config('session.secure'),
|
22
|
+
true // HttpOnly
|
23
|
+
);
|
24
|
+
}
|
25
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Tasks/SendVerificationEmailTask.php
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tasks;
|
4
|
+
|
5
|
+
use App\Ship\Contracts\MustVerifyEmail;
|
6
|
+
use App\Ship\Parents\Tasks\Task as ParentTask;
|
7
|
+
|
8
|
+
class SendVerificationEmailTask extends ParentTask
|
9
|
+
{
|
10
|
+
public function run(MustVerifyEmail $user, ?string $verificationUrl = null): void
|
11
|
+
{
|
12
|
+
if (config('appSection-authentication.require_email_verification') && !$user->hasVerifiedEmail() && !is_null($verificationUrl)) {
|
13
|
+
$user->sendEmailVerificationNotificationWithVerificationUrl($verificationUrl);
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,14 @@
|
|
1
|
+
-----BEGIN PUBLIC KEY-----
|
2
|
+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv6s9sNcaJW+yq0VmvAJV
|
3
|
+
RLcspSLXGbm5e9IsNYA5gwyD2HJe+15Yk0xtkdrJvFZJdZ9NgaBKthsjJiDwrD57
|
4
|
+
4KEJR1ZzlohkjtWyY3dp+tYs06oQvRBGWeLok4x8iZeG1EDcL6cYiM56pT2tCFd5
|
5
|
+
E/7t0LhGf14SKoBnEqM3Kl+TVNQr9mXmsRh9Xqy/KgqvscXpQUa/q35MbNJ6ztj8
|
6
|
+
DPLhLwN9Lu2nX7TCgPdaakCQjeHOpcNNiR4cDN8DbOF3l0WVi4IVyrCM+7SVE0B9
|
7
|
+
bWSCr31/yDgFzn/+o6LB743mOBLb7VDwuiQyIra1BNt5w1w+rmJCd0uu+Ux2+36p
|
8
|
+
xxnQMXtfPuzCPt/qTo8CVUcoq/YJCxHCekracIEMiELKxZYvh+TahMYTTbnu+Xmo
|
9
|
+
5/btnt3iNNYW/z2MAXGcStIPek8zCKHhAN1DCe96T6SzHgC8Rw1v3zRTfLGm1IPI
|
10
|
+
Nr4hB5qiISLg6jhBHH1UqoPzKvCMPQ9UkBvey5IJBGAaubpTKsaWoG0HWdi/34EW
|
11
|
+
7ba/G2h45bVaXbSIOBzOXrRDZYUqbCimsEe4xi/yMsYJAyW9rRhxs5R15uS43MlX
|
12
|
+
vwV7oBagxbk+r2aw3JJeWBfJa0UJbjh1kX5rH3BsVkONeJBsfcLC6nwkePSfaDa5
|
13
|
+
MEA9E4S0uJMODlJ6jhdwUrUCAwEAAQ==
|
14
|
+
-----END PUBLIC KEY-----
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tests;
|
4
|
+
|
5
|
+
use App\Ship\Parents\Tests\PhpUnit\TestCase as ParentTestCase;
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Class TestCase.
|
9
|
+
*
|
10
|
+
* This is the container TestCase class. Use this class to add your container specific helper functions. This testcase
|
11
|
+
* is usually used only for unit tests.
|
12
|
+
*
|
13
|
+
* NOTE: API, WEB & CLI specific TestCase classes are located inside their own respective folders e.g. UI/API/Tests/ApiTestCase.php
|
14
|
+
*/
|
15
|
+
class TestCase extends ParentTestCase
|
16
|
+
{
|
17
|
+
// ..
|
18
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tests\Unit;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Tasks\CreatePasswordResetTokenTask;
|
6
|
+
use App\Containers\AppSection\Authentication\Tests\TestCase;
|
7
|
+
use App\Containers\AppSection\User\Models\User;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Class CreatePasswordResetTokenTaskTest.
|
11
|
+
*
|
12
|
+
* @group authentication
|
13
|
+
* @group unit
|
14
|
+
*/
|
15
|
+
class CreatePasswordResetTokenTaskTest extends TestCase
|
16
|
+
{
|
17
|
+
public function testCreatePasswordResetTask(): void
|
18
|
+
{
|
19
|
+
$user = User::factory()->create();
|
20
|
+
|
21
|
+
app(CreatePasswordResetTokenTask::class)->run($user);
|
22
|
+
|
23
|
+
$this->assertDatabaseHas('password_resets', [
|
24
|
+
'email' => $user->email,
|
25
|
+
]);
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tests\Unit;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Tasks\CreateUserByCredentialsTask;
|
6
|
+
use App\Containers\AppSection\Authentication\Tests\TestCase;
|
7
|
+
use App\Ship\Exceptions\CreateResourceFailedException;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Class CreateUserByCredentialsTaskTest.
|
11
|
+
*
|
12
|
+
* @group authentication
|
13
|
+
* @group unit
|
14
|
+
*/
|
15
|
+
class CreateUserByCredentialsTaskTest extends TestCase
|
16
|
+
{
|
17
|
+
public function testCreateUserByCredentials(): void
|
18
|
+
{
|
19
|
+
$data = [
|
20
|
+
'email' => 'Mahmoud@test.test',
|
21
|
+
'password' => 'so-secret',
|
22
|
+
];
|
23
|
+
|
24
|
+
$user = app(CreateUserByCredentialsTask::class)->run($data);
|
25
|
+
|
26
|
+
$this->assertModelExists($user);
|
27
|
+
}
|
28
|
+
|
29
|
+
public function testCreateUserWithInvalidData(): void
|
30
|
+
{
|
31
|
+
$this->expectException(CreateResourceFailedException::class);
|
32
|
+
$this->expectExceptionMessage('Failed to create Resource.');
|
33
|
+
|
34
|
+
$data = [
|
35
|
+
'email' => 'Mahmoud@test.test',
|
36
|
+
'password' => 'so-secret',
|
37
|
+
'birth' => 'wrong-format',
|
38
|
+
];
|
39
|
+
|
40
|
+
app(CreateUserByCredentialsTask::class)->run($data);
|
41
|
+
}
|
42
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/ForgotPasswordActionTest.php
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tests\Unit;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Actions\ForgotPasswordAction;
|
6
|
+
use App\Containers\AppSection\Authentication\Tests\TestCase;
|
7
|
+
use App\Containers\AppSection\Authentication\UI\API\Requests\ForgotPasswordRequest;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Class ForgotPasswordActionTest.
|
11
|
+
*
|
12
|
+
* @group authentication
|
13
|
+
* @group unit
|
14
|
+
*/
|
15
|
+
class ForgotPasswordActionTest extends TestCase
|
16
|
+
{
|
17
|
+
public function testIfUserNotExists_ShouldNotReturn404(): void
|
18
|
+
{
|
19
|
+
$data = [
|
20
|
+
'email' => 'wrong@mail.test',
|
21
|
+
];
|
22
|
+
|
23
|
+
$request = new ForgotPasswordRequest($data);
|
24
|
+
$result = app(ForgotPasswordAction::class)->run($request);
|
25
|
+
|
26
|
+
$this->assertFalse($result);
|
27
|
+
}
|
28
|
+
}
|
package/Daevin_test/app/Containers/AppSection/Authentication/Tests/Unit/LoginCustomAttributeTest.php
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace App\Containers\AppSection\Authentication\Tests\Unit;
|
4
|
+
|
5
|
+
use App\Containers\AppSection\Authentication\Classes\LoginCustomAttribute;
|
6
|
+
use App\Containers\AppSection\Authentication\Tests\TestCase;
|
7
|
+
use Illuminate\Support\Facades\Config;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Class LoginCustomAttributeTest.
|
11
|
+
*
|
12
|
+
* @group authentication
|
13
|
+
* @group unit
|
14
|
+
*/
|
15
|
+
class LoginCustomAttributeTest extends TestCase
|
16
|
+
{
|
17
|
+
public function testGivenValidLoginAttributeThenExtractUsername(): void
|
18
|
+
{
|
19
|
+
$userDetails = [
|
20
|
+
'email' => 'Mahmoud@test.test',
|
21
|
+
'password' => 'so-secret',
|
22
|
+
];
|
23
|
+
|
24
|
+
$result = LoginCustomAttribute::extract($userDetails);
|
25
|
+
|
26
|
+
$this->assertAttributeIsExtracted($result, $userDetails);
|
27
|
+
}
|
28
|
+
|
29
|
+
private function assertAttributeIsExtracted(array $result, array $userDetails): void
|
30
|
+
{
|
31
|
+
list($username, $loginAttribute) = $result;
|
32
|
+
$this->assertSame($username, strtolower($userDetails['email']));
|
33
|
+
$this->assertSame($loginAttribute, 'email');
|
34
|
+
}
|
35
|
+
|
36
|
+
public function testWhenNoLoginAttributeIsProvidedShouldUseEmailFieldAsDefaultFallback(): void
|
37
|
+
{
|
38
|
+
Config::offsetUnset('appSection-authentication.login.attributes');
|
39
|
+
$userDetails = [
|
40
|
+
'email' => 'Mahmoud@test.test',
|
41
|
+
'password' => 'so-secret',
|
42
|
+
];
|
43
|
+
|
44
|
+
$result = LoginCustomAttribute::extract($userDetails);
|
45
|
+
|
46
|
+
$this->assertAttributeIsExtracted($result, $userDetails);
|
47
|
+
}
|
48
|
+
}
|