diff options
Diffstat (limited to 'src')
16 files changed, 129 insertions, 2 deletions
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index cc7c2c94..42982e4a 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php | |||
@@ -77,7 +77,7 @@ class InstallCommand extends ContainerAwareCommand | |||
77 | 77 | ||
78 | // testing if database driver exists | 78 | // testing if database driver exists |
79 | $fulfilled = true; | 79 | $fulfilled = true; |
80 | $label = '<comment>PDO Driver</comment>'; | 80 | $label = '<comment>PDO Driver (%s)</comment>'; |
81 | $status = '<info>OK!</info>'; | 81 | $status = '<info>OK!</info>'; |
82 | $help = ''; | 82 | $help = ''; |
83 | 83 | ||
@@ -87,7 +87,7 @@ class InstallCommand extends ContainerAwareCommand | |||
87 | $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.'; | 87 | $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.'; |
88 | } | 88 | } |
89 | 89 | ||
90 | $rows[] = [$label, $status, $help]; | 90 | $rows[] = [sprintf($label, $this->getContainer()->getParameter('database_driver')), $status, $help]; |
91 | 91 | ||
92 | // testing if connection to the database can be etablished | 92 | // testing if connection to the database can be etablished |
93 | $label = '<comment>Database connection</comment>'; | 93 | $label = '<comment>Database connection</comment>'; |
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php index 91cdcae5..abd35c02 100644 --- a/src/Wallabag/CoreBundle/Controller/ConfigController.php +++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php | |||
@@ -7,6 +7,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller; | |||
7 | use Symfony\Component\HttpFoundation\JsonResponse; | 7 | use Symfony\Component\HttpFoundation\JsonResponse; |
8 | use Symfony\Component\HttpFoundation\RedirectResponse; | 8 | use Symfony\Component\HttpFoundation\RedirectResponse; |
9 | use Symfony\Component\HttpFoundation\Request; | 9 | use Symfony\Component\HttpFoundation\Request; |
10 | use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; | ||
10 | use Wallabag\CoreBundle\Entity\Config; | 11 | use Wallabag\CoreBundle\Entity\Config; |
11 | use Wallabag\CoreBundle\Entity\TaggingRule; | 12 | use Wallabag\CoreBundle\Entity\TaggingRule; |
12 | use Wallabag\CoreBundle\Form\Type\ConfigType; | 13 | use Wallabag\CoreBundle\Form\Type\ConfigType; |
@@ -148,6 +149,9 @@ class ConfigController extends Controller | |||
148 | 'token' => $config->getRssToken(), | 149 | 'token' => $config->getRssToken(), |
149 | ], | 150 | ], |
150 | 'twofactor_auth' => $this->getParameter('twofactor_auth'), | 151 | 'twofactor_auth' => $this->getParameter('twofactor_auth'), |
152 | 'enabled_users' => $this->getDoctrine() | ||
153 | ->getRepository('WallabagUserBundle:User') | ||
154 | ->getSumEnabledUsers(), | ||
151 | ]); | 155 | ]); |
152 | } | 156 | } |
153 | 157 | ||
@@ -251,4 +255,37 @@ class ConfigController extends Controller | |||
251 | 255 | ||
252 | return $config; | 256 | return $config; |
253 | } | 257 | } |
258 | |||
259 | /** | ||
260 | * Delete account for current user. | ||
261 | * | ||
262 | * @Route("/account/delete", name="delete_account") | ||
263 | * | ||
264 | * @param Request $request | ||
265 | * | ||
266 | * @throws AccessDeniedHttpException | ||
267 | * | ||
268 | * @return \Symfony\Component\HttpFoundation\RedirectResponse | ||
269 | */ | ||
270 | public function deleteAccountAction(Request $request) | ||
271 | { | ||
272 | $enabledUsers = $this->getDoctrine() | ||
273 | ->getRepository('WallabagUserBundle:User') | ||
274 | ->getSumEnabledUsers(); | ||
275 | |||
276 | if ($enabledUsers <= 1) { | ||
277 | throw new AccessDeniedHttpException(); | ||
278 | } | ||
279 | |||
280 | $user = $this->getUser(); | ||
281 | |||
282 | // logout current user | ||
283 | $this->get('security.token_storage')->setToken(null); | ||
284 | $request->getSession()->invalidate(); | ||
285 | |||
286 | $em = $this->get('fos_user.user_manager'); | ||
287 | $em->deleteUser($user); | ||
288 | |||
289 | return $this->redirect($this->generateUrl('fos_user_security_login')); | ||
290 | } | ||
254 | } | 291 | } |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml index 2652a102..2de5d7bd 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Navn' | 88 | name_label: 'Navn' |
89 | email_label: 'Emailadresse' | 89 | email_label: 'Emailadresse' |
90 | # twoFactorAuthentication_label: 'Two factor authentication' | 90 | # twoFactorAuthentication_label: 'Two factor authentication' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Gammel adgangskode' | 97 | old_password_label: 'Gammel adgangskode' |
93 | new_password_label: 'Ny adgangskode' | 98 | new_password_label: 'Ny adgangskode' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml index e0f29b61..515d43a0 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Name' | 88 | name_label: 'Name' |
89 | email_label: 'E-Mail-Adresse' | 89 | email_label: 'E-Mail-Adresse' |
90 | twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung' | 90 | twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Altes Kennwort' | 97 | old_password_label: 'Altes Kennwort' |
93 | new_password_label: 'Neues Kennwort' | 98 | new_password_label: 'Neues Kennwort' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml index b8e98112..43f5a950 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Name' | 88 | name_label: 'Name' |
89 | email_label: 'Email' | 89 | email_label: 'Email' |
90 | twoFactorAuthentication_label: 'Two factor authentication' | 90 | twoFactorAuthentication_label: 'Two factor authentication' |
91 | delete: | ||
92 | title: Delete my account (danger zone !) | ||
93 | description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | confirm: Are you really sure? (it can't be UNDONE) | ||
95 | button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Current password' | 97 | old_password_label: 'Current password' |
93 | new_password_label: 'New password' | 98 | new_password_label: 'New password' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml index 70633bd7..adeab2b0 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Nombre' | 88 | name_label: 'Nombre' |
89 | email_label: 'Direccion e-mail' | 89 | email_label: 'Direccion e-mail' |
90 | twoFactorAuthentication_label: 'Autentificación de dos factores' | 90 | twoFactorAuthentication_label: 'Autentificación de dos factores' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Contraseña actual' | 97 | old_password_label: 'Contraseña actual' |
93 | new_password_label: 'Nueva contraseña' | 98 | new_password_label: 'Nueva contraseña' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml index 074ab7a8..0751752b 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'نام' | 88 | name_label: 'نام' |
89 | email_label: 'نشانی ایمیل' | 89 | email_label: 'نشانی ایمیل' |
90 | twoFactorAuthentication_label: 'تأیید ۲مرحلهای' | 90 | twoFactorAuthentication_label: 'تأیید ۲مرحلهای' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'رمز قدیمی' | 97 | old_password_label: 'رمز قدیمی' |
93 | new_password_label: 'رمز تازه' | 98 | new_password_label: 'رمز تازه' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml index 6d85a5ae..1c32a77c 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Nom' | 88 | name_label: 'Nom' |
89 | email_label: 'Adresse e-mail' | 89 | email_label: 'Adresse e-mail' |
90 | twoFactorAuthentication_label: 'Double authentification' | 90 | twoFactorAuthentication_label: 'Double authentification' |
91 | delete: | ||
92 | title: Supprimer mon compte (attention danger !) | ||
93 | description: Si vous confirmez la suppression de votre compte, TOUS les articles, TOUS les tags, TOUTES les annotations et votre compte seront DÉFINITIVEMENT supprimé (c'est IRRÉVERSIBLE). Vous serez ensuite déconnecté. | ||
94 | confirm: Vous êtes vraiment sûr ? (c'est IRRÉVERSIBLE !) | ||
95 | button: 'Supprimer mon compte' | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Mot de passe actuel' | 97 | old_password_label: 'Mot de passe actuel' |
93 | new_password_label: 'Nouveau mot de passe' | 98 | new_password_label: 'Nouveau mot de passe' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml index 15f7e774..f662bd55 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Nome' | 88 | name_label: 'Nome' |
89 | email_label: 'E-mail' | 89 | email_label: 'E-mail' |
90 | twoFactorAuthentication_label: 'Two factor authentication' | 90 | twoFactorAuthentication_label: 'Two factor authentication' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Password corrente' | 97 | old_password_label: 'Password corrente' |
93 | new_password_label: 'Nuova password' | 98 | new_password_label: 'Nuova password' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml index 1d10be2a..9e314f73 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Nom' | 88 | name_label: 'Nom' |
89 | email_label: 'Adreça de corrièl' | 89 | email_label: 'Adreça de corrièl' |
90 | twoFactorAuthentication_label: 'Dobla autentificacion' | 90 | twoFactorAuthentication_label: 'Dobla autentificacion' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Senhal actual' | 97 | old_password_label: 'Senhal actual' |
93 | new_password_label: 'Senhal novèl' | 98 | new_password_label: 'Senhal novèl' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml index 547e9c8b..9877d59a 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Nazwa' | 88 | name_label: 'Nazwa' |
89 | email_label: 'Adres email' | 89 | email_label: 'Adres email' |
90 | twoFactorAuthentication_label: 'Autoryzacja dwuetapowa' | 90 | twoFactorAuthentication_label: 'Autoryzacja dwuetapowa' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Stare hasło' | 97 | old_password_label: 'Stare hasło' |
93 | new_password_label: 'Nowe hasło' | 98 | new_password_label: 'Nowe hasło' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml index 2b1d4f6d..83246ed3 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'Nume' | 88 | name_label: 'Nume' |
89 | email_label: 'E-mail' | 89 | email_label: 'E-mail' |
90 | # twoFactorAuthentication_label: 'Two factor authentication' | 90 | # twoFactorAuthentication_label: 'Two factor authentication' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Parola veche' | 97 | old_password_label: 'Parola veche' |
93 | new_password_label: 'Parola nouă' | 98 | new_password_label: 'Parola nouă' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml index 8cfc245a..24dd6ff8 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml | |||
@@ -88,6 +88,11 @@ config: | |||
88 | name_label: 'İsim' | 88 | name_label: 'İsim' |
89 | email_label: 'E-posta' | 89 | email_label: 'E-posta' |
90 | twoFactorAuthentication_label: 'İki adımlı doğrulama' | 90 | twoFactorAuthentication_label: 'İki adımlı doğrulama' |
91 | delete: | ||
92 | # title: Delete my account (danger zone !) | ||
93 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | ||
94 | # confirm: Are you really sure? (it can't be UNDONE) | ||
95 | # button: Delete my account | ||
91 | form_password: | 96 | form_password: |
92 | old_password_label: 'Eski şifre' | 97 | old_password_label: 'Eski şifre' |
93 | new_password_label: 'Yeni şifre' | 98 | new_password_label: 'Yeni şifre' |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig index ff7ef73a..54508b6d 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig | |||
@@ -150,6 +150,15 @@ | |||
150 | {{ form_widget(form.user.save) }} | 150 | {{ form_widget(form.user.save) }} |
151 | </form> | 151 | </form> |
152 | 152 | ||
153 | {% if enabled_users > 1 %} | ||
154 | <h2>{{ 'config.form_user.delete.title'|trans }}</h2> | ||
155 | |||
156 | <p>{{ 'config.form_user.delete.description'|trans }}</p> | ||
157 | <a href="{{ path('delete_account') }}" onclick="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red delete-account"> | ||
158 | {{ 'config.form_user.delete.button'|trans }} | ||
159 | </a> | ||
160 | {% endif %} | ||
161 | |||
153 | <h2>{{ 'config.tab_menu.password'|trans }}</h2> | 162 | <h2>{{ 'config.tab_menu.password'|trans }}</h2> |
154 | 163 | ||
155 | {{ form_start(form.pwd) }} | 164 | {{ form_start(form.pwd) }} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig index 270c077f..8434508d 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig | |||
@@ -167,6 +167,18 @@ | |||
167 | {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | 167 | {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
168 | {{ form_widget(form.user._token) }} | 168 | {{ form_widget(form.user._token) }} |
169 | </form> | 169 | </form> |
170 | |||
171 | {% if enabled_users > 1 %} | ||
172 | <br /><hr /><br /> | ||
173 | |||
174 | <div class="row"> | ||
175 | <h5>{{ 'config.form_user.delete.title'|trans }}</h5> | ||
176 | <p>{{ 'config.form_user.delete.description'|trans }}</p> | ||
177 | <a href="{{ path('delete_account') }}" onclick="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red delete-account"> | ||
178 | {{ 'config.form_user.delete.button'|trans }} | ||
179 | </a> | ||
180 | </div> | ||
181 | {% endif %} | ||
170 | </div> | 182 | </div> |
171 | 183 | ||
172 | <div id="set4" class="col s12"> | 184 | <div id="set4" class="col s12"> |
diff --git a/src/Wallabag/UserBundle/Repository/UserRepository.php b/src/Wallabag/UserBundle/Repository/UserRepository.php index 009c4881..445edb3c 100644 --- a/src/Wallabag/UserBundle/Repository/UserRepository.php +++ b/src/Wallabag/UserBundle/Repository/UserRepository.php | |||
@@ -38,4 +38,18 @@ class UserRepository extends EntityRepository | |||
38 | ->getQuery() | 38 | ->getQuery() |
39 | ->getSingleResult(); | 39 | ->getSingleResult(); |
40 | } | 40 | } |
41 | |||
42 | /** | ||
43 | * Count how many users are enabled. | ||
44 | * | ||
45 | * @return int | ||
46 | */ | ||
47 | public function getSumEnabledUsers() | ||
48 | { | ||
49 | return $this->createQueryBuilder('u') | ||
50 | ->select('count(u)') | ||
51 | ->andWhere('u.expired = false') | ||
52 | ->getQuery() | ||
53 | ->getSingleScalarResult(); | ||
54 | } | ||
41 | } | 55 | } |