for managers show only employees, show all profiles for users with permission show_all_profiles
This commit is contained in:
parent
10853b44f8
commit
89e635798c
@ -45,5 +45,5 @@ environments/ contains environment-based overrides
|
|||||||
php yii rbac/init <br>
|
php yii rbac/init <br>
|
||||||
php yii rbac/create-editor <br>
|
php yii rbac/create-editor <br>
|
||||||
php yii rbac/create-company-manager-role <br>
|
php yii rbac/create-company-manager-role <br>
|
||||||
`php yii rbac/create-default-access-rules` <br>
|
php yii rbac/create-default-access-rules <br>
|
||||||
</p>
|
</p>
|
@ -84,7 +84,7 @@ return [
|
|||||||
'components' => [
|
'components' => [
|
||||||
'request' => [
|
'request' => [
|
||||||
'csrfParam' => '_csrf-backend',
|
'csrfParam' => '_csrf-backend',
|
||||||
'baseUrl' => '', // /secure TODO secure
|
'baseUrl' => '/secure',
|
||||||
'parsers' => [
|
'parsers' => [
|
||||||
'application/json' => 'yii\web\JsonParser',
|
'application/json' => 'yii\web\JsonParser',
|
||||||
'text/xml' => 'yii/web/XmlParser',
|
'text/xml' => 'yii/web/XmlParser',
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace backend\modules\card\models;
|
namespace backend\modules\card\models;
|
||||||
|
|
||||||
use common\classes\Debug;
|
use backend\modules\employee\models\ManagerEmployee;
|
||||||
use Yii;
|
use Yii;
|
||||||
use yii\base\Model;
|
use yii\base\Model;
|
||||||
use yii\data\ActiveDataProvider;
|
use yii\data\ActiveDataProvider;
|
||||||
@ -42,13 +42,24 @@ class UserCardSearch extends UserCard
|
|||||||
*
|
*
|
||||||
* @return ActiveDataProvider
|
* @return ActiveDataProvider
|
||||||
*/
|
*/
|
||||||
public function search($params)
|
public function search($params): ActiveDataProvider
|
||||||
{
|
{
|
||||||
// $userId = Yii::$app->user->;
|
if (Yii::$app->user->can('show_all_profiles')) {
|
||||||
// $userCard = UserCard::findOne($userId);
|
$query = UserCard::find();
|
||||||
|
} else {
|
||||||
|
$userCard = UserCard::find()
|
||||||
|
->where(['id_user' => Yii::$app->user->id])
|
||||||
|
->one();
|
||||||
|
|
||||||
$query = UserCard::find();
|
$employeeIdList = ManagerEmployee::find()
|
||||||
$query->where(['id'])->distinct()
|
->where(['manager_id' => $userCard->manager->id])
|
||||||
|
->select('user_card_id')
|
||||||
|
->column();
|
||||||
|
|
||||||
|
$query = UserCard::find()->where(['in', 'user_card.id', $employeeIdList]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$query->distinct()
|
||||||
->leftJoin('card_skill', 'card_skill.card_id=user_card.id')
|
->leftJoin('card_skill', 'card_skill.card_id=user_card.id')
|
||||||
->leftJoin('skill', 'skill.id=card_skill.skill_id');
|
->leftJoin('skill', 'skill.id=card_skill.skill_id');
|
||||||
|
|
||||||
@ -64,7 +75,7 @@ class UserCardSearch extends UserCard
|
|||||||
return $dataProvider;
|
return $dataProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
$query->where(['deleted_at' => null]);
|
$query->andWhere(['deleted_at' => null]);
|
||||||
|
|
||||||
if (isset($params['month'])) {
|
if (isset($params['month'])) {
|
||||||
$query->andFilterWhere(['=', 'MONTH(dob)', $params['month']]);
|
$query->andFilterWhere(['=', 'MONTH(dob)', $params['month']]);
|
||||||
|
@ -86,115 +86,6 @@ class RbacController extends Controller
|
|||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function actionCreateDefaultAccessRules()
|
|
||||||
// {
|
|
||||||
// $auth = Yii::$app->authManager;
|
|
||||||
// $admin = $auth->getRole('admin');
|
|
||||||
// $profileEditor = $auth->getRole('profileEditor');
|
|
||||||
//
|
|
||||||
// $test = $auth->createPermission('test');
|
|
||||||
// $test->description = 'Модуль "Тестовые задания"';
|
|
||||||
// $auth->add($test);
|
|
||||||
// $auth->addChild($admin, $test);
|
|
||||||
//
|
|
||||||
// $questionnaire = $auth->createPermission('questionnaire');
|
|
||||||
// $questionnaire->description = 'Модуль "Анкеты": Создание, редактирование анкет, категорий анкет, вопросов, проверка ответов пользователей';
|
|
||||||
// $auth->add($questionnaire);
|
|
||||||
// $auth->addChild($admin, $questionnaire);
|
|
||||||
//
|
|
||||||
// $interview = $auth->createPermission('interview');
|
|
||||||
// $interview->description = 'Модуль "Запрос интервью"';
|
|
||||||
// $auth->add($interview);
|
|
||||||
// $auth->addChild($admin, $interview);
|
|
||||||
//
|
|
||||||
// $options = $auth->createPermission('options');
|
|
||||||
// $options->description = 'Модуль "Опции"';
|
|
||||||
// $auth->add($options);
|
|
||||||
// $auth->addChild($admin, $options);
|
|
||||||
//
|
|
||||||
// $reports = $auth->createPermission('reports');
|
|
||||||
// $reports->description = 'Модуль "Отчёты"';
|
|
||||||
// $auth->add($reports);
|
|
||||||
// $auth->addChild($admin, $reports);
|
|
||||||
//
|
|
||||||
// $calendar = $auth->createPermission('calendar');
|
|
||||||
// $calendar->description = 'Модуль "Календарь ДР"';
|
|
||||||
// $auth->add($calendar);
|
|
||||||
// $auth->addChild($admin, $calendar);
|
|
||||||
//
|
|
||||||
// $notes = $auth->createPermission('notes');
|
|
||||||
// $notes->description = 'Модуль "Заметки"';
|
|
||||||
// $auth->add($notes);
|
|
||||||
// $auth->addChild($admin, $notes);
|
|
||||||
//
|
|
||||||
// $accesses = $auth->createPermission('accesses');
|
|
||||||
// $accesses->description = 'Модуль "Доступы"';
|
|
||||||
// $auth->add($accesses);
|
|
||||||
// $auth->addChild($admin, $accesses);
|
|
||||||
//
|
|
||||||
// $achievements = $auth->createPermission('achievements');
|
|
||||||
// $achievements->description = 'Модуль "Достижения"';
|
|
||||||
// $auth->add($achievements);
|
|
||||||
// $auth->addChild($admin, $achievements);
|
|
||||||
//
|
|
||||||
// $holiday = $auth->createPermission('holiday');
|
|
||||||
// $holiday->description = 'Модуль "Отпуска"';
|
|
||||||
// $auth->add($holiday);
|
|
||||||
// $auth->addChild($admin, $holiday);
|
|
||||||
//
|
|
||||||
// $balance = $auth->createPermission('balance');
|
|
||||||
// $balance->description = 'Модуль "Баланс"';
|
|
||||||
// $auth->add($balance);
|
|
||||||
// $auth->addChild($admin, $balance);
|
|
||||||
//
|
|
||||||
// $hh = $auth->createPermission('hh');
|
|
||||||
// $hh->description = 'Модуль "Hh.ru"';
|
|
||||||
// $auth->add($hh);
|
|
||||||
// $auth->addChild($admin, $hh);
|
|
||||||
//
|
|
||||||
// $company = $auth->createPermission('company');
|
|
||||||
// $company->description = 'Модуль "Компании"';
|
|
||||||
// $auth->add($company);
|
|
||||||
// $auth->addChild($admin, $company);
|
|
||||||
//
|
|
||||||
// $task = $auth->createPermission('task');
|
|
||||||
// $task->description = 'Модуль "Задачи"';
|
|
||||||
// $auth->add($task);
|
|
||||||
// $auth->addChild($admin, $task);
|
|
||||||
//
|
|
||||||
// $project = $auth->createPermission('project');
|
|
||||||
// $project->description = 'Модуль "Проекты"';
|
|
||||||
// $auth->add($project);
|
|
||||||
// $auth->addChild($admin, $project);
|
|
||||||
//
|
|
||||||
// $documents = $auth->createPermission('document');
|
|
||||||
// $documents->description = 'Модуль "Документы": Создание, редактирование документов, их полей и шаблонов';
|
|
||||||
// $auth->add($documents);
|
|
||||||
// $auth->addChild($admin, $documents);
|
|
||||||
//
|
|
||||||
// $employee = $auth->createPermission('employee');
|
|
||||||
// $employee->description = 'Модуль "Сотрудники"';
|
|
||||||
// $auth->add($employee);
|
|
||||||
// $auth->addChild($admin, $employee);
|
|
||||||
//
|
|
||||||
// $card = $auth->createPermission('card');
|
|
||||||
// $card->description = 'Модуль "Профили"';
|
|
||||||
// $auth->add($card);
|
|
||||||
// $auth->addChild($admin, $card);
|
|
||||||
// $auth->addChild($profileEditor, $card);
|
|
||||||
//
|
|
||||||
// $settings = $auth->createPermission('settings');
|
|
||||||
// $settings->description = 'Модуль "Настройки"';
|
|
||||||
// $auth->add($settings);
|
|
||||||
// $auth->addChild($admin, $settings);
|
|
||||||
//
|
|
||||||
// $skills = $auth->createPermission('settings/skill');
|
|
||||||
// $skills->description = 'Навыки';
|
|
||||||
// $auth->add($skills);
|
|
||||||
// $auth->addChild($admin, $skills);
|
|
||||||
// $auth->addChild($profileEditor, $skills);
|
|
||||||
// }
|
|
||||||
|
|
||||||
public function actionCreateDefaultAccessRules()
|
public function actionCreateDefaultAccessRules()
|
||||||
{
|
{
|
||||||
$auth = Yii::$app->authManager;
|
$auth = Yii::$app->authManager;
|
||||||
@ -369,7 +260,12 @@ class RbacController extends Controller
|
|||||||
$auth->addChild($admin, $mark);
|
$auth->addChild($admin, $mark);
|
||||||
}
|
}
|
||||||
|
|
||||||
// var_dump($auth->getPermission('settings/mark'));
|
if(!$auth->getPermission('show_all_profiles')) {
|
||||||
|
echo "create permission: show_all_profiles\n";
|
||||||
|
$showAllProfiles = $auth->createPermission('show_all_profiles');
|
||||||
|
$showAllProfiles->description = 'Показ всех сотрудников в модуле Профили';
|
||||||
|
$auth->add($showAllProfiles);
|
||||||
|
$auth->addChild($admin, $showAllProfiles);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user