mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-06-23 21:41:44 +02:00
Refactore Profile to Settings & Setting to Options
This commit is contained in:
parent
98c02a48dc
commit
80d9433774
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Profile;
|
namespace App\Http\Controllers\Settings;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Profile;
|
namespace App\Http\Controllers\Settings;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
class SettingController extends Controller
|
class OptionController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Profile;
|
namespace App\Http\Controllers\Settings;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
@ -8,7 +8,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content has-text-centered">
|
<div class="content has-text-centered">
|
||||||
<router-link :to="{ name: 'profile' }" class="has-text-grey">{{ $t('commons.profile') }}</router-link> - <a class="has-text-grey" @click="logout">{{ $t('auth.sign_out') }}</a>
|
<router-link :to="{ name: 'settings' }" class="has-text-grey">{{ $t('settings.settings') }}</router-link> - <a class="has-text-grey" @click="logout">{{ $t('auth.sign_out') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</template>
|
</template>
|
||||||
|
4
resources/js/langs/locales.js
vendored
4
resources/js/langs/locales.js
vendored
@ -79,6 +79,7 @@ export default {
|
|||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"account": "Account",
|
"account": "Account",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
|
"options": "Options",
|
||||||
"confirm": [],
|
"confirm": [],
|
||||||
"forms": {
|
"forms": {
|
||||||
"edit_settings": "Edit settings",
|
"edit_settings": "Edit settings",
|
||||||
@ -283,7 +284,7 @@ export default {
|
|||||||
"already_register": "Déjà enregistré ?",
|
"already_register": "Déjà enregistré ?",
|
||||||
"password_do_not_match": "Le mot de passe ne correspond pas",
|
"password_do_not_match": "Le mot de passe ne correspond pas",
|
||||||
"forgot_your_password": "Mot de passe oublié ?",
|
"forgot_your_password": "Mot de passe oublié ?",
|
||||||
"request_password_reset": "Réinitialiser le",
|
"request_password_reset": "Réinitialiser le mot de passe",
|
||||||
"reset_password": "Mot de passe oublié",
|
"reset_password": "Mot de passe oublié",
|
||||||
"new_password": "Nouveau mot de passe",
|
"new_password": "Nouveau mot de passe",
|
||||||
"current_password": {
|
"current_password": {
|
||||||
@ -341,6 +342,7 @@ export default {
|
|||||||
"settings": "Réglages",
|
"settings": "Réglages",
|
||||||
"account": "Compte",
|
"account": "Compte",
|
||||||
"password": "Mot de passe",
|
"password": "Mot de passe",
|
||||||
|
"options": "Options",
|
||||||
"confirm": [],
|
"confirm": [],
|
||||||
"forms": {
|
"forms": {
|
||||||
"edit_settings": "Modifier les réglages",
|
"edit_settings": "Modifier les réglages",
|
||||||
|
4
resources/js/routes.js
vendored
4
resources/js/routes.js
vendored
@ -10,7 +10,7 @@ import Login from './views/auth/Login'
|
|||||||
import Register from './views/auth/Register'
|
import Register from './views/auth/Register'
|
||||||
import PasswordRequest from './views/auth/password/Request'
|
import PasswordRequest from './views/auth/password/Request'
|
||||||
import PasswordReset from './views/auth/password/Reset'
|
import PasswordReset from './views/auth/password/Reset'
|
||||||
import Profile from './views/profile/Index'
|
import Settings from './views/Settings/Index'
|
||||||
import Errors from './views/Error'
|
import Errors from './views/Error'
|
||||||
|
|
||||||
const router = new Router({
|
const router = new Router({
|
||||||
@ -19,7 +19,7 @@ const router = new Router({
|
|||||||
{ path: '/', name: 'accounts', component: Accounts, props: true },
|
{ path: '/', name: 'accounts', component: Accounts, props: true },
|
||||||
{ path: '/login', name: 'login',component: Login },
|
{ path: '/login', name: 'login',component: Login },
|
||||||
{ path: '/register', name: 'register',component: Register },
|
{ path: '/register', name: 'register',component: Register },
|
||||||
{ path: '/profile', name: 'profile',component: Profile },
|
{ path: '/settings', name: 'settings',component: Settings },
|
||||||
{ path: '/create', name: 'create',component: Create },
|
{ path: '/create', name: 'create',component: Create },
|
||||||
{ path: '/edit/:twofaccountId', name: 'edit',component: Edit },
|
{ path: '/edit/:twofaccountId', name: 'edit',component: Edit },
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
async mounted() {
|
async mounted() {
|
||||||
const { data } = await this.form.get('/api/profile/account')
|
const { data } = await this.form.get('/api/settings/account')
|
||||||
|
|
||||||
this.form.fill(data)
|
this.form.fill(data)
|
||||||
},
|
},
|
||||||
@ -39,7 +39,7 @@
|
|||||||
this.fail = ''
|
this.fail = ''
|
||||||
this.success = ''
|
this.success = ''
|
||||||
|
|
||||||
this.form.patch('/api/profile/account', {returnError: true})
|
this.form.patch('/api/settings/account', {returnError: true})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|
||||||
this.success = response.data.message
|
this.success = response.data.message
|
@ -11,7 +11,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<settings v-if="activeTab === $t('settings.settings')"></settings>
|
<options v-if="activeTab === $t('settings.options')"></options>
|
||||||
<account v-if="activeTab === $t('settings.account')"></account>
|
<account v-if="activeTab === $t('settings.account')"></account>
|
||||||
<password v-if="activeTab === $t('settings.password')"></password>
|
<password v-if="activeTab === $t('settings.password')"></password>
|
||||||
<vue-footer :showButtons="true">
|
<vue-footer :showButtons="true">
|
||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import Settings from './Settings'
|
import Options from './Options'
|
||||||
import Account from './Account'
|
import Account from './Account'
|
||||||
import Password from './Password'
|
import Password from './Password'
|
||||||
|
|
||||||
@ -34,7 +34,7 @@
|
|||||||
return {
|
return {
|
||||||
tabs: [
|
tabs: [
|
||||||
{
|
{
|
||||||
'name' : this.$t('settings.settings'),
|
'name' : this.$t('settings.options'),
|
||||||
'isActive': true
|
'isActive': true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -46,12 +46,12 @@
|
|||||||
'isActive': false
|
'isActive': false
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
activeTab: this.$t('settings.settings')
|
activeTab: this.$t('settings.options')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
Settings,
|
Options,
|
||||||
Account,
|
Account,
|
||||||
Password
|
Password
|
||||||
},
|
},
|
@ -34,7 +34,7 @@
|
|||||||
this.fail = ''
|
this.fail = ''
|
||||||
this.success = ''
|
this.success = ''
|
||||||
|
|
||||||
this.form.post('/api/profile/settings', {returnError: true})
|
this.form.post('/api/settings/options', {returnError: true})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|
||||||
this.success = response.data.message
|
this.success = response.data.message
|
@ -33,7 +33,7 @@
|
|||||||
this.fail = ''
|
this.fail = ''
|
||||||
this.success = ''
|
this.success = ''
|
||||||
|
|
||||||
this.form.patch('/api/profile/password', {returnError: true})
|
this.form.patch('/api/settings/password', {returnError: true})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|
||||||
this.success = response.data.message
|
this.success = response.data.message
|
@ -16,6 +16,7 @@ return [
|
|||||||
'settings' => 'Settings',
|
'settings' => 'Settings',
|
||||||
'account' => 'Account',
|
'account' => 'Account',
|
||||||
'password' => 'Password',
|
'password' => 'Password',
|
||||||
|
'options' => 'Options',
|
||||||
'confirm' => [
|
'confirm' => [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
@ -33,7 +33,7 @@ return [
|
|||||||
'already_register' => 'Déjà enregistré ?',
|
'already_register' => 'Déjà enregistré ?',
|
||||||
'password_do_not_match' => 'Le mot de passe ne correspond pas',
|
'password_do_not_match' => 'Le mot de passe ne correspond pas',
|
||||||
'forgot_your_password' => 'Mot de passe oublié ?',
|
'forgot_your_password' => 'Mot de passe oublié ?',
|
||||||
'request_password_reset' => 'Réinitialiser le',
|
'request_password_reset' => 'Réinitialiser le mot de passe',
|
||||||
'reset_password' => 'Mot de passe oublié',
|
'reset_password' => 'Mot de passe oublié',
|
||||||
'new_password' => 'Nouveau mot de passe',
|
'new_password' => 'Nouveau mot de passe',
|
||||||
'current_password' => [
|
'current_password' => [
|
||||||
|
@ -16,6 +16,7 @@ return [
|
|||||||
'settings' => 'Réglages',
|
'settings' => 'Réglages',
|
||||||
'account' => 'Compte',
|
'account' => 'Compte',
|
||||||
'password' => 'Mot de passe',
|
'password' => 'Mot de passe',
|
||||||
|
'options' => 'Options',
|
||||||
'confirm' => [
|
'confirm' => [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
@ -28,11 +28,11 @@ Route::group(['middleware' => 'auth:api'], function() {
|
|||||||
|
|
||||||
Route::post('logout', 'Auth\LoginController@logout');
|
Route::post('logout', 'Auth\LoginController@logout');
|
||||||
|
|
||||||
Route::get('profile/account', 'Profile\AccountController@show');
|
Route::get('settings/account', 'Settings\AccountController@show');
|
||||||
Route::patch('profile/account', 'Profile\AccountController@update');
|
Route::patch('settings/account', 'Settings\AccountController@update');
|
||||||
Route::patch('profile/password', 'Profile\PasswordController@update');
|
Route::patch('settings/password', 'Settings\PasswordController@update');
|
||||||
Route::get('profile/settings', 'Profile\SettingController@index');
|
Route::get('settings/options', 'Settings\OptionController@index');
|
||||||
Route::post('profile/settings', 'Profile\SettingController@store');
|
Route::post('settings/options', 'Settings\OptionController@store');
|
||||||
|
|
||||||
Route::delete('twofaccounts/batch', 'TwoFAccountController@batchDestroy');
|
Route::delete('twofaccounts/batch', 'TwoFAccountController@batchDestroy');
|
||||||
Route::apiResource('twofaccounts', 'TwoFAccountController');
|
Route::apiResource('twofaccounts', 'TwoFAccountController');
|
||||||
|
@ -35,7 +35,7 @@ class ApiExceptionTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function test_HTTP_UNAUTHORIZED()
|
public function test_HTTP_UNAUTHORIZED()
|
||||||
{
|
{
|
||||||
$response = $this->json('GET', '/api/profile/settings')
|
$response = $this->json('GET', '/api/settings/options')
|
||||||
->assertStatus(401)
|
->assertStatus(401)
|
||||||
->assertJson([
|
->assertJson([
|
||||||
'message' => 'Unauthorized'
|
'message' => 'Unauthorized'
|
||||||
@ -78,7 +78,7 @@ class ApiExceptionTest extends TestCase
|
|||||||
public function test_HTTP_METHOD_NOT_ALLOWED()
|
public function test_HTTP_METHOD_NOT_ALLOWED()
|
||||||
{
|
{
|
||||||
$response = $this->actingAs($this->user, 'api')
|
$response = $this->actingAs($this->user, 'api')
|
||||||
->json('PATCH', '/api/profile/settings')
|
->json('PATCH', '/api/settings/options')
|
||||||
->assertStatus(405)
|
->assertStatus(405)
|
||||||
->assertJson([
|
->assertJson([
|
||||||
'message' => 'Method Not Allowed'
|
'message' => 'Method Not Allowed'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\Unit\Profile;
|
namespace Tests\Unit\Settings;
|
||||||
|
|
||||||
use App\User;
|
use App\User;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
@ -32,7 +32,7 @@ class AccountTest extends TestCase
|
|||||||
$user = User::find(1);
|
$user = User::find(1);
|
||||||
|
|
||||||
$response = $this->actingAs($user, 'api')
|
$response = $this->actingAs($user, 'api')
|
||||||
->json('GET', '/api/profile/account')
|
->json('GET', '/api/settings/account')
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonStructure(['name', 'email']);
|
->assertJsonStructure(['name', 'email']);
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ class AccountTest extends TestCase
|
|||||||
$user = User::find(1);
|
$user = User::find(1);
|
||||||
|
|
||||||
$response = $this->actingAs($user, 'api')
|
$response = $this->actingAs($user, 'api')
|
||||||
->json('PATCH', '/api/profile/account', [
|
->json('PATCH', '/api/settings/account', [
|
||||||
'name' => 'userUpdated',
|
'name' => 'userUpdated',
|
||||||
'email' => 'userUpdated@example.org',
|
'email' => 'userUpdated@example.org',
|
||||||
'password' => 'wrongPassword',
|
'password' => 'wrongPassword',
|
||||||
@ -69,7 +69,7 @@ class AccountTest extends TestCase
|
|||||||
$user = User::find(1);
|
$user = User::find(1);
|
||||||
|
|
||||||
$response = $this->actingAs($user, 'api')
|
$response = $this->actingAs($user, 'api')
|
||||||
->json('PATCH', '/api/profile/account', [
|
->json('PATCH', '/api/settings/account', [
|
||||||
'name' => 'userUpdated',
|
'name' => 'userUpdated',
|
||||||
'email' => 'userUpdated@example.org',
|
'email' => 'userUpdated@example.org',
|
||||||
'password' => 'password',
|
'password' => 'password',
|
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\Unit\Profile;
|
namespace Tests\Unit\Settings;
|
||||||
|
|
||||||
use App\User;
|
use App\User;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class SettingTest extends TestCase
|
class OptionTest extends TestCase
|
||||||
{
|
{
|
||||||
/** @var \App\User */
|
/** @var \App\User */
|
||||||
protected $user;
|
protected $user;
|
||||||
@ -30,7 +30,7 @@ class SettingTest extends TestCase
|
|||||||
public function testSettingsStorage()
|
public function testSettingsStorage()
|
||||||
{
|
{
|
||||||
$response = $this->actingAs($this->user, 'api')
|
$response = $this->actingAs($this->user, 'api')
|
||||||
->json('POST', '/api/profile/settings', [
|
->json('POST', '/api/settings/options', [
|
||||||
'setting_1' => 'value_1',
|
'setting_1' => 'value_1',
|
||||||
'setting_2' => 'value_2',
|
'setting_2' => 'value_2',
|
||||||
])
|
])
|
||||||
@ -56,7 +56,7 @@ class SettingTest extends TestCase
|
|||||||
option(['setting_2' => 'value_2']);
|
option(['setting_2' => 'value_2']);
|
||||||
|
|
||||||
$response = $this->actingAs($this->user, 'api')
|
$response = $this->actingAs($this->user, 'api')
|
||||||
->json('GET', '/api/profile/settings')
|
->json('GET', '/api/settings/options')
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJson([
|
->assertJson([
|
||||||
'settings' => [
|
'settings' => [
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\Unit\Profile;
|
namespace Tests\Unit\Settings;
|
||||||
|
|
||||||
use App\User;
|
use App\User;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
@ -31,7 +31,7 @@ class PasswordTest extends TestCase
|
|||||||
public function testPasswordUpdateWithWrongCurrentPassword()
|
public function testPasswordUpdateWithWrongCurrentPassword()
|
||||||
{
|
{
|
||||||
$response = $this->actingAs($this->user, 'api')
|
$response = $this->actingAs($this->user, 'api')
|
||||||
->json('PATCH', '/api/profile/password', [
|
->json('PATCH', '/api/settings/password', [
|
||||||
'currentPassword' => 'wrongPassword',
|
'currentPassword' => 'wrongPassword',
|
||||||
'password' => 'passwordUpdated',
|
'password' => 'passwordUpdated',
|
||||||
'password_confirmation' => 'passwordUpdated',
|
'password_confirmation' => 'passwordUpdated',
|
||||||
@ -50,7 +50,7 @@ class PasswordTest extends TestCase
|
|||||||
public function testPasswordUpdate()
|
public function testPasswordUpdate()
|
||||||
{
|
{
|
||||||
$response = $this->actingAs($this->user, 'api')
|
$response = $this->actingAs($this->user, 'api')
|
||||||
->json('PATCH', '/api/profile/password', [
|
->json('PATCH', '/api/settings/password', [
|
||||||
'currentPassword' => 'password',
|
'currentPassword' => 'password',
|
||||||
'password' => 'passwordUpdated',
|
'password' => 'passwordUpdated',
|
||||||
'password_confirmation' => 'passwordUpdated',
|
'password_confirmation' => 'passwordUpdated',
|
Loading…
x
Reference in New Issue
Block a user