@@ -0,0 +1,126 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.net | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
namespace backend\controllers; | |||
use common\models\Producer ; | |||
use common\models\User ; | |||
use common\models\UserSearch ; | |||
use backend\models\AccessUserProducerForm ; | |||
/** | |||
* UserController implements the CRUD actions for User model. | |||
*/ | |||
class AccessController extends BackendController | |||
{ | |||
public function behaviors() { | |||
return [ | |||
'verbs' => [ | |||
'class' => VerbFilter::className(), | |||
'actions' => [ | |||
], | |||
], | |||
'access' => [ | |||
'class' => AccessControl::className(), | |||
'rules' => [ | |||
[ | |||
'allow' => true, | |||
'roles' => ['@'], | |||
'matchCallback' => function ($rule, $action) { | |||
return User::hasAccessBackend(); | |||
} | |||
] | |||
], | |||
], | |||
]; | |||
} | |||
/** | |||
* Affiche les utilisateurs ayant accès à l'administration de ce producteur. | |||
* Gestion du formulaire permettant d'en ajouter de nouveaux. | |||
* | |||
* @return string | |||
*/ | |||
public function actionIndex() | |||
{ | |||
$userSearch = new UserSearch ; | |||
$usersArray = $userSearch->search()->query->all() ; | |||
$modelAccessUserProducerForm = new AccessUserProducerForm ; | |||
if($modelAccessUserProducerForm->load(Yii::$app->request->post()) && $modelAccessUserProducerForm->save()) { | |||
Yii::$app->getSession()->setFlash('success', 'Droits ajoutés à l\'utilisateur'); | |||
} | |||
$usersAccessArray = User::find() | |||
->where([ | |||
'id_producer' => Producer::getId(), | |||
'status' => User::STATUS_PRODUCER | |||
]) | |||
->all() ; | |||
$producer = Producer::searchOne() ; | |||
return $this->render('index', [ | |||
'usersArray' => $usersArray, | |||
'usersAccessArray' => $usersAccessArray, | |||
'producer' => $producer, | |||
'modelAccessUserProducerForm' => $modelAccessUserProducerForm, | |||
]); | |||
} | |||
/** | |||
* | |||
*/ | |||
public function actionDelete($idUser) | |||
{ | |||
$user = User::searchOne([ | |||
'id' => $idUser | |||
]) ; | |||
if($user) { | |||
$user->id_producer = 0 ; | |||
$user->status = User::STATUS_ACTIVE ; | |||
$user->save() ; | |||
Yii::$app->getSession()->setFlash('success', 'Droits de l\'utilisateur supprimé.'); | |||
} | |||
return $this->redirect(['index']) ; | |||
} | |||
} |
@@ -0,0 +1,93 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.net | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
namespace backend\models; | |||
use Yii; | |||
use yii\base\Model; | |||
use common\models\User ; | |||
use common\models\Producer ; | |||
use common\models\UserProducer ; | |||
/** | |||
* ContactForm is the model behind the contact form. | |||
*/ | |||
class AccessUserProducerForm extends Model | |||
{ | |||
public $id_user ; | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() | |||
{ | |||
return [ | |||
[['id_user'], 'required'], | |||
[['id_user'], 'integer'], | |||
]; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id_user' => 'Utilisateur', | |||
]; | |||
} | |||
public function save() | |||
{ | |||
$user = User::searchOne([ | |||
'id' => $this->id_user | |||
]) ; | |||
if($user) { | |||
$user->id_producer = Producer::getId() ; | |||
if($user->status != User::STATUS_PRODUCER && $user->status != User::STATUS_ADMIN) { | |||
$user->status = User::STATUS_PRODUCER ; | |||
} | |||
return $user->save(); | |||
} | |||
return false; | |||
} | |||
} |
@@ -0,0 +1,82 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.net | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
use yii\helpers\Html ; | |||
use yii\widgets\ActiveForm; | |||
use yii\helpers\ArrayHelper ; | |||
$this->setTitle('Accès') ; | |||
?> | |||
<div class="alert alert-info">Sont listés ici les comptes utilisateurs ayant accès à l'administration.</div> | |||
<div class="col-md-4"> | |||
<div class="panel panel-default"> | |||
<div class="panel-heading"> | |||
<h3 class="panel-title">Ajouter un utilisateur</h3> | |||
</div> | |||
<div class="panel-body"> | |||
<?php $form = ActiveForm::begin(); ?> | |||
<?= $form->field($modelAccessUserProducerForm, 'id_user') | |||
->dropDownList(ArrayHelper::map($usersArray, 'id', function($model) { return $model->lastname.' '.$model->name; })) | |||
->label(''); ?> | |||
<?= Html::submitButton('Ajouter', ['class' => 'btn btn-success']) ?> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="col-md-8"> | |||
<?php if(!count($usersAccessArray)): ?> | |||
<div class="alert alert-warning">Aucun utilisateur n'est défini en tant que producteur.</div> | |||
<?php else: ?> | |||
<table class="table table-bordered"> | |||
<tr> | |||
<th>Nom</th> | |||
<th>Actions</th> | |||
</tr> | |||
<?php foreach($usersAccessArray as $user): ?> | |||
<tr> | |||
<td><?= Html::encode($user->lastname.' '.$user->name) ?></td> | |||
<td><?= Html::a('<span class="glyphicon glyphicon-trash"></span>',['access/delete','idUser' => $user->id], ['class' => 'btn btn-default']); ?></td> | |||
</tr> | |||
<?php endforeach; ?> | |||
</table> | |||
<?php endif; ?> | |||
</div> |
@@ -65,6 +65,8 @@ termes. | |||
], | |||
['label' => 'Développement','icon' => 'wrench','url' => ['/development/index'], 'visible' => User::isCurrentProducer(), 'active' => Yii::$app->controller->id == 'development'], | |||
['label' => 'Mon abonnement','icon' => 'euro','url' => ['/producer/billing'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Mon abonnement','icon' => 'euro','url' => ['/producer/billing'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Accès','icon' => 'lock','url' => ['/access/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Administration', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Producteurs','icon' => 'th-list','url' => ['/producer-admin/index'], 'visible' => User::isCurrentAdmin()], | |||
@@ -73,32 +75,6 @@ termes. | |||
['label' => 'Gii', 'icon' => 'file-code-o', 'url' => ['/gii'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Debug', 'icon' => 'dashboard', 'url' => ['/debug'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Login', 'url' => ['site/login'], 'visible' => !User::isCurrentConnected()], | |||
/*[ | |||
'label' => 'Some tools', | |||
'icon' => 'share', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Gii', 'icon' => 'file-code-o', 'url' => ['/gii'],], | |||
['label' => 'Debug', 'icon' => 'dashboard', 'url' => ['/debug'],], | |||
[ | |||
'label' => 'Level One', | |||
'icon' => 'circle-o', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Level Two', 'icon' => 'circle-o', 'url' => '#',], | |||
[ | |||
'label' => 'Level Two', | |||
'icon' => 'circle-o', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Level Three', 'icon' => 'circle-o', 'url' => '#',], | |||
['label' => 'Level Three', 'icon' => 'circle-o', 'url' => '#',], | |||
], | |||
], | |||
], | |||
], | |||
], | |||
],*/ | |||
], | |||
] | |||
) ?> |
@@ -56,7 +56,7 @@ class UserSearch extends User | |||
]; | |||
} | |||
public function search($params) | |||
public function search($params = []) | |||
{ | |||
$optionsSearch = self::defaultOptionsSearch() ; | |||