Finish 27

This commit is contained in:
rocho 2015-09-19 21:26:00 +02:00
commit a3e4f42c6a
4 changed files with 182 additions and 0 deletions

View File

@ -15,5 +15,17 @@ return [
], ],
], ],
], ],
'formatter' => [
'class' => 'yii\i18n\Formatter',
'dateFormat' => 'yyyy.MM.dd',
'datetimeFormat' => 'yyyy.MM.dd HH:mm',
'locale' => 'hu-Hu',
'timeZone' => 'UTC',
'defaultTimeZone' => 'UTC' ,
'nullDisplay' => "-",
],
'authManager' => [
'class' => 'yii\rbac\DbManager'
],
], ],
]; ];

View File

@ -0,0 +1,92 @@
<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
use yii\base\InvalidConfigException;
use yii\db\Schema;
use yii\rbac\DbManager;
/**
* Initializes RBAC tables
*
* @author Alexander Kochetov <creocoder@gmail.com>
* @since 2.0
*/
class m140506_102106_rbac_init extends \yii\db\Migration
{
/**
* @throws yii\base\InvalidConfigException
* @return DbManager
*/
protected function getAuthManager()
{
$authManager = Yii::$app->getAuthManager();
if (!$authManager instanceof DbManager) {
throw new InvalidConfigException('You should configure "authManager" component to use database before executing this migration.');
}
return $authManager;
}
public function up()
{
$authManager = $this->getAuthManager();
$this->db = $authManager->db;
$tableOptions = null;
if ($this->db->driverName === 'mysql') {
// http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
}
$this->createTable($authManager->ruleTable, [
'name' => $this->string(64)->notNull(),
'data' => $this->text(),
'created_at' => $this->integer(),
'updated_at' => $this->integer(),
'PRIMARY KEY (name)',
], $tableOptions);
$this->createTable($authManager->itemTable, [
'name' => $this->string(64)->notNull(),
'type' => $this->integer()->notNull(),
'description' => $this->text(),
'rule_name' => $this->string(64),
'data' => $this->text(),
'created_at' => $this->integer(),
'updated_at' => $this->integer(),
'PRIMARY KEY (name)',
'FOREIGN KEY (rule_name) REFERENCES ' . $authManager->ruleTable . ' (name) ON DELETE SET NULL ON UPDATE CASCADE',
], $tableOptions);
$this->createIndex('idx-auth_item-type', $authManager->itemTable, 'type');
$this->createTable($authManager->itemChildTable, [
'parent' => $this->string(64)->notNull(),
'child' => $this->string(64)->notNull(),
'PRIMARY KEY (parent, child)',
'FOREIGN KEY (parent) REFERENCES ' . $authManager->itemTable . ' (name) ON DELETE CASCADE ON UPDATE CASCADE',
'FOREIGN KEY (child) REFERENCES ' . $authManager->itemTable . ' (name) ON DELETE CASCADE ON UPDATE CASCADE',
], $tableOptions);
$this->createTable($authManager->assignmentTable, [
'item_name' => $this->string(64)->notNull(),
'user_id' => $this->string(64)->notNull(),
'created_at' => $this->integer(),
'PRIMARY KEY (item_name, user_id)',
'FOREIGN KEY (item_name) REFERENCES ' . $authManager->itemTable . ' (name) ON DELETE CASCADE ON UPDATE CASCADE',
], $tableOptions);
}
public function down()
{
$authManager = $this->getAuthManager();
$this->db = $authManager->db;
$this->dropTable($authManager->assignmentTable);
$this->dropTable($authManager->itemChildTable);
$this->dropTable($authManager->itemTable);
$this->dropTable($authManager->ruleTable);
}
}

View File

@ -0,0 +1,44 @@
<?php
use yii\db\Schema;
use yii\db\Migration;
class m150919_181709_add_basic_roles extends Migration
{
public function up()
{
$role = Yii::$app->authManager->createRole('developer');
Yii::$app->authManager->add($role);
$role = Yii::$app->authManager->createRole('admin');
Yii::$app->authManager->add($role);
$role = Yii::$app->authManager->createRole('group_admin');
Yii::$app->authManager->add($role);
$role = Yii::$app->authManager->createRole('shop_admin');
Yii::$app->authManager->add($role);
$role = Yii::$app->authManager->createRole('receptionist');
Yii::$app->authManager->add($role);
}
public function down()
{
echo "m150919_181709_add_basic_roles cannot be reverted.\n";
return false;
}
/*
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
}
public function safeDown()
{
}
*/
}

View File

@ -0,0 +1,34 @@
<?php
use yii\db\Schema;
use yii\db\Migration;
use common\models\User;
class m150919_192054_add__admin__role__to__admin__user extends Migration
{
public function up()
{
$am = Yii::$app->authManager;
$user = User::find()->where('username = :name',[':name' => 'admin'])->one();
$role = $am->getRole('admin');
Yii::$app->authManager->assign($role, $user->id);
}
public function down()
{
echo "m150919_192054_add__admin__role__to__admin__user cannot be reverted.\n";
return false;
}
/*
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
}
public function safeDown()
{
}
*/
}