Merge remote-tracking branch 'upstream/master' into dev-ctrlr-modules

# Conflicts:
#	CHANGELOG.md
This commit is contained in:
Tõnis Ormisson
2018-09-15 10:18:50 +03:00
17 changed files with 45 additions and 26 deletions

View File

@ -15,6 +15,7 @@
- Fix #195: UserCreateService: check if we're from web before setting flash message (maxxer)
- Enh: Improvements to the admin responsive design (wautvda)
- Enh: Add controller module class reference (TonisOrmisson)
- Enh: Replace the deprecated InvalidParamException in ClassMapHelper (TonisOrmisson)
## 1.1.4 - February 19, 2018
- Enh: Check enableEmailConfirmation on registration (faenir)

View File

@ -13,6 +13,9 @@ The following is the list of action provided by the module:
- **/user/settings/profile** Displays profile settings form
- **/user/settings/account** Displays account settings form (email, username, password)
- **/user/settings/networks** Displays social network accounts settings page
- **/user/settings/confirm** Confirms a new email (requires *id* and *token* query params)
- **/user/settings/privacy**     Displays GDPR data page
- **/user/settings/gdprdelete**   Displays delete personal data page
- **/user/profile/show** Displays user's profile (requires *id* query param)
- **/user/admin/index** Displays user management interface
- **/user/admin/create** Displays create user form

View File

@ -53,6 +53,18 @@ In `config/web.php` remove *module > rbac* configuration and change the *modules
* If you had `modelMap` customization you have to replace them with `classMap`.
* In your extended model replace the `BaseUser` inheritance from `dektrium\user\models\User` to `Da\User\Model\User`
* If you had controller remapping replace the inheritance from `dektrium\user\controllers\XX` to `Da\User\Controller\XX`
* Some properties has been renamed: from `enableConfirmation` to `enableEmailConfirmation`; from `enableGeneratingPassword` to `generatePasswords`
* Restore Identity url rule has been renamed: from `/user/admin/switch` to `/user/admin/switch-identity`
* Restore Identity session checker has changes: from
```php
if (Yii::$app->session->has(\dektrium\user\controllers\AdminController::ORIGINAL_USER_SESSION_KEY))
```
to
```php
/** @var Da\User\Module $module */
$module = Yii::$app->getModule('user');
if(Yii::$app->session->has($module->switchIdentitySessionKey))
```
## Rbac migrations

View File

@ -51,9 +51,9 @@ abstract class AbstractAuthItemController extends Controller
{
return [
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'ruleConfig' => [
'class' => AccessRuleFilter::className(),
'class' => AccessRuleFilter::class,
],
'rules' => [
[

View File

@ -43,7 +43,7 @@ class ProfileController extends Controller
{
return [
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,

View File

@ -63,7 +63,7 @@ class RecoveryController extends Controller
{
return [
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,

View File

@ -72,7 +72,7 @@ class RegistrationController extends Controller
{
return [
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,

View File

@ -36,15 +36,15 @@ class RuleController extends Controller
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'class' => VerbFilter::class,
'actions' => [
'delete' => ['POST'],
],
],
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'ruleConfig' => [
'class' => AccessRuleFilter::className(),
'class' => AccessRuleFilter::class,
],
'rules' => [
[

View File

@ -64,7 +64,7 @@ class SecurityController extends Controller
{
return [
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,
@ -79,7 +79,7 @@ class SecurityController extends Controller
],
],
'verbs' => [
'class' => VerbFilter::className(),
'class' => VerbFilter::class,
'actions' => [
'logout' => ['post'],
],
@ -94,7 +94,7 @@ class SecurityController extends Controller
{
return [
'auth' => [
'class' => AuthAction::className(),
'class' => AuthAction::class,
// if user is not logged in, will try to log him in, otherwise
// will try to connect social account to user.
'successCallback' => Yii::$app->user->isGuest

View File

@ -89,7 +89,7 @@ class SettingsController extends Controller
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'class' => VerbFilter::class,
'actions' => [
'disconnect' => ['post'],
'delete' => ['post'],
@ -97,7 +97,7 @@ class SettingsController extends Controller
],
],
'access' => [
'class' => AccessControl::className(),
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,

View File

@ -12,6 +12,8 @@
namespace Da\User\Filter;
use Da\User\Model\User;
use Da\User\Module;
use Yii;
use yii\base\ActionFilter;
@ -19,7 +21,9 @@ class PasswordAgeEnforceFilter extends ActionFilter
{
public function beforeAction($action)
{
$maxPasswordAge = Yii::$app->getModule('user')->maxPasswordAge;
/** @var Module $module */
$module = Yii::$app->getModule('user');
$maxPasswordAge = $module->maxPasswordAge;
// If feature is not set do nothing (or raise a configuration error?)
if (is_null($maxPasswordAge)) {
return parent::beforeAction($action);
@ -28,7 +32,9 @@ class PasswordAgeEnforceFilter extends ActionFilter
// Not our business
return parent::beforeAction($action);
}
if (Yii::$app->user->identity->password_age >= $maxPasswordAge) {
/** @var User $identity */
$identity = Yii::$app->user->identity;
if ($identity->password_age >= $maxPasswordAge) {
// Force password change
Yii::$app->getSession()->setFlash('warning', Yii::t('usuario', 'Your password has expired, you must change it now'));
return Yii::$app->response->redirect(['/user/settings/account'])->send();

View File

@ -11,7 +11,7 @@
namespace Da\User\Helper;
use yii\base\InvalidParamException;
use yii\base\InvalidArgumentException;
class ClassMapHelper
{
@ -39,7 +39,7 @@ class ClassMapHelper
/**
* @param $key
*
* @throws InvalidParamException
* @throws \InvalidArgumentException
* @return mixed
*
*/
@ -48,6 +48,6 @@ class ClassMapHelper
if (array_key_exists($key, $this->map)) {
return $this->map[$key];
}
throw new InvalidParamException('Unknown model map key: ' . $key);
throw new InvalidArgumentException('Unknown model map key: ' . $key);
}
}

View File

@ -161,7 +161,7 @@ class User extends ActiveRecord implements IdentityInterface
public function behaviors()
{
$behaviors = [
TimestampBehavior::className(),
TimestampBehavior::class,
];
if ($this->module->enableGDPRcompliance) {

View File

@ -53,7 +53,7 @@ $this->params['breadcrumbs'][] = $this->title;
],
],
[
'class' => ActionColumn::className(),
'class' => ActionColumn::class,
'template' => '{update} {delete}',
'urlCreator' => function ($action, $model) {
return Url::to(['/user/permission/' . $action, 'name' => $model['name']]);

View File

@ -54,7 +54,7 @@ $this->params['breadcrumbs'][] = $this->title;
],
],
[
'class' => ActionColumn::className(),
'class' => ActionColumn::class,
'template' => '{update} {delete}',
'urlCreator' => function ($action, $model) {
return Url::to(['/user/role/' . $action, 'name' => $model['name']]);

View File

@ -60,7 +60,7 @@ $this->params['breadcrumbs'][] = $this->title;
],
],
[
'class' => ActionColumn::className(),
'class' => ActionColumn::class,
'template' => '{update} {delete}',
'urlCreator' => function ($action, $model) {
return Url::to(['/user/rule/' . $action, 'name' => $model['name']]);

View File

@ -162,9 +162,6 @@ class GdprCest
$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');
$I->seeResponseCodeIs(404);
}
}