Merge branch 'Eseperio-master'

This commit is contained in:
Lorenzo Milesi
2018-07-13 09:34:46 +02:00
41 changed files with 1896 additions and 136 deletions

View File

@ -0,0 +1,50 @@
# GDPR and Yii2-usuario
EU regulation
The General Data Protection Regulation (GDPR) (EU) 2016/679 is a regulation in EU law on data protection and privacy for all individuals within the European Union and the European Economic Area. It also addresses the export of personal data outside the EU and EEA. The GDPR aims primarily to give control to citizens and residents over their personal data and to simplify the regulatory environment for international business by unifying the regulation within the EU
## Enable GDPR
To enable support in yii2-usuario set `enableGDPRcompliance` to `true` and set
`GDPRprivacyPolicyUrl` with an url pointing to your privacy policy.
### At this moment a few measures apply to your app:
#### Data processing consent:
GDPR says: [Article 7](https://gdpr.algolia.com/gdpr-article-7)
> Where processing is based on consent, the controller shall be able to demonstrate that the data subject has consented to processing of his or her personal data.\[...]
All users must give consent of data processing to register.
Also consent will be stored in db with the user data.
#### Data portability
GDPR says: [Article 20](https://gdpr.algolia.com/gdpr-article-20)
> The data subject shall have the right to receive the personal data concerning him or her, which he
> or she has provided to a controller, in a structured, commonly used and machine-readable format\[...]
Users now have a privacy page in their account settings where they can export his/her personal data
in a csv file.
If you collect additional personal information you can to export by adding to
`GDPRexportProperties`.
> Export use `ArrayHelper::getValue()` to extract information, so you can use links to relations.
#### Right to be forgotten
GDPR says: [Article 17](https://gdpr.algolia.com/gdpr-article-17)
> The data subject shall have the right to obtain from the controller the erasure of personal data concerning him or her without undue delay and the controller shall have the obligation to erase personal data without undue delay\[...]
In privacy page, users will find a button to delete their personal information.
The behavior differs depending module configuration.
If `$allowAccountDelete` is set to `true` the account will be fully deleted when clicking *Delete* button,
while when if that setting is set to `false` the module will remove social network connections and
replace the personal data with a custom alias defined in `$GDPRanonymPrefix`.
The account will be blocked and marked as `gdpr_deleted`.
That way you can keep your site operation as normal.
> If you need to delete additional information use the `GdprEvent::EVENT_BEFORE_DELETE`.

View File

@ -7,11 +7,42 @@ The module comes with a set of attributes to configure. The following is the lis
Setting this attribute will allow users to configure their login process with two-factor authentication.
### twoFactorAuthenticationCycles (type: `integer`, default: `1`)
#### twoFactorAuthenticationCycles (type: `integer`, default: `1`)
By default, Google Authenticator App for two-factor authentication cycles in periods of 30 seconds. In order to allow
a bigger period so to avoid out of sync issues.
#### enableGDPRcompliance (type: `boolean`, default: `false`)
Setting this attribute enables a serie of measures to comply with EU GDPR regulation, like data consent, right to be forgotten and data portability.
#### GDPRprivacyPolicyUrl (type: `array`, default: null)
The link to privacy policy. This will be used on registration form as "read our pivacy policy". It must follow the same format as `yii\helpers\Url::to`
#### GDPRexportProperties (type: `array`)
An array with the name of the user identity properties to be included when user request download of his data.
Names can include relations like `profile.name`.
Defaults to:
```php
[
'email',
'username',
'profile.public_email',
'profile.name',
'profile.gravatar_email',
'profile.location',
'profile.website',
'profile.bio'
]
```
#### GDPRanonymPrefix (type: `string`, default: `GDPR`)
Prefix to be used as a replacement when user requeste deletion of his data
#### enableRegistration (type: `boolean`, default: `true`)
Setting this attribute allows the registration process. If you set it to `false`, the module won't allow users to

View File

@ -78,6 +78,7 @@ class Bootstrap implements BootstrapInterface
$di->set(Event\SocialNetworkAuthEvent::class);
$di->set(Event\SocialNetworkConnectEvent::class);
$di->set(Event\UserEvent::class);
$di->set(Event\GdprEvent::class);
// forms
$di->set(Form\LoginForm::class);
@ -85,6 +86,7 @@ class Bootstrap implements BootstrapInterface
$di->set(Form\RegistrationForm::class);
$di->set(Form\ResendForm::class);
$di->set(Form\SettingsForm::class);
$di->set(Form\GdprDeleteForm::class);
// helpers
$di->set(Helper\AuthHelper::class);

View File

@ -11,11 +11,15 @@
namespace Da\User\Controller;
use Da\User\Contracts\MailChangeStrategyInterface;
use Da\User\Event\GdprEvent;
use Da\User\Event\ProfileEvent;
use Da\User\Event\SocialNetworkConnectEvent;
use Da\User\Event\UserEvent;
use Da\User\Form\GdprDeleteForm;
use Da\User\Form\SettingsForm;
use Da\User\Helper\SecurityHelper;
use Da\User\Model\Profile;
use Da\User\Model\SocialNetworkAccount;
use Da\User\Model\User;
@ -31,6 +35,7 @@ use Da\User\Validator\TwoFactorCodeValidator;
use Yii;
use yii\filters\AccessControl;
use yii\filters\VerbFilter;
use yii\helpers\ArrayHelper;
use yii\web\Controller;
use yii\web\ForbiddenHttpException;
use yii\web\NotFoundHttpException;
@ -52,12 +57,12 @@ class SettingsController extends Controller
/**
* SettingsController constructor.
*
* @param string $id
* @param Module $module
* @param ProfileQuery $profileQuery
* @param UserQuery $userQuery
* @param string $id
* @param Module $module
* @param ProfileQuery $profileQuery
* @param UserQuery $userQuery
* @param SocialNetworkAccountQuery $socialNetworkAccountQuery
* @param array $config
* @param array $config
*/
public function __construct(
$id,
@ -66,7 +71,8 @@ class SettingsController extends Controller
UserQuery $userQuery,
SocialNetworkAccountQuery $socialNetworkAccountQuery,
array $config = []
) {
)
{
$this->profileQuery = $profileQuery;
$this->userQuery = $userQuery;
$this->socialNetworkAccountQuery = $socialNetworkAccountQuery;
@ -95,7 +101,10 @@ class SettingsController extends Controller
'actions' => [
'profile',
'account',
'export',
'networks',
'privacy',
'gdprdelete',
'disconnect',
'delete',
'two-factor',
@ -145,6 +154,142 @@ class SettingsController extends Controller
);
}
public function actionPrivacy()
{
if (!$this->module->enableGDPRcompliance)
throw new NotFoundHttpException();
return $this->render('privacy', [
'module' => $this->module
]);
}
public function actionGdprdelete()
{
if (!$this->module->enableGDPRcompliance)
throw new NotFoundHttpException();
/** @var GdprDeleteForm $form */
$form = $this->make(GdprDeleteForm::class);
$user = $form->getUser();
/* @var $event GdprEvent */
$event = $this->make(GdprEvent::class, [$user]);
if ($form->load(Yii::$app->request->post()) && $form->validate()) {
$this->trigger(GdprEvent::EVENT_BEFORE_DELETE, $event);
if ($event->isValid) {
Yii::$app->user->logout();
//Disconnect social networks
$networks = $this->socialNetworkAccountQuery->where(['user_id' => $user->id])->all();
foreach ($networks as $network) {
$this->disconnectSocialNetwork($network->id);
}
/* @var $security SecurityHelper */
$security = $this->make(SecurityHelper::class);
$anonymReplacement = $this->module->GDPRanonymPrefix . $user->id;
$user->updateAttributes([
'email' => $anonymReplacement . "@example.com",
'username' => $anonymReplacement,
'gdpr_deleted' => 1,
'blocked_at' => time(),
'auth_key' => $security->generateRandomString()
]);
$user->profile->updateAttributes([
'public_email' => $anonymReplacement . "@example.com",
'name' => $anonymReplacement,
'gravatar_email' => $anonymReplacement . "@example.com",
'location' => $anonymReplacement,
'website' => $anonymReplacement . ".tld",
'bio' => Yii::t('usuario', 'Deleted by GDPR request')
]);
}
$this->trigger(GdprEvent::EVENT_AFTER_DELETE, $event);
Yii::$app->session->setFlash('info', Yii::t('usuario', 'Your personal information has been removed'));
return $this->goHome();
}
return $this->render('gdprdelete', [
'model' => $form,
]);
}
/**
* @param $id
* @throws ForbiddenHttpException
* @throws NotFoundHttpException
* @throws \Exception
* @throws \Throwable
* @throws \yii\db\StaleObjectException
*/
protected function disconnectSocialNetwork($id): void
{
/** @var SocialNetworkAccount $account */
$account = $this->socialNetworkAccountQuery->whereId($id)->one();
if ($account === null) {
throw new NotFoundHttpException();
}
if ($account->user_id !== Yii::$app->user->id) {
throw new ForbiddenHttpException();
}
$event = $this->make(SocialNetworkConnectEvent::class, [Yii::$app->user->identity, $account]);
$this->trigger(SocialNetworkConnectEvent::EVENT_BEFORE_DISCONNECT, $event);
$account->delete();
$this->trigger(SocialNetworkConnectEvent::EVENT_AFTER_DISCONNECT, $event);
}
/**
* Exports the data from the current user in a mechanical readable format (csv). Properties exported can be defined
* in the module configuration.
* @throws NotFoundHttpException if gdpr compliance is not enabled
* @throws \Exception
* @throws \Throwable
*/
public function actionExport()
{
if (!$this->module->enableGDPRcompliance)
throw new NotFoundHttpException();
try {
$properties = $this->module->GDPRexportProperties;
$user = Yii::$app->user->identity;
$data = [$properties, []];
foreach ($properties as $property) {
$data[1][] = Yii::$app->formatter->asText(ArrayHelper::getValue($user, $property));
}
array_walk($data[0], function (&$value, $key) {
$splitted = explode('.', $value);
$value = array_pop($splitted);
});
Yii::$app->response->headers->removeAll();
Yii::$app->response->headers->add('Content-type', 'text/csv');
Yii::$app->response->headers->add('Content-Disposition', 'attachment;filename=gdpr-data.csv');
Yii::$app->response->send();
$f = fopen('php://output', 'w');
foreach ($data as $line) {
fputcsv($f, $line);
}
} catch (\Exception $e) {
throw $e;
} catch (\Throwable $e) {
throw $e;
}
}
public function actionAccount()
{
/** @var SettingsForm $form */
@ -204,21 +349,7 @@ class SettingsController extends Controller
public function actionDisconnect($id)
{
/** @var SocialNetworkAccount $account */
$account = $this->socialNetworkAccountQuery->whereId($id)->one();
if ($account === null) {
throw new NotFoundHttpException();
}
if ($account->user_id !== Yii::$app->user->id) {
throw new ForbiddenHttpException();
}
$event = $this->make(SocialNetworkConnectEvent::class, [Yii::$app->user->identity, $account]);
$this->trigger(SocialNetworkConnectEvent::EVENT_BEFORE_DISCONNECT, $event);
$account->delete();
$this->trigger(SocialNetworkConnectEvent::EVENT_AFTER_DISCONNECT, $event);
$this->disconnectSocialNetwork($id);
return $this->redirect(['networks']);
}

View File

@ -0,0 +1,39 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Da\User\Event;
use Da\User\Model\User;
use yii\base\Event;
class GdprEvent extends Event
{
const EVENT_BEFORE_DELETE = 'beforeDelete';
const EVENT_AFTER_DELETE = 'afterDelete';
/**
* @var bool whether logic must continue after this event. Valid only for beforeDelete
*/
public $isValid = true;
protected $user;
public function __construct(User $user, array $config = [])
{
$this->user = $user;
parent::__construct($config);
}
public function getUser()
{
return $this->user;
}
}

View File

@ -0,0 +1,86 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
* @author E. Alamo <erosdelalamo@gmail.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Da\User\Form;
use Da\User\Helper\SecurityHelper;
use Da\User\Model\User;
use Da\User\Traits\ContainerAwareTrait;
use Yii;
use yii\base\Model;
/**
* Class GdprDeleteForm
* @package Da\User\Form
*/
class GdprDeleteForm extends Model
{
use ContainerAwareTrait;
/**
* @var string User's password
*/
public $password;
/**
* @var SecurityHelper
*/
protected $securityHelper;
/**
* @var User
*/
protected $user;
/**
* @param SecurityHelper $securityHelper
* @param array $config
*/
public function __construct(SecurityHelper $securityHelper, $config = [])
{
$this->securityHelper = $securityHelper;
parent::__construct($config);
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
'requiredFields' => [['password'], 'required'],
'passwordValidate' => [
'password',
function ($attribute) {
if (!$this->securityHelper
->validatePassword($this->password, $this->getUser()->password_hash)
) {
$this->addError($attribute, Yii::t('usuario', 'Invalid password'));
}
},
]
];
}
/**
* @return User|null|\yii\web\IdentityInterface
*/
public function getUser()
{
if ($this->user == null) {
$this->user = Yii::$app->user->identity;
}
return $this->user;
}
}

View File

@ -16,6 +16,7 @@ use Da\User\Traits\ContainerAwareTrait;
use Da\User\Traits\ModuleAwareTrait;
use Yii;
use yii\base\Model;
use yii\helpers\Html;
class RegistrationForm extends Model
{
@ -34,6 +35,10 @@ class RegistrationForm extends Model
* @var string Password
*/
public $password;
/**
* @var bool Data processing consent
*/
public $gdpr_consent;
/**
* {@inheritdoc}
@ -70,6 +75,15 @@ class RegistrationForm extends Model
// password rules
'passwordRequired' => ['password', 'required', 'skipOnEmpty' => $this->module->generatePasswords],
'passwordLength' => ['password', 'string', 'min' => 6, 'max' => 72],
'gdprType' => ['gdpr_consent', 'boolean'],
'gdprDefault' => ['gdpr_consent', 'default', 'value' => 0,'skipOnEmpty' => false],
'gdprRequired' => ['gdpr_consent',
'compare',
'compareValue' => true,
'message' => Yii::t('usuario', 'Your consent is required to register'),
'when' => function () {
return $this->module->enableGDPRcompliance;
}]
];
}
@ -82,6 +96,20 @@ class RegistrationForm extends Model
'email' => Yii::t('usuario', 'Email'),
'username' => Yii::t('usuario', 'Username'),
'password' => Yii::t('usuario', 'Password'),
'gdpr_consent' => Yii::t('usuario', 'Data processing consent')
];
}
public function attributeHints()
{
return [
'gdpr_consent' => Yii::t('usuario', 'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}',
[
'privacyPolicy' => Html::a(Yii::t('usuario', 'privacy policy'),
$this->module->GDPRprivacyPolicyUrl,
['target' => '_blank']
)
])
];
}
}

View File

@ -0,0 +1,31 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Da\User\Migration;
use yii\db\Migration;
class m000000_000009_add_gdpr_consent_fields extends Migration
{
public function safeUp()
{
$this->addColumn('{{%user}}', 'gdpr_consent', $this->boolean()->defaultValue(0));
$this->addColumn('{{%user}}', 'gdpr_consent_date', $this->integer(11)->null());
$this->addColumn('{{%user}}', 'gdpr_deleted', $this->boolean()->defaultValue(0));
}
public function safeDown()
{
$this->dropColumn('{{%user}}', 'gdpr_consent');
$this->dropColumn('{{%user}}', 'gdpr_consent_date');
$this->dropColumn('{{%user}}', 'gdpr_deleted');
}
}

View File

@ -22,7 +22,6 @@ use yii\base\InvalidParamException;
use yii\base\NotSupportedException;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\db\Expression;
use yii\helpers\ArrayHelper;
use yii\web\Application;
use yii\web\IdentityInterface;
@ -32,7 +31,9 @@ use yii\web\IdentityInterface;
*
* @property bool $isAdmin
* @property bool $isBlocked
* @property bool $isConfirmed whether user account has been confirmed or not
* @property bool $isConfirmed whether user account has been confirmed or not
* @property bool $gdpr_deleted whether user requested deletion of his account
* @property bool $gdpr_consent whether user has consent personal data processing
*
* Database fields:
* @property int $id
@ -50,10 +51,10 @@ use yii\web\IdentityInterface;
* @property int $created_at
* @property int $updated_at
* @property int $last_login_at
* @property int $gdpr_consent_date date of agreement of data processing
* @property string $last_login_ip
* @property int $password_changed_at
* @property int $password_age
*
* Defined relations:
* @property SocialNetworkAccount[] $socialNetworkAccounts
* @property Profile $profile
@ -83,6 +84,40 @@ class User extends ActiveRecord implements IdentityInterface
* @throws InvalidConfigException
* @throws Exception
*/
public static function tableName()
{
return '{{%user}}';
}
/**
* {@inheritdoc}
*/
public static function findIdentity($id)
{
return static::findOne($id);
}
/**
* @return UserQuery
*/
public static function find()
{
return new UserQuery(static::class);
}
/**
* {@inheritdoc}
*
* @throws NotSupportedException
*/
public static function findIdentityByAccessToken($token, $type = null)
{
throw new NotSupportedException('Method "' . __CLASS__ . '::' . __METHOD__ . '" is not implemented.');
}
/**
* {@inheritdoc}
*/
public function beforeSave($insert)
{
/** @var SecurityHelper $security */
@ -120,22 +155,24 @@ class User extends ActiveRecord implements IdentityInterface
}
}
/**
* {@inheritdoc}
*/
public static function tableName()
{
return '{{%user}}';
}
/**
* {@inheritdoc}
*/
public function behaviors()
{
return [
$behaviors = [
TimestampBehavior::className(),
];
if ($this->module->enableGDPRcompliance) {
$behaviors['GDPR'] = [
'class' => TimestampBehavior::class,
'createdAtAttribute' => 'gdpr_consent_date',
'updatedAtAttribute' => false
];
}
return $behaviors;
}
/**
@ -239,14 +276,6 @@ class User extends ActiveRecord implements IdentityInterface
return $this->getAttribute('auth_key');
}
/**
* {@inheritdoc}
*/
public static function findIdentity($id)
{
return static::findOne($id);
}
/**
* @return bool whether is blocked or not
*/
@ -319,24 +348,6 @@ class User extends ActiveRecord implements IdentityInterface
return $this->connectedAccounts;
}
/**
* @return UserQuery
*/
public static function find()
{
return new UserQuery(static::class);
}
/**
* {@inheritdoc}
*
* @throws NotSupportedException
*/
public static function findIdentityByAccessToken($token, $type = null)
{
throw new NotSupportedException('Method "' . __CLASS__ . '::' . __METHOD__ . '" is not implemented.');
}
/**
* Returns password age in days
* @return integer
@ -347,6 +358,7 @@ class User extends ActiveRecord implements IdentityInterface
return $this->getModule()->maxPasswordAge;
}
$d = new \DateTime("@{$this->password_changed_at}");
return $d->diff(new \DateTime(), true)->format("%a");
}
}

View File

@ -19,6 +19,43 @@ use yii\base\Module as BaseModule;
*/
class Module extends BaseModule
{
/**
* @var bool whether to enable european G.D.P.R. compliance.
* This will add a few elements to comply with european general data protection regulation.
* This regulation affects to all companys in Europe a those companies outside that offer their
* services to the E.U.
* List of elements that will be added when this is enabled:
* - Checkbox to request consent on register form
* - Forgot me button in profile view.
* - Download my data button in profile
*/
public $enableGDPRcompliance = false;
/**
* @var null|array|string with the url to privacy policy.
* Must be in the same format as yii/helpers/Url::to requires.
*/
public $GDPRprivacyPolicyUrl = null;
/**
* @var array with the name of the user identity properties to be included when user request download of his data.
* Names can include relations like `profile.name`.
* GPDR says:
* > The data subject shall have the right to receive the personal data concerning him or her, which he
* > or she has provided to a controller, in a structured, commonly used and machine-readable format
*/
public $GDPRexportProperties = [
'email',
'username',
'profile.public_email',
'profile.name',
'profile.gravatar_email',
'profile.location',
'profile.website',
'profile.bio'
];
/**
* @var string prefix to be used as a replacement when user requeste deletion of his data.
*/
public $GDPRanonymPrefix = 'GDPR';
/**
* @var bool whether to enable two factor authentication or not
*/

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -17,6 +17,81 @@
* NOTE: this file must be saved in UTF-8 encoding.
*/
return [
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => '',
'Are you sure you want to switch to this user for the rest of this Session?' => '',
'Authentication rule class {0} can not be instantiated' => '',
'Authorization rule has been added.' => '',
'Authorization rule has been removed.' => '',
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Cancel' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Class' => '',
'Close' => '',
'Create new rule' => '',
'Created at' => '',
'Data processing consent' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Disable Two-Factor Auth' => '',
'Download my data' => '',
'Enable' => '',
'Enable Two-factor auth' => '',
'Export my data' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'Impersonate this user' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Last login' => '',
'Never' => '',
'New rule' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Privacy' => '',
'Privacy settings' => '',
'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '',
'Role "{0}" not found. Creating it.' => '',
'Rule class must extend "yii\\rbac\\Rule".' => '',
'Rule name {0} is already in use' => '',
'Rule {0} does not exists' => '',
'Rule {0} not found.' => '',
'Rules' => '',
'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => '',
'Switch identities is disabled.' => '',
'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'Two Factor Authentication' => '',
'Two factor successfully enabled.' => '',
'Two-Factor Authentication' => '',
'Two-factor auth protects you against stolen credentials' => '',
'Two-factor authentication code' => '',
'Two-factor authorization has been disabled.' => '',
'Two-factor code' => '',
'Unable to create new authorization rule.' => '',
'Unable to disable two-factor authorization.' => '',
'Unable to update authorization rule.' => '',
'Update rule' => '',
'Updated at' => '',
'User not found.' => '',
'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => '',
'You are about to delete all your personal data from this site.' => '',
'Your consent is required to register' => '',
'Your personal information has been removed' => '',
'privacy policy' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@Eine Nachricht wurde an ihre E-Mail Adresse versandt@@',
'Awesome, almost there. ' => '@@Fast geschafft. @@',
'Class "{0}" does not exist' => '@@Klasse "{0}" existiert nicht@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable two factor authentication' => '',
'Enable two factor authentication' => '',
'Invalid two factor authentication code' => '',

View File

@ -17,23 +17,38 @@
* NOTE: this file must be saved in UTF-8 encoding.
*/
return [
'Are you sure you wish the user to change their password at next login?' => '¿Seguro que desea que el usuario cambia su contraseña en el próximo inicio de sesión?',
'Disable two factor authentication' => 'Inhabilitar la autenticación de dos factores',
'Enable two factor authentication' => 'Habilitar autenticación de dos factores',
'Force password change at next login' => 'Forzar el cambio de contraseña en el próximo inicio de sesión',
'Invalid two factor authentication code' => 'Código de autenticación de dos factores no válido',
'Last password change' => 'Último cambio de contraseña',
'Password age' => 'Antigüedad de la contraseña',
'There was an error in saving user' => 'Se produjo un error al guardar el usuario',
'This will disable two factor authentication. Are you sure?' => 'Esto inhabilitará la autenticación de dos factores. ¿Está seguro?',
'Two Factor Authentication (2FA)' => 'Autenticación de dos factores (2FA)',
'Two factor authentication code' => 'Código de autenticación de dos factores',
'Two factor authentication has been disabled.' => 'La autenticación de dos factores ha sido inhabilitada.',
'Two factor authentication protects you against stolen credentials' => 'La autenticación de dos factores le protege del robo de credenciales',
'Two factor authentication successfully enabled.' => 'La autenticación de dos factores fue habilitada con éxito.',
'Unable to disable Two factor authentication.' => 'No fue posible inhabilitar la autenticación de dos factores.',
'User will be required to change password at next login' => 'En el próximo inicio de sesión se le exigirá al usuario que cambie su contraseña',
'Your password has expired, you must change it now' => 'Su contraseña ha expirado, debe cambiarla ahora',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => 'Doy mi consentimiento para que mis datos personales sean procesados con el fin de operar en este sitio web. Para más información lea nuestra {privacyPolicy}',
'Invalid password' => 'Contraseña incorrecta',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => 'Una vez que haya eliminado sus datos, no podrá volver a iniciar sesión con esta cuenta.',
'Privacy' => 'Privacidad',
'Privacy settings' => 'Ajustes de privacidad',
'This will remove your personal data from this site. You will no longer be able to sign in.' => 'Esto eliminará sus datos personales de este sitio web. No podrá iniciar sesión con esta cuenta.',
'You are about to delete all your personal data from this site.' => 'Está a punto de borrar toda su información personal de este sitio',
'Your consent is required to register' => 'El consentimiento es necesario para poder registrarse',
'Your personal information has been removed' => 'Su información personal ha sido eliminada',
'privacy policy' => 'política de privacidad',
'Disable two factor authentication' => 'Desactivar la autenticación en dos pasos',
'Enable two factor authentication' => 'Activar la autenticación en dos pasos',
'Invalid two factor authentication code' => 'Invalidar el código de autenticación en dos pasos',
'This will disable two factor authentication. Are you sure?' => 'Esto desactivará la autenticación en dos pasos.¿Está seguro?',
'Two Factor Authentication (2FA)' => 'Autenticación en dos pasos (2FA)',
'Two factor authentication code' => 'Código de autenticación en dos pasos',
'Two factor authentication has been disabled.' => 'La autenticación en dos pasos ha sido desactivada.',
'Two factor authentication protects you against stolen credentials' => 'La autenticación en dos pasos le ayuda a protegerse ante el robo de credenciales',
'Two factor authentication successfully enabled.' => 'Activado correctamente',
'Unable to disable Two factor authentication.' => 'Imposible desactivar la autenticación en dos pasos.',
'Disable Two-Factor Auth' => '@@Desabilitar autenticación de dos factores@@',
'Enable Two-factor auth' => '@@Habilitar autenticación de dos factores@@',
'Invalid two-factor code' => '@@Código de dos factores inválido@@',
'This will disable two-factor auth. Are you sure?' => '@@Esto inhabilitará la autenticación de dos factores. Estás seguro?@@',
'Two Factor Authentication' => '@@Autenticación de Dos Factores@@',
'Two factor successfully enabled.' => '@@Autenticación de dos factores habilitada con éxito.@@',
'Two-Factor Authentication' => '@@Autenticación de Dos Factores@@',
'Two-factor auth protects you against stolen credentials' => '@@La autenticación te protege contra el robo de credenciales@@',
'Two-factor authentication code' => '@@Código de doble autenticación@@',
'Two-factor authorization has been disabled.' => '@@La autenticación de dos factores ha sido inhabilitada.@@',
'Two-factor code' => '@@Código de dos factores@@',
'Unable to disable two-factor authorization.' => '@@Ha sido imposible inhabilitar al autenticación de dos factores.@@',
'(not set)' => '(sin establecer)',
'A confirmation message has been sent to your new email address' => 'Se ha enviado un mensaje de confirmación a su nueva dirección de correo electrónico',
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'Se ha enviado un mensaje a su dirección de correo electrónico. Contiene un enlace de confirmación que tiene que seguir para completar el registro.',
@ -62,11 +77,12 @@ return [
'Authorization item successfully created.' => 'Se ha creado con éxito el elemento de autorización.',
'Authorization item successfully removed.' => 'El elemento de autorización ha sido eliminado con éxito.',
'Authorization item successfully updated.' => 'El elemento de autorización ha sido actualizado con éxito.',
'Authorization rule has been added.' => 'Regla de autorización añadida.',
'Authorization rule has been removed.' => 'Regla de autorización eliminada.',
'Authorization rule has been updated.' => 'Regla de autorización actualizada.',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => 'Bien hecho, casi estamos. Ahora tiene que seguir el enlace de confirmación que hemos enviado a su nueva dirección de e-mail.',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => 'Bien hecho, casi estamos. Ahora tiene que seguir el enlace de confirmación que hemos enviado a su antigua dirección de e-mail.',
'Authorization rule has been added.' => 'Regla de autenticación insertada.',
'Authorization rule has been removed.' => 'Regla de autenticación removida.',
'Authorization rule has been updated.' => 'Regla de autenticación actualizada.',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => 'Bien hecho, casi estamos. Ahora tienes que seguir el vínculo de confirmación que hemos enviado a tu nueva dirección de e-mail.',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => 'Bien hecho, casi estamos. Ahora tienes que seguir el vínculo de confirmación que hemos enviado a tu antigua dirección de e-mail.',
'Back to privacy settings' => 'Volver a los ajustes de privacidad ',
'Bio' => 'Biografía',
'Block' => 'Bloquear',
'Block status' => 'Estado de bloqueo',
@ -97,27 +113,37 @@ return [
'Credentials will be sent to the user by email' => 'Las credenciales se enviarán al usuario por correo electrónico',
'Current password' => 'Contraseña actual',
'Current password is not valid' => 'La contraseña actual no es válida',
'Data processing consent' => 'Consentimiento para el procesamiento de datos',
'Delete' => 'Eliminar',
'Delete account' => 'Eliminar cuenta',
'Delete my account' => 'Borrar mi cuenta',
'Delete personal data' => 'Borrar mis datos personales',
'Deleted by GDPR request' => 'Borrado por solicitud GDPR',
'Description' => 'Descripción',
'Didn\'t receive confirmation message?' => '¿No ha recibido el mensaje de confirmación?',
'Disconnect' => 'Desconectar',
'Don\'t have an account? Sign up!' => '¿No tiene cuenta? ¡Regístrese!',
'Don\'t have an account? Sign up!' => '¿No tienes cuenta? ¡Regístrate!',
'Download my data' => 'Descargar mis datos',
'Email' => 'Correo electrónico',
'Email (public)' => 'Correo electrónico (público)',
'Enable' => 'Habilitar',
'Error occurred while changing password' => 'Se ha producido un error al cambiar la contraseña',
'Error occurred while confirming user' => 'Se ha producido un error al confirmar el usuario',
'Error occurred while deleting user' => 'Se ha producido un error al eliminar el usuario',
'Export my data' => 'Exportar mis datos',
'Error sending registration message to "{email}". Please try again later.' => 'Ha ocurrido un error enviando el mensaje de registro a "{email}". Por favor inténtalo de nuevo más tarde.',
'Error sending welcome message to "{email}". Please try again later.' => 'Ha ocurrido un error al enviar el mensaje de bienvenida a "{email}". Por favor inténtalo de nuevo más tarde.',
'Finish' => 'Finalizar',
'Forgot password?' => '¿Olvidó la contraseña?',
'Gravatar email' => 'Correo electrónico de Gravatar',
'Hello' => 'Hola',
'If you already registered, sign in and connect this account on settings page' => 'Si ya está registrado, inicie sesión y conecte esta cuenta en la página de configuración',
'If you cannot click the link, please try pasting the text into your browser' => 'Si tiene problemas, por favor, pegue la siguiente dirección URL en su navegador web',
'If you did not make this request you can ignore this email' => 'Si no hizo esta petición, puede ignorar este mensaje',
'Here you can download your personal data in a comma separated values format.' => 'Aquí puede descargar su información personal en un archivo de valores separados por coma',
'If you already registered, sign in and connect this account on settings page' => 'Si ya está registrados, inicie sesión y conecta esta cuenta en la página de configuración',
'If you cannot click the link, please try pasting the text into your browser' => 'Si tienes problemas, por favor, pegua la siguiente dirección URL en su navegador web',
'If you did not make this request you can ignore this email' => 'PD: Si ha recibido este correo electrónico por error, simplemente elimínelo',
'If you already registered, sign in and connect this account on settings page' => 'Si ya estas registrado, inicia sesión y conecta esta cuenta en la página de configuración',
'If you cannot click the link, please try pasting the text into your browser' => 'Si tienes problemas, por favor, pega la siguiente dirección URL en tu navegador web',
'If you did not make this request you can ignore this email' => 'PD: Si has recibido este correo electrónico por error, simplemente elimínalo',
'Impersonate this user' => 'Personificar este usuario',
'In order to complete your registration, please click the link below' => 'Para completar el registro, pulse el siguiente enlace',
'In order to complete your request, please click the link below' => 'Para completar su petición, pulse el siguiente enlace',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -21,9 +21,23 @@ return [
'Are you sure you wish to send a password recovery email to this user?' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Cancel' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Close' => '',
'Data processing consent' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Disable Two-Factor Auth' => '',
'Download my data' => '',
'Enable' => '',
'Enable Two-factor auth' => '',
'Export my data' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Disable two factor authentication' => '',
'Enable' => '',
'Enable two factor authentication' => '',
@ -32,6 +46,9 @@ return [
'Invalid two factor authentication code' => '',
'Last login' => '',
'Never' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Privacy' => '',
'Privacy settings' => '',
'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '',
'Role "{0}" not found. Creating it.' => '',
@ -39,6 +56,16 @@ return [
'Send password recovery email' => '',
'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'Two Factor Authentication' => '',
'Two factor successfully enabled.' => '',
'Two-Factor Authentication' => '',
'Two-factor auth protects you against stolen credentials' => '',
'Two-factor authentication code' => '',
'Two-factor authorization has been disabled.' => '',
'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Two Factor Authentication (2FA)' => '',
'Two factor authentication code' => '',
@ -53,13 +80,17 @@ return [
'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => '',
'You are about to delete all your personal data from this site.' => '',
'Your consent is required to register' => '',
'Your personal information has been removed' => '',
'privacy policy' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@Üzenet érkezett az e-mail címedre.@@',
'Awesome, almost there. ' => '@@Szuper, majdnem kész.@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -17,16 +17,99 @@
* NOTE: this file must be saved in UTF-8 encoding.
*/
return [
'Are you sure you wish the user to change their password at next login?' => 'Sei sicuro di voler forzare il cambio password al prossimo accesso?',
'Force password change at next login' => 'Forza il cambio password al prossimo accesso',
'Last login IP' => 'Ultimo IP di accesso',
'Last login time' => 'Ultimo accesso',
'Last password change' => 'Ultimo cambio password',
'Password age' => 'Età password',
'There was an error in saving user' => 'Si è verificato un errore nel salvataggio dell\'utente',
'User will be required to change password at next login' => 'L\'utente dovrà cambiare la password al prossimo accesso',
'Your password has expired, you must change it now' => 'La tua password è scaduta, devi cambiarla',
'{0, date, MMM dd, YYYY HH:mm}' => '{0, date, dd MMM YYYY HH:mm}',
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Cancel' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Close' => '',
'Data processing consent' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Disable Two-Factor Auth' => '',
'Download my data' => '',
'Enable' => '',
'Enable Two-factor auth' => '',
'Export my data' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Last login' => '',
'Never' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Privacy' => '',
'Privacy settings' => '',
'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '',
'Role "{0}" not found. Creating it.' => '',
'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => '',
'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'Two Factor Authentication' => '',
'Two factor successfully enabled.' => '',
'Two-Factor Authentication' => '',
'Two-factor auth protects you against stolen credentials' => '',
'Two-factor authentication code' => '',
'Two-factor authorization has been disabled.' => '',
'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '',
'User not found.' => '',
'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => '',
'You are about to delete all your personal data from this site.' => '',
'Your consent is required to register' => '',
'Your personal information has been removed' => '',
'privacy policy' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@È stato inviato un messaggio al tuo indirizzo email@@',
'Awesome, almost there. ' => '@@Fantastico, ci siamo quasi. @@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'We couldn\'t re-send the mail to confirm your address. ' => '@@Non è stato possibile reinviare l\'email per confermare il tuo indirizzo. @@',
'We have sent confirmation links to both old and new email addresses. ' => '@@Abbiamo inviato un link di conferma sia al nuovo che al vecchio indirizzo email. @@',
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'È stato inviato un messaggio al tuo indirizzo email. Contiene un collegamento di verifica che devi aprire per completare la registrazione.',
'Are you sure you wish to send a password recovery email to this user?' => 'Sicuro di voler inviare un email di recupero password a questo utente?',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => 'Fantastico, ci siamo quasi. Ora devi solo visitare il collegamento di conferma che è stato inviato al tuo nuovo indirizzo email.',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => 'Fantastico, ci siamo quasi. Ora devi solo visitare il collegamento di conferma che è stato inviato al tuo vecchio indirizzo email.',
'Cancel' => 'Annulla',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => 'Impossibile assegnare il ruolo "{0}" perché l\'AuthManager non è configurato nella applicazione da console.',
'Close' => 'Chiudi',
'Disable two factor authentication' => 'Disabilita autenticazione a due fattori',
'Enable' => 'Abilita',
'Enable two factor authentication' => 'Abilita l\'autenticazione a due fattori',
'Error sending registration message to "{email}". Please try again later.' => 'C\'è stato un errore nell\'invio del messaggio di registrazione all\'indirizzo "{email}". Per favore ritenta più tardi.',
'Error sending welcome message to "{email}". Please try again later.' => 'C\'è stato un errore nell\'invio del messaggio di benvenuto all\'indirizzo "{email}". Per favore ritenta più tardi.',
'Invalid two factor authentication code' => 'Il codice dell\'autenticazione a due fattori non è valido',
'Last login' => 'Ultimo accesso',
'Never' => 'Mai',
'Required "key" cannot be empty.' => 'Il campo "chiave" è richiesto, non può essere vuoto.',
'Required "secret" cannot be empty.' => 'Il campo "segreto" è richiesto, non può essere vuoto.',
'Role "{0}" not found. Creating it.' => 'Ruolo "{0}" non trovato. È stato creato.',
'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => 'Scansiona il codice QR con l\'applicazione Google Authenticator, poi inserisci il codice temporaneo nel riquadro ed invia.',
'Send password recovery email' => 'Invia email di recupero password',
'The "recaptcha" component must be configured.' => 'Occorre configurare il componente "recaptcha".',
'The verification code is incorrect.' => 'Il codice di verifica non è corretto.',
'This will disable two factor authentication. Are you sure?' => 'Stai per disabilitare l\'autenticazione a due fattori. Sei sicuro?',
'Two Factor Authentication (2FA)' => 'Autenticazione a due fattori (2FA)',
'Two factor authentication code' => 'Codice di autenticazione a due fattori',
'Two factor authentication has been disabled.' => 'Autenticazione a due fattori disabilitata.',
'Two factor authentication protects you against stolen credentials' => 'L\'autenticazione a due fattori può proteggerti dal furto di credenziali',
'Two factor authentication successfully enabled.' => 'Autenticazione a due fattori abilitata con successo.',
'Unable to disable Two factor authentication.' => 'Impossibile disabilitare l\'autenticazione a due fattori.',
'Unable to send recovery message to the user' => 'Impossibile inviare il messaggio di recupero password all\'utente',
'User account could not be created.' => 'Impossibile creare il nuovo utente.',
'User could not be registered.' => 'Impossibile registrare l\'utente.',
'User not found.' => 'Utente non trovato.',
'Verification failed. Please, enter new code.' => 'Verifica fallita. Per favore inserisci un nuovo codice.',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => 'Non siamo riusciti ad inviare una email di conferma al tuo indirizzo. Per favore verifica che sia corretto e che non sia già stato confermato.',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => 'Abbiamo inviato un link di conferma sia al vecchio che al nuovo indirizzo email. Devi visitare entrambi i link per completare la richiesta.',
'{0} cannot be blank.' => '{0} non può essere vuoto.',
'(not set)' => '(non impostato)',
'A confirmation message has been sent to your new email address' => 'È stato inviato un messaggio di conferma al tuo nuovo indirizzo email',
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'È stato inviato un messaggio al tuo indirizzo email. Contiene un collegamento di verifica che devi aprire per completare la registrazione.',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -17,6 +17,20 @@
* NOTE: this file must be saved in UTF-8 encoding.
*/
return [
'Back to privacy settings' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Data processing consent' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Download my data' => '',
'Export my data' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'Invalid password' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Privacy' => '',
'Privacy settings' => '',
'Are you sure you wish to send a password recovery email to this user?' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Disable two factor authentication' => '',
@ -30,6 +44,14 @@ return [
'Send password recovery email' => '',
'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'You are about to delete all your personal data from this site.' => '',
'Your consent is required to register' => '',
'Your personal information has been removed' => '',
'privacy policy' => '',
'{0} cannot be blank.' => '',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'This will disable two factor authentication. Are you sure?' => '',
'Two Factor Authentication (2FA)' => '',
'Two factor authentication code' => '',

View File

@ -17,6 +17,256 @@
* NOTE: this file must be saved in UTF-8 encoding.
*/
return [
'(not set)' => '',
'A confirmation message has been sent to your new email address' => '',
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => '',
'A new confirmation link has been sent' => '',
'A password will be generated automatically if not provided' => '',
'Account' => '',
'Account confirmation' => '',
'Account details' => '',
'Account details have been updated' => '',
'Account settings' => '',
'Already registered? Sign in!' => '',
'An email has been sent with instructions for resetting your password' => '',
'An error occurred processing your request' => '',
'Are you sure you want to block this user?' => '',
'Are you sure you want to confirm this user?' => '',
'Are you sure you want to delete this user?' => '',
'Are you sure you want to switch to this user for the rest of this Session?' => '',
'Are you sure you want to unblock this user?' => '',
'Are you sure? Deleted user can not be restored' => '',
'Are you sure? There is no going back' => '',
'Assignments' => '',
'Assignments have been updated' => '',
'Auth item with such name already exists' => '',
'Authentication rule class {0} can not be instantiated' => '',
'Authorization item successfully created.' => '',
'Authorization item successfully removed.' => '',
'Authorization item successfully updated.' => '',
'Authorization rule has been added.' => '',
'Authorization rule has been removed.' => '',
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
'Blocked at {0, date, MMMM dd, YYYY HH:mm}' => '',
'Cancel' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Change your avatar at Gravatar.com' => '',
'Children' => '',
'Class' => '',
'Close' => '',
'Complete password reset on {0}' => '',
'Confirm' => '',
'Confirm account on {0}' => '',
'Confirm email change on {0}' => '',
'Confirmation' => '',
'Confirmation status' => '',
'Confirmation time' => '',
'Confirmed' => '',
'Confirmed at {0, date, MMMM dd, YYYY HH:mm}' => '',
'Connect' => '',
'Continue' => '',
'Create' => '',
'Create a user account' => '',
'Create new permission' => '',
'Create new role' => '',
'Create new rule' => '',
'Created at' => '',
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable Two-Factor Auth' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
'Enable Two-factor auth' => '',
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
'Impersonate this user' => '',
'In order to complete your registration, please click the link below' => '',
'In order to complete your request, please click the link below' => '',
'In order to finish your registration, we need you to enter following fields' => '',
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
'Items' => '',
'Joined on {0, date}' => '',
'Last login' => '',
'Location' => '',
'Login' => '',
'Logout' => '',
'Manage users' => '',
'Name' => '',
'Networks' => '',
'Never' => '',
'New email' => '',
'New password' => '',
'New permission' => '',
'New role' => '',
'New rule' => '',
'New user' => '',
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
'Profile settings' => '',
'Recover your password' => '',
'Recovery link is invalid or expired. Please try requesting a new one.' => '',
'Recovery message sent' => '',
'Registration IP' => '',
'Registration on this website is disabled' => '',
'Registration time' => '',
'Remember me next time' => '',
'Request new confirmation message' => '',
'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '',
'Reset your password' => '',
'Role "{0}" not found. Creating it.' => '',
'Roles' => '',
'Rule' => '',
'Rule class must extend "yii\\rbac\\Rule".' => '',
'Rule name' => '',
'Rule name {0} is already in use' => '',
'Rule {0} does not exists' => '',
'Rule {0} not found.' => '',
'Rules' => '',
'Save' => '',
'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => '',
'Sign in' => '',
'Sign up' => '',
'Something went wrong' => '',
'Switch identities is disabled.' => '',
'Thank you for signing up on {0}' => '',
'Thank you, registration is now complete.' => '',
'The "recaptcha" component must be configured.' => '',
'The confirmation link is invalid or expired. Please try requesting a new one.' => '',
'The verification code is incorrect.' => '',
'There is neither role nor permission with name "{0}"' => '',
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'Time zone' => '',
'Time zone is not valid' => '',
'Two Factor Authentication' => '',
'Two factor successfully enabled.' => '',
'Two-Factor Authentication' => '',
'Two-factor auth protects you against stolen credentials' => '',
'Two-factor authentication code' => '',
'Two-factor authorization has been disabled.' => '',
'Two-factor code' => '',
'Unable to confirm user. Please, try again.' => '',
'Unable to create an account.' => '',
'Unable to create authorization item.' => '',
'Unable to create new authorization rule.' => '',
'Unable to delete user. Please, try again later.' => '',
'Unable to disable two-factor authorization.' => '',
'Unable to remove authorization item.' => '',
'Unable to send confirmation link' => '',
'Unable to update authorization item.' => '',
'Unable to update authorization rule.' => '',
'Unable to update block status.' => '',
'Unblock' => '',
'Unconfirmed' => '',
'Update' => '',
'Update assignments' => '',
'Update permission' => '',
'Update role' => '',
'Update rule' => '',
'Update user account' => '',
'Updated at' => '',
'User block status has been updated.' => '',
'User has been confirmed' => '',
'User has been created' => '',
'User has been deleted' => '',
'User is not found' => '',
'User not found.' => '',
'Username' => '',
'Users' => '',
'VKontakte' => '',
'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',
'We have generated a password for you' => '',
'We have received a request to change the email address for your account on {0}' => '',
'We have received a request to reset the password for your account on {0}' => '',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => '',
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
'You need to confirm your email address' => '',
'Your account details have been updated' => '',
'Your account has been blocked' => '',
'Your account has been blocked.' => '',
'Your account has been completely deleted' => '',
'Your account has been connected' => '',
'Your account has been created' => '',
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'We couldn\'t re-send the mail to confirm your address. ' => '@@@@',
'We have sent confirmation links to both old and new email addresses. ' => '@@@@',
'Disable two factor authentication' => '',
'Enable two factor authentication' => '',
'Invalid two factor authentication code' => '',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -21,9 +21,23 @@ return [
'Are you sure you wish to send a password recovery email to this user?' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Cancel' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Close' => '',
'Data processing consent' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Disable Two-Factor Auth' => '',
'Download my data' => '',
'Enable' => '',
'Enable Two-factor auth' => '',
'Export my data' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Disable two factor authentication' => '',
'Enable' => '',
'Enable two factor authentication' => '',
@ -32,6 +46,9 @@ return [
'Invalid two factor authentication code' => '',
'Last login' => '',
'Never' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Privacy' => '',
'Privacy settings' => '',
'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '',
'Role "{0}" not found. Creating it.' => '',
@ -39,6 +56,16 @@ return [
'Send password recovery email' => '',
'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'Two Factor Authentication' => '',
'Two factor successfully enabled.' => '',
'Two-Factor Authentication' => '',
'Two-factor auth protects you against stolen credentials' => '',
'Two-factor authentication code' => '',
'Two-factor authorization has been disabled.' => '',
'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Two Factor Authentication (2FA)' => '',
'Two factor authentication code' => '',
@ -53,13 +80,17 @@ return [
'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => '',
'You are about to delete all your personal data from this site.' => '',
'Your consent is required to register' => '',
'Your personal information has been removed' => '',
'privacy policy' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@A fost trimis un mesaj la adresa dvs. de e-mail.@@',
'Awesome, almost there. ' => '@@Minunat, aproape acolo.@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -17,6 +17,61 @@
* NOTE: this file must be saved in UTF-8 encoding.
*/
return [
'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Cancel' => '',
'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => '',
'Close' => '',
'Data processing consent' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Disable Two-Factor Auth' => '',
'Download my data' => '',
'Enable' => '',
'Enable Two-factor auth' => '',
'Export my data' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Last login' => '',
'Never' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Privacy' => '',
'Privacy settings' => '',
'Required "key" cannot be empty.' => '',
'Required "secret" cannot be empty.' => '',
'Role "{0}" not found. Creating it.' => '',
'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => '',
'The "recaptcha" component must be configured.' => '',
'The verification code is incorrect.' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'Two Factor Authentication' => '',
'Two factor successfully enabled.' => '',
'Two-Factor Authentication' => '',
'Two-factor auth protects you against stolen credentials' => '',
'Two-factor authentication code' => '',
'Two-factor authorization has been disabled.' => '',
'Two-factor code' => '',
'Unable to disable two-factor authorization.' => '',
'User not found.' => '',
'Verification failed. Please, enter new code.' => '',
'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => '',
'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => '',
'You are about to delete all your personal data from this site.' => '',
'Your consent is required to register' => '',
'Your personal information has been removed' => '',
'privacy policy' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@Сообщение было отправлено на вашу электронную почту@@',
'Awesome, almost there. ' => '@@Замечательно, почти готово!@@',
'Class "{0}" does not exist' => '@@Класс "{0}" не найден@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable two factor authentication' => 'Выключить двухфакторную авторизацию',
'Enable two factor authentication' => 'Включить двухфакторную авторизацию',
'Invalid two factor authentication code' => 'Неверный код двухфакторной авторизации',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -50,6 +50,7 @@ return [
'Authorization rule has been updated.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => '',
'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => '',
'Back to privacy settings' => '',
'Bio' => '',
'Block' => '',
'Block status' => '',
@ -80,13 +81,18 @@ return [
'Credentials will be sent to the user by email' => '',
'Current password' => '',
'Current password is not valid' => '',
'Data processing consent' => '',
'Delete' => '',
'Delete account' => '',
'Delete my account' => '',
'Delete personal data' => '',
'Deleted by GDPR request' => '',
'Description' => '',
'Didn\'t receive confirmation message?' => '',
'Disable two factor authentication' => '',
'Disconnect' => '',
'Don\'t have an account? Sign up!' => '',
'Download my data' => '',
'Email' => '',
'Email (public)' => '',
'Enable' => '',
@ -94,12 +100,15 @@ return [
'Error occurred while changing password' => '',
'Error occurred while confirming user' => '',
'Error occurred while deleting user' => '',
'Export my data' => '',
'Error sending registration message to "{email}". Please try again later.' => '',
'Error sending welcome message to "{email}". Please try again later.' => '',
'Finish' => '',
'Forgot password?' => '',
'Gravatar email' => '',
'Hello' => '',
'Here you can download your personal data in a comma separated values format.' => '',
'I aggree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => '',
'If you already registered, sign in and connect this account on settings page' => '',
'If you cannot click the link, please try pasting the text into your browser' => '',
'If you did not make this request you can ignore this email' => '',
@ -110,6 +119,8 @@ return [
'Information' => '',
'Invalid login or password' => '',
'Invalid or expired link' => '',
'Invalid password' => '',
'Invalid two-factor code' => '',
'Invalid two factor authentication code' => '',
'Invalid value' => '',
'It will be deleted forever' => '',
@ -132,12 +143,15 @@ return [
'Not blocked' => '',
'Not found' => '',
'Once you delete your account, there is no going back' => '',
'Once you have deleted your data, you will not longer be able to sign in with this account.' => '',
'Password' => '',
'Password has been changed' => '',
'Permissions' => '',
'Please be certain' => '',
'Please click the link below to complete your password reset' => '',
'Please fix following errors:' => '',
'Privacy' => '',
'Privacy settings' => '',
'Profile' => '',
'Profile details' => '',
'Profile details have been updated' => '',
@ -178,6 +192,8 @@ return [
'This account has already been connected to another user' => '',
'This email address has already been taken' => '',
'This username has already been taken' => '',
'This will disable two-factor auth. Are you sure?' => '',
'This will remove your personal data from this site. You will no longer be able to sign in.' => '',
'This will disable two factor authentication. Are you sure?' => '',
'Time zone' => '',
'Time zone is not valid' => '',
@ -227,6 +243,7 @@ return [
'Website' => '',
'Welcome to {0}' => '',
'Yandex' => '',
'You are about to delete all your personal data from this site.' => '',
'You can assign multiple roles or permissions to user by using the form below' => '',
'You can connect multiple accounts to be able to log in using them' => '',
'You cannot remove your own account' => '',
@ -240,20 +257,23 @@ return [
'Your account has been created and a message with further instructions has been sent to your email' => '',
'Your account on {0} has been created' => '',
'Your confirmation token is invalid or expired' => '',
'Your consent is required to register' => '',
'Your email address has been changed' => '',
'Your personal information has been removed' => '',
'Your profile has been updated' => '',
'privacy policy' => '',
'{0, date, MMMM dd, YYYY HH:mm}' => '',
'{0} cannot be blank.' => '',
'A message has been sent to your email address. ' => '@@@@',
'Awesome, almost there. ' => '@@@@',
'Class "{0}" does not exist' => '@@@@',
'I aggree processing of my personal data and the use of cookies
to facilitate the operation of this site. For more information read our {privacyPolicy}' => '@@@@',
'Disable Two-Factor Auth' => '@@@@',
'Enable Two-factor auth' => '@@@@',
'Invalid two-factor code' => '@@@@',
'Registration ip' => '@@@@',
'Rule class can not be instantiated' => '@@@@',
'Rule class must extend "yii\\rbac\\Rule"' => '@@@@',
'This will disable two-factor auth. Are you sure?' => '@@@@',
'Two Factor Authentication' => '@@@@',
'Two factor successfully enabled.' => '@@@@',
'Two-Factor Authentication' => '@@@@',

View File

@ -45,6 +45,10 @@ $this->params['breadcrumbs'][] = $this->title;
<?= $form->field($model, 'password')->passwordInput() ?>
<?php endif ?>
<?php if ($module->enableGDPRcompliance): ?>
<?= $form->field($model, 'gdpr_consent')->checkbox(['value' => 1]) ?>
<?php endif ?>
<?= Html::submitButton(Yii::t('usuario', 'Sign up'), ['class' => 'btn btn-success btn-block']) ?>
<?php ActiveForm::end(); ?>

View File

@ -14,6 +14,7 @@ use yii\widgets\Menu;
/** @var \Da\User\Model\User $user */
$user = Yii::$app->user->identity;
$module = Yii::$app->getModule('user');
$networksVisible = count(Yii::$app->authClientCollection->clients) > 0;
?>
@ -40,6 +41,10 @@ $networksVisible = count(Yii::$app->authClientCollection->clients) > 0;
'items' => [
['label' => Yii::t('usuario', 'Profile'), 'url' => ['/user/settings/profile']],
['label' => Yii::t('usuario', 'Account'), 'url' => ['/user/settings/account']],
['label' => Yii::t('usuario', 'Privacy'),
'url' => ['/user/settings/privacy'],
'visible' => $module->enableGDPRcompliance
],
[
'label' => Yii::t('usuario', 'Networks'),
'url' => ['/user/settings/networks'],

View File

@ -0,0 +1,59 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
use yii\widgets\ActiveForm;
use yii\helpers\Html;
/* @var $model \Da\User\Form\GdprDeleteForm */
?>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">
<?= Yii::t('usuario', 'Delete personal data') ?>
</h3>
</div>
<div class="panel-body">
<p><?= Yii::t('usuario', 'You are about to delete all your personal data from this site.') ?></p>
<p class="text-danger">
<?= Yii::t(
'usuario',
'Once you have deleted your data, you will not longer be able to sign in with this account.'
) ?>
</p>
<hr>
<?php
$form = ActiveForm::begin([])
?>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<?= $form->field($model, 'password')->passwordInput() ?>
</div>
</div>
<div class="row">
<div class="col-md-12 text-center">
<?= Html::submitButton(Yii::t('usuario', 'Delete'), ['class' => 'btn btn-danger']) ?>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-12 text-center">
<?= Html::a(Yii::t('usuario','Back to privacy settings'),['/user/settings/privacy'],['class'=>'btn btn-info']) ?>
</div>
</div>
<?php
ActiveForm::end();
?>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,70 @@
<?php
use yii\helpers\Html;
/* @var $module \Da\User\Module */
$this->title = Yii::t('usuario', 'Privacy settings');
?>
<div class="row">
<div class="col-md-3">
<?= $this->render('_menu') ?>
</div>
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><?= Html::encode($this->title) ?></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<h3><?= Yii::t('usuario', 'Export my data') ?></h3>
<p><?= Yii::t(
'usuario',
'Here you can download your personal data in a comma separated values format.'
) ?>
</p>
<?= Html::a(Yii::t('usuario', 'Download my data'),
['/user/settings/export'],
[
'class' => 'btn btn-info',
'target' => '_blank'
])
?>
</div>
<div class="col-md-6">
<h3><?= Yii::t('usuario', 'Delete my account') ?></h3>
<p><?= Yii::t(
'usuario',
'This will remove your personal data from this site. You will no longer be able to sign in.'
) ?>
</p>
<?php if ($module->allowAccountDelete): ?>
<?= Html::a(
Yii::t('usuario', 'Delete account'),
['delete'],
[
'id' => 'gdpr-del-button',
'class' => 'btn btn-danger',
'data-method' => 'post',
'data-confirm' => Yii::t('usuario', 'Are you sure? There is no going back'),
]
) ?>
<? else:
echo Html::a(Yii::t('usuario', 'Delete'),
['/user/settings/gdprdelete'],
[
'class' => 'btn btn-danger',
'id' => 'gdpr-del-button',
])
?>
<?php endif ?>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -32,12 +32,12 @@ $timezoneHelper = $model->make(TimezoneHelper::class);
<div class="row">
<div class="col-md-3">
<?= $this->render('/profile/_menu') ?>
<?= $this->render('_menu') ?>
</div>
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-heading">
<?= Html::encode($this->title) ?>
<h3 class="panel-title"><?= Html::encode($this->title) ?></h3>
</div>
<div class="panel-body">
<?php $form = ActiveForm::begin(

View File

@ -73,6 +73,9 @@ CREATE TABLE `user` (
`auth_tf_enabled` tinyint(1) DEFAULT '0',
`flags` int(11) NOT NULL DEFAULT '0',
`last_login_at` int(11) DEFAULT NULL,
`gdpr_consent` tinyint(1) NULL DEFAULT '0',
`gdpr_consent_date` int(11) NULL,
`gdpr_deleted` tinyint(1) DEFAULT '0',
`last_login_ip` varchar(45) DEFAULT NULL,
`password_changed_at` int(11) DEFAULT NULL,
@ -81,4 +84,113 @@ CREATE TABLE `user` (
UNIQUE KEY `user_unique_username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `auth_assignment`;
CREATE TABLE `auth_assignment` (
`item_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`user_id` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`created_at` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Structure `auth_item`
--
DROP TABLE IF EXISTS `auth_item`;
CREATE TABLE `auth_item` (
`name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`type` smallint(6) NOT NULL,
`description` text COLLATE utf8_unicode_ci,
`rule_name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
`data` blob,
`created_at` int(11) DEFAULT NULL,
`updated_at` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Structure `auth_item_child`
--
DROP TABLE IF EXISTS `auth_item_child`;
CREATE TABLE `auth_item_child` (
`parent` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`child` varchar(64) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Structure `auth_rule`
--
DROP TABLE IF EXISTS `auth_rule`;
CREATE TABLE `auth_rule` (
`name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`data` blob,
`created_at` int(11) DEFAULT NULL,
`updated_at` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Indexes
--
--
-- Index for `auth_assignment`
--
ALTER TABLE `auth_assignment`
ADD PRIMARY KEY (`item_name`,`user_id`),
ADD KEY `auth_assignment_user_id_idx` (`user_id`);
--
-- Index for `auth_item`
--
ALTER TABLE `auth_item`
ADD PRIMARY KEY (`name`),
ADD KEY `rule_name` (`rule_name`),
ADD KEY `idx-auth_item-type` (`type`);
--
-- Index for `auth_item_child`
--
ALTER TABLE `auth_item_child`
ADD PRIMARY KEY (`parent`,`child`),
ADD KEY `child` (`child`);
--
-- Index for `auth_rule`
--
ALTER TABLE `auth_rule`
ADD PRIMARY KEY (`name`);
--
-- Restrictions
--
--
-- `auth_assignment` filters
--
ALTER TABLE `auth_assignment`
ADD CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- `auth_item` filters
--
ALTER TABLE `auth_item`
ADD CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE;
--
-- `auth_item_child` filters
--
ALTER TABLE `auth_item_child`
ADD CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,170 @@
<?php
use Da\User\Model\Token;
use Da\User\Model\User;
use Da\User\Module;
use tests\_fixtures\UserFixture;
use yii\helpers\Html;
class GdprCest
{
public function _before(FunctionalTester $I)
{
$I->haveFixtures([
'user' => UserFixture::class,
'profile' => \tests\_fixtures\ProfileFixture::class
]);
}
public function _after(FunctionalTester $I)
{
\Yii::$container->set(Module::className(), [
'enableEmailConfirmation' => true,
'generatePasswords' => false,
]);
}
/**
* Tests registration with email, username and password without any confirmation.
*
* @param FunctionalTester $I
*/
public function testGdprRegistration(FunctionalTester $I)
{
$this->_prepareModule(false, false);
$I->amOnRoute('/user/registration/register');
$I->amGoingTo('try to register with empty credentials');
$this->register($I, '', '', '', false);
$I->see('Username cannot be blank');
$I->see('Email cannot be blank');
$I->see('Password cannot be blank');
$I->see('Your consent is required to register');
$I->amGoingTo('try to register with already used email and username');
$user = $I->grabFixture('user', 'user');
$this->register($I, $user->email, $user->username, 'qwerty');
$I->see(Html::encode('This username has already been taken'));
$I->see(Html::encode('This email address has already been taken'));
$this->register($I, 'tester@example.com', 'tester', 'tester');
$I->see('Your account has been created');
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
$I->assertTrue($user->isConfirmed);
$I->amOnRoute('/user/security/login');
$I->fillField('#loginform-login', 'tester');
$I->fillField('#loginform-password', 'tester');
$I->click('Sign in');
$I->see('Logout');
}
public function _prepareModule($emailConfirmation = true, $generatePasswords = false, $enableGdpr = true)
{
/* @var $module Module */
$module = Yii::$app->getModule('user');
$module->enableEmailConfirmation = $emailConfirmation;
$module->generatePasswords = $generatePasswords;
$module->enableGDPRcompliance = $enableGdpr;
}
protected function register(FunctionalTester $I, $email, $username = null, $password = null, $gdpr_consent = true)
{
$I->fillField('#registrationform-email', $email);
$I->fillField('#registrationform-username', $username);
if ($password !== null) {
$I->fillField('#registrationform-password', $password);
}
if ($gdpr_consent)
$I->checkOption('#registrationform-gdpr_consent');
$I->click('Sign up');
}
/**
* Tests registration when confirmation message is sent.
*
* @param FunctionalTester $I
*/
public function testRegistrationWithConfirmation(FunctionalTester $I)
{
$this->_prepareModule(true);
$I->amOnRoute('/user/registration/register');
$this->register($I, 'tester@example.com', 'tester', 'tester');
$I->see('Your account has been created and a message with further instructions has been sent to your email');
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
/** @var yii\swiftmailer\Message $message */
$message = $I->grabLastSentEmail();
$I->assertArrayHasKey($user->email, $message->getTo());
$I->assertContains(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
$I->assertFalse($user->isConfirmed);
}
/**
* Tests registration when password is generated automatically and sent to user.
*
* @param FunctionalTester $I
*/
public function testRegistrationWithoutPassword(FunctionalTester $I)
{
$this->_prepareModule(false, true);
$I->amOnRoute('/user/registration/register');
$this->register($I, 'tester@example.com', 'tester');
$I->see('Your account has been created');
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
$I->assertEquals('tester', $user->username);
/** @var yii\swiftmailer\Message $message */
$message = $I->grabLastSentEmail();
$I->assertArrayHasKey($user->email, $message->getTo());
$I->assertContains('We have generated a password for you', utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
}
/**
* Test privacy page
*
* @param FunctionalTester $I
*/
public function testPrivacyPage(FunctionalTester $I)
{
$I->amGoingTo('try that privacy page works');
$I->amLoggedInAs(1);
$this->_prepareModule(false, false);
$I->amOnRoute('/user/settings/privacy');
$I->see('Export my data', 'h3');
$I->see('Delete my account', 'h3');
$I->amOnRoute('/user/settings/gdprdelete');
$I->fillField('#gdprdeleteform-password','wrongpassword');
$I->click('Delete');
$I->see('Invalid password');
$I->fillField('#gdprdeleteform-password','qwerty');
$I->click('Delete');
$I->see('Login');
}
/**
* Test privacy page
*
* @param FunctionalTester $I
*/
public function testPrivacyPageAccess(FunctionalTester $I)
{
$I->amGoingTo('Try that a user cant access to privacy if GDPR is not enabled');
$this->_prepareModule(false, false,false);
$I->amLoggedInAs(1);
$I->amOnRoute('/user/settings/privacy');
$I->see('Not Found');
$I->amOnRoute('/user/settings/privacy');
$I->see('Not Found');$I->amOnRoute('/user/settings/privacy');
$I->see('Not Found');
}
}