]> BookStack Code Mirror - bookstack/blob - resources/views/users/edit.blade.php
Updated readme for phpcs usage, aligned gh action workflows
[bookstack] / resources / views / users / edit.blade.php
1 @extends('layouts.simple')
2
3 @section('body')
4     <div class="container small">
5
6         @include('settings.parts.navbar', ['selected' => 'users'])
7
8         <section class="card content-wrap">
9             <h1 class="list-heading">{{ $user->id === user()->id ? trans('settings.users_edit_profile') : trans('settings.users_edit') }}</h1>
10             <form action="{{ url("/settings/users/{$user->id}") }}" method="post" enctype="multipart/form-data">
11                 {!! csrf_field() !!}
12                 <input type="hidden" name="_method" value="PUT">
13
14                 <div class="setting-list">
15                     @include('users.parts.form', ['model' => $user, 'authMethod' => $authMethod])
16
17                     <div class="grid half gap-xl">
18                         <div>
19                             <label for="user-avatar" class="setting-list-label">{{ trans('settings.users_avatar') }}</label>
20                             <p class="small">{{ trans('settings.users_avatar_desc') }}</p>
21                         </div>
22                         <div>
23                             @include('form.image-picker', [
24                                 'resizeHeight' => '512',
25                                 'resizeWidth' => '512',
26                                 'showRemove' => false,
27                                 'defaultImage' => url('/user_avatar.png'),
28                                 'currentImage' => $user->getAvatar(80),
29                                 'currentId' => $user->image_id,
30                                 'name' => 'profile_image',
31                                 'imageClass' => 'avatar large'
32                             ])
33                         </div>
34                     </div>
35
36                     @include('users.parts.language-option-row', ['value' => setting()->getUser($user, 'language', config('app.default_locale'))])
37                 </div>
38
39                 <div class="text-right">
40                     <a href="{{  url(userCan('users-manage') ? "/settings/users" : "/") }}" class="button outline">{{ trans('common.cancel') }}</a>
41                     @if($authMethod !== 'system')
42                         <a href="{{ url("/settings/users/{$user->id}/delete") }}" class="button outline">{{ trans('settings.users_delete') }}</a>
43                     @endif
44                     <button class="button" type="submit">{{ trans('common.save') }}</button>
45                 </div>
46             </form>
47         </section>
48
49         <section class="card content-wrap auto-height">
50             <h2 class="list-heading">{{ trans('settings.users_mfa') }}</h2>
51             <p>{{ trans('settings.users_mfa_desc') }}</p>
52             <div class="grid half gap-xl v-center pb-s">
53                 <div>
54                     @if ($mfaMethods->count() > 0)
55                         <span class="text-pos">@icon('check-circle')</span>
56                     @else
57                         <span class="text-neg">@icon('cancel')</span>
58                     @endif
59                     {{ trans_choice('settings.users_mfa_x_methods', $mfaMethods->count()) }}
60                 </div>
61                 <div class="text-m-right">
62                     @if($user->id === user()->id)
63                         <a href="{{ url('/mfa/setup')  }}" class="button outline">{{ trans('settings.users_mfa_configure') }}</a>
64                     @endif
65                 </div>
66             </div>
67
68         </section>
69
70         @if(user()->id === $user->id && count($activeSocialDrivers) > 0)
71             <section class="card content-wrap auto-height">
72                 <h2 class="list-heading">{{ trans('settings.users_social_accounts') }}</h2>
73                 <p class="text-muted">{{ trans('settings.users_social_accounts_info') }}</p>
74                 <div class="container">
75                     <div class="grid third">
76                         @foreach($activeSocialDrivers as $driver => $enabled)
77                             <div class="text-center mb-m">
78                                 <div role="presentation">@icon('auth/'. $driver, ['style' => 'width: 56px;height: 56px;'])</div>
79                                 <div>
80                                     @if($user->hasSocialAccount($driver))
81                                         <form action="{{ url("/login/service/{$driver}/detach") }}" method="POST">
82                                             {{ csrf_field() }}
83                                             <button aria-label="{{ trans('settings.users_social_disconnect') }} - {{ $driver }}"
84                                                     class="button small outline">{{ trans('settings.users_social_disconnect') }}</button>
85                                         </form>
86                                     @else
87                                         <a href="{{ url("/login/service/{$driver}") }}" aria-label="{{ trans('settings.users_social_connect') }} - {{ $driver }}"
88                                            class="button small outline">{{ trans('settings.users_social_connect') }}</a>
89                                     @endif
90                                 </div>
91                             </div>
92                         @endforeach
93                     </div>
94                 </div>
95             </section>
96         @endif
97
98         @if((user()->id === $user->id && userCan('access-api')) || userCan('users-manage'))
99             @include('users.api-tokens.parts.list', ['user' => $user])
100         @endif
101     </div>
102
103 @stop