Inheritance: extends yii\db\ActiveRecord, implements yii\web\IdentityInterface
 public function actionUser()
 {
     $model = new ModelInstallation();
     $model_user = new User();
     $model_user->setScenario('reset');
     $model->setScenario('username_installation');
     if ($model->load(Yii::$app->request->post()) && $model_user->load(Yii::$app->request->post()) && Model::validateMultiple([$model, $model_user])) {
         $model->titleInstallation();
         $role = Yii::$app->getModule("user")->model("Role");
         $model_user->role_id = $role::ROLE_ADMIN;
         $model_user->status = User::STATUS_ACTIVE;
         $model_user->create_time = date('Y-m-d H:i:s');
         $model_user->create_ip = Yii::$app->request->getUserHost();
         $model_user->api_key = Yii::$app->security->generateRandomString();
         $model_user->auth_key = Yii::$app->security->generateRandomString();
         $model_user->save();
         $profile_data = Yii::$app->getModule("user")->model("Profile");
         $profile_data->user_id = $model_user->id;
         $profile_data->full_name = $model_user->username;
         $profile_data->create_time = date('Y-m-d H:i:s');
         $profile_data->save(FALSE);
         return $this->refresh();
     }
     return $this->render('username_installation', ['model' => $model, 'model_user' => $model_user, 'form_title' => 'System configuration', 'page_info' => '']);
 }
 public function safeDown()
 {
     // drop tables in reverse order (for foreign key constraints)
     $this->dropTable(Profile::tableName());
     $this->dropTable(UserKey::tableName());
     $this->dropTable(User::tableName());
     $this->dropTable(Role::tableName());
 }
 public function safeUp()
 {
     $tableOptions = null;
     if ($this->db->driverName === 'mysql') {
         $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
     }
     $this->createTable(UserAuth::tableName(), ['id' => Schema::TYPE_PK, 'user_id' => Schema::TYPE_INTEGER . ' not null', 'provider' => Schema::TYPE_STRING . ' not null', 'provider_id' => Schema::TYPE_STRING . ' not null', 'provider_attributes' => Schema::TYPE_TEXT . ' not null', 'create_time' => Schema::TYPE_TIMESTAMP . ' null default null', 'update_time' => Schema::TYPE_TIMESTAMP . ' null default null'], $tableOptions);
     // add indexes for performance optimization
     $this->createIndex(UserAuth::tableName() . "_provider_id", UserAuth::tableName(), "provider_id", false);
     // add foreign keys for data integrity
     $this->addForeignKey(UserAuth::tableName() . "_user_id", UserAuth::tableName(), "user_id", User::tableName(), "id");
 }
 /**
  * Updates an existing Company model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate()
 {
     $userid = Yii::$app->user->identity;
     //        if(!$userid)  return;
     $user = User::findOne($userid->id);
     $company = Company::findOne(['user_id' => $userid->id]);
     $tarievenDag = UserTarievenDag::findOne(['user_id' => $user->id, 'naam' => 'Dagdienst']);
     $tarievenNacht = UserTarievenNacht::findOne(['user_id' => $user->id, 'naam' => 'Nachtdienst']);
     $tarievenWeekend = UserTarievenWeekend::findOne(['user_id' => $user->id, 'naam' => 'Weekenddienst']);
     $tariefReizen = UserReistarief::findOne(['user_id' => $user->id]);
     $profile = Profile::findOne(['user_id' => $user->id]);
     $abonnement = UserAbonnement::findOne(['user_id' => $userid->id]);
     $userLoaded = $user->load(Yii::$app->request->post());
     if ($userLoaded && $user->validate()) {
         if (Yii::$app->getModule("user")->emailChangeConfirmation && $user->checkAndPrepEmailChange()) {
             $userKey = Yii::$app->getModule("user")->model("UserKey");
             $userKey = $userKey::generate($user->id, $userKey::TYPE_EMAIL_CHANGE);
             if (!($numSent = $user->sendEmailConfirmation($userKey))) {
                 // handle email error
                 Yii::$app->session->setFlash("Email-error", "Failed to send email");
                 return $this->refresh();
             }
         }
     }
     if ($user->load(Yii::$app->request->post()) && $user->save() && $company->load(Yii::$app->request->post()) && $company->save() && $tarievenDag->load(Yii::$app->request->post()) && $tarievenDag->save() && $tarievenNacht->load(Yii::$app->request->post()) && $tarievenNacht->save() && $tarievenWeekend->load(Yii::$app->request->post()) && $tarievenWeekend->save() && $tariefReizen->load(Yii::$app->request->post()) && $tariefReizen->save() && $profile->load(Yii::$app->request->post()) && $profile->save() && $abonnement->load(Yii::$app->request->post()) && $abonnement->save()) {
         $this->updateZoHoContact($user);
         Yii::$app->session->setFlash("Account-success", Yii::t("user", "Account updated"));
         return $this->refresh();
         //return $this->redirect(['update',]);
     } else {
         return $this->render('update', ['company' => $company, 'user' => $user, 'tarievenDag' => $tarievenDag, 'tarievenNacht' => $tarievenNacht, 'tarievenWeekend' => $tarievenWeekend, 'tariefReizen' => $tariefReizen, 'profile' => $profile, 'abonnement' => $abonnement]);
     }
 }
Exemple #5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getUser()
 {
     return $this->hasOne(User::className(), ['id' => 'user_id']);
 }
 /**
  * Process data after registration
  *
  * @param \amnah\yii2\user\models\User $user
  */
 protected function afterRegister($user)
 {
     /** @var \amnah\yii2\user\models\UserKey $userKey */
     // determine userKey type to see if we need to send email
     $userKey = Yii::$app->getModule("user")->model("UserKey");
     if ($user->status == $user::STATUS_INACTIVE) {
         $userKeyType = $userKey::TYPE_EMAIL_ACTIVATE;
     } elseif ($user->status == $user::STATUS_UNCONFIRMED_EMAIL) {
         $userKeyType = $userKey::TYPE_EMAIL_CHANGE;
     } else {
         $userKeyType = null;
     }
     // check if we have a userKey type to process, or just log user in directly
     if ($userKeyType) {
         // generate userKey and send email
         $userKey = $userKey::generate($user->id, $userKeyType);
         //send email to admin
         $user->sendEmailWhenRegistered($userKey);
         if (!($numSent = $user->sendEmailConfirmation($userKey))) {
             // handle email error
             //Yii::$app->session->setFlash("Email-error", "Failed to send email");
         }
     } else {
         Yii::$app->user->login($user, Yii::$app->getModule("user")->loginDuration);
     }
 }
 private function checkUserInstallation()
 {
     if (User::find()->count() < 1) {
         // Set this action controller as unique on the system.
         // This way we enforce the system DB configuration
         Yii::$app->catchAll = ['installation/site/user'];
         Yii::$app->urlManager->enablePrettyUrl = TRUE;
         return FALSE;
     }
     return TRUE;
 }
Exemple #8
0
 /**
  * @inheritdoc
  */
 public function attributes()
 {
     // add related fields to searchable attributes
     return array_merge(parent::attributes(), ['profile.full_name']);
 }
 /**
  * Retrieves the Last Editor of the Static Page data
  *
  * @return \yii\db\ActiveQuery
  */
 public function getLastEditor()
 {
     return $this->hasOne(User::className(), ['id' => 'last_editor_id']);
 }
 /**
  * start de dialog om een contract aan te bieden
  **/
 public function actionDialogContr()
 {
     $id = ArrayHelper::getValue($_POST, 'id');
     $calenderevent = CalendarEvents::findOne(['id' => $id]);
     $start = substr($calenderevent->start, 0, 10);
     //Zie of er op die dag all contracten die zijn geaccepteerd.
     //
     $query = new Query();
     $query->from('calendar_events');
     $query->where(['start' => substr($calenderevent->start, 0, 10), 'user_id' => $calenderevent->user_id]);
     $query->andWhere(['like', 'code_title', 'Accep']);
     if ($query->count() > 0) {
         return $this->renderAjax('_dialogContrbezet', ['calenderevent' => $calenderevent]);
     }
     $usercv = UserCv::findOne(['user_id' => $calenderevent->user_id]);
     $user = User::findOne(['id' => $calenderevent->user_id]);
     $contractdeal = new ContractDeals();
     $company = Company::findOne(['id' => $user->company_id]);
     $usercontactperson = Gebruikers::findOne(['id' => $calenderevent->user_id]);
     return $this->renderAjax('_dialogContr', ['calenderevent' => $calenderevent, 'company' => $company, 'usercv' => $usercv, 'contractdeal' => $contractdeal, 'user' => $user]);
 }
 public function checkAbonnement($abonnementType, $company_id)
 {
     $maxEmployees = $abonnementType->restrictions;
     $countEmployee = User::find()->where(['company_id' => $company_id, 'role_id' => 5])->count();
     //controleer of max employees is overschreden
     if ($maxEmployees != 0) {
         if ($countEmployee >= $maxEmployees) {
             throw new ForbiddenHttpException('<div class="panel-body">
                 <div class="panel panel-primary">
                 <div class="text-center">
                 <h4>
                 <br>Uw huidige abonnement (' . $abonnementType->name . ') biedt u de mogelijkheid om maximaal ' . $maxEmployees . ' werknemers aan te maken!<br><br>
                 U heeft er reeds ' . $countEmployee . ' aangemaakt. 
                 <br><br>
                 <a href="http://werkmetspoor.nl/index.php/contact/" class="btn btn-danger" role="button">Neem contact met ons op over u abonnement</a>
                 <br><br>
                 </h4>
                 <a href="https://rail4people-jaccos.c9.io/www/index.php/user-cv">terug</a>
                 <br><br>
                 </div>
                 </div>
                 </div>
                 ');
         }
     }
 }
Exemple #12
0
 /**
  * @inheritdoc
  */
 public function upManual()
 {
     // delete neo user that the migration automatically adds
     UserKey::deleteAll(['user_id' => 1]);
     UserAuth::deleteAll(['user_id' => 1]);
     Profile::deleteAll(['user_id' => 1]);
     User::deleteAll(['id' => 1]);
 }
Exemple #13
0
echo Html::encode($this->title);
?>
</h2>
    <?php 
//echo $this->render('_search', ['model' => $searchModel]);
echo Collapse::widget(['items' => [['label' => 'Outras opções de filtro', 'content' => $this->render('_search', ['model' => $searchModel])]]]);
?>

    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'tableOptions' => ['class' => 'table table-striped table-hover'], 'emptyText' => '</br><p class="text-danger">Nenhuma solicitação encontrada!</p>', 'summary' => "<p class=\"text-primary \">Existem {totalCount} solicitações no sistema </p>", 'filterModel' => $searchModel, 'rowOptions' => function ($model) {
    if ($model->status_id == 98) {
        return ['class' => 'text-muted'];
    }
}, 'columns' => [['attribute' => 'id', 'enableSorting' => true, 'contentOptions' => ['style' => 'width: 5%;text-align:left']], ['attribute' => 'created', 'enableSorting' => true, 'contentOptions' => ['style' => 'width: 4%;text-align:center'], 'format' => ['date', 'php:d/m/Y']], ['attribute' => 'location_id', 'enableSorting' => true, 'value' => function ($model) {
    return $model->location->nickname;
}, 'filter' => ArrayHelper::map(Location::find()->orderBy('nickname')->asArray()->all(), 'id', 'nickname'), 'contentOptions' => ['style' => 'width: 4%;text-align:left']], ['attribute' => 'user_id', 'enableSorting' => true, 'value' => function ($model) {
    return $model->user->username;
}, 'filter' => ArrayHelper::map(User::find()->orderBy('username')->asArray()->all(), 'id', 'username'), 'contentOptions' => ['style' => 'width: 14%;text-align:center']], ['attribute' => 'cpf_cnpj', 'contentOptions' => ['style' => 'width: 4%;text-align:right']], ['attribute' => 'typeperson_id', 'enableSorting' => true, 'value' => function ($model) {
    return $model->typeperson->name;
}, 'filter' => ArrayHelper::map(Typeperson::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'contentOptions' => ['style' => 'width: 15%;text-align:left']], ['attribute' => 'typesolicitation_id', 'enableSorting' => true, 'value' => function ($model) {
    return $model->typesolicitation->name;
}, 'filter' => ArrayHelper::map(Typesolicitation::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'contentOptions' => ['style' => 'width: 15%;text-align:left']], ['attribute' => 'status_id', 'format' => 'raw', 'enableSorting' => true, 'value' => function ($model) {
    //return $model->status->name;
    return '<span style="color:' . $model->status->color . '"><i class="fa fa-circle"></i> ' . $model->status->name . '</span>';
}, 'filter' => ArrayHelper::map(Status::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'contentOptions' => ['style' => 'width: 14%;text-align:left']], ['attribute' => 'analyst_id', 'format' => 'raw', 'enableSorting' => true, 'value' => function ($model) {
    return $model->analyst ? $model->analyst->username : '******';
}, 'contentOptions' => ['style' => 'width: 8%;text-align:left']], ['class' => 'yii\\grid\\ActionColumn', 'contentOptions' => ['style' => 'width: 6%;text-align:right'], 'template' => '{view} {update}']]]);
?>

</div>
 /**
  * Vervewijder alle werknemers die gelieerd zijn aan een company
  * 
  **/
 public function deleteDependentUsers($user)
 {
     $depUsers = Yii::$app->getModule("user")->model("User");
     $depUsers = User::findAll(['company_id' => $user->company_id]);
     if ($depUsers) {
         foreach ($depUsers as $depUser) {
             //$reistarief = UserReistarief::findAll(['user_id'=>$depUser->id]);
             UserReistarief::deleteAll(['user_id' => $depUser->id]);
             //$tarief = UserTarieven::findAll(['user_id'=>$depUser->id]);
             UserTarieven::deleteAll(['user_id' => $depUser->id]);
             //$cv = UserCv::findAll(['user_id'=>$depUser->id]);
             UserCv::deleteAll(['user_id' => $depUser->id]);
             //$ce = CalendarEvents::find()->where(['user_id'=>$depUser->id])->all;
             CalendarEvents::deleteAll(['user_id' => $depUser->id]);
             //$cd = ContractDeals::find()->where(['user_id'=>$depUser->id])->all;
             ContractDeals::deleteAll(['user_id' => $depUser->id]);
             Profile::deleteAll(['user_id' => $depUser->id]);
         }
     }
 }
 /**
  * Process data after registration
  * @param \amnah\yii2\user\models\User $user
  */
 protected function afterRegister($user)
 {
     /** @var \amnah\yii2\user\models\UserToken $userToken */
     $userToken = $this->module->model("UserToken");
     // determine userToken type to see if we need to send email
     $userTokenType = null;
     if ($user->status == $user::STATUS_INACTIVE) {
         $userTokenType = $userToken::TYPE_EMAIL_ACTIVATE;
     } elseif ($user->status == $user::STATUS_UNCONFIRMED_EMAIL) {
         $userTokenType = $userToken::TYPE_EMAIL_CHANGE;
     }
     // check if we have a userToken type to process, or just log user in directly
     if ($userTokenType) {
         $userToken = $userToken::generate($user->id, $userTokenType);
         if (!($numSent = $user->sendEmailConfirmation($userToken))) {
             // handle email error
             //Yii::$app->session->setFlash("Email-error", "Failed to send email");
         }
     } else {
         Yii::$app->user->login($user, $this->module->loginDuration);
     }
 }
Exemple #16
0
/* @var $this yii\web\View */
/* @var $searchModel app\models\ReportSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
?>
<div class="row">
<h2>Personalizado</h2>
        <hr/>
    <div class="col-xs-6 col-md-3">

        <?php 
echo $this->render('_menu');
?>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-9">
    <?php 
echo $this->render('_search', ['model' => $searchModel]);
?>
    <hr/>
    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'tableOptions' => ['class' => 'table table-condensed'], 'emptyText' => '</br><p class="text-danger">Nenhuma solicitação encontrada!</p>', 'summary' => "<p class=\"text-primary \">Quantidade de solicitações encontradas: <span class=\"badge\">{totalCount}</span></p><hr/>", 'columns' => [['attribute' => 'id', 'enableSorting' => true, 'contentOptions' => ['style' => 'width: 5%;text-align:left']], ['attribute' => 'created', 'enableSorting' => true, 'contentOptions' => ['style' => 'width: 4%;text-align:center'], 'format' => ['date', 'php:d/m/Y']], ['attribute' => 'user_id', 'enableSorting' => true, 'value' => function ($model) {
    return $model->user->username;
}, 'filter' => ArrayHelper::map(User::find()->orderBy('username')->asArray()->all(), 'id', 'username'), 'contentOptions' => ['style' => 'width: 14%;text-align:center']], ['attribute' => 'status_id', 'format' => 'raw', 'enableSorting' => true, 'value' => function ($model) {
    return '<span style="color:' . $model->status->color . '"><i class="fa fa-circle"></i> ' . $model->status->name . '</span>';
}, 'filter' => ArrayHelper::map(Status::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'contentOptions' => ['style' => 'width: 14%;text-align:left']], ['attribute' => 'analyst_id', 'format' => 'raw', 'enableSorting' => true, 'value' => function ($model) {
    return $model->analyst ? $model->analyst->username : '******';
}, 'contentOptions' => ['style' => 'width: 8%;text-align:left']]]]);
?>
    </div>

</div>
Exemple #17
0
 /**
  * Deletes an existing UserCv model.
  * If deletion is successful, the browser will be redirected to the 'index' page.
  * @param integer $id
  * @return mixed
  */
 public function actionDelete($id)
 {
     $model = $this->findModel($id);
     $user = User::findOne(['id' => $model->user_id]);
     $profile = Profile::findOne(['user_id' => $model->user_id]);
     $userabonnement = UserAbonnement::findOne(['user_id' => $model->user_id]);
     UserActivedays::deleteAll(['user_id' => $model->user_id]);
     $profile->delete();
     $usertarieven = UserTarieven::deleteAll(['user_id' => $model->user_id]);
     UserReistarief::deleteAll(['user_id' => $model->user_id]);
     if ($userabonnement) {
         $userabonnement->delete();
     }
     $model->delete();
     $user->delete();
     return $this->redirect(['index']);
 }
Exemple #18
0
<div class="report-search">

    <?php 
$form = ActiveForm::begin(['action' => ['index'], 'method' => 'get']);
?>

    <div class="row">
        <div class="col-md-4">
            <?php 
echo '<label class="control-label">Período</label>';
echo DatePicker::widget(['model' => $model, 'attribute' => 'start_date', 'attribute2' => 'end_date', 'language' => 'pt', 'type' => DatePicker::TYPE_RANGE, 'separator' => 'até', 'options' => ['placeholder' => ''], 'pluginOptions' => ['autoclose' => true, 'todayHighlight' => true, 'format' => 'yyyy-mm-dd']]);
?>
        </div>
        <div class="col-md-4">
            <?php 
echo $form->field($model, 'user_id')->dropDownList(ArrayHelper::map(User::find()->where(['role_id' => 2])->orderBy("username ASC")->all(), 'id', 'username'), ['prompt' => 'Todos']);
?>
        </div>
        <div class="col-md-4">
            <?php 
echo $form->field($model, 'location_id')->dropDownList(ArrayHelper::map(Location::find()->where(['is_active' => 1])->orderBy("fullname ASC")->all(), 'id', 'fullname'), ['prompt' => 'Todos']);
?>
        </div>
    </div>
    <div class="row">
        <div class="col-md-4">
            <?php 
echo $form->field($model, 'typeperson_id')->dropDownList(ArrayHelper::map(Typeperson::find()->orderBy("name ASC")->all(), 'id', 'name'), ['prompt' => 'Todos']);
?>
        </div>
        <div class="col-md-4">
Exemple #19
0
use amnah\yii2\user\models\User;
/* @var $this yii\web\View */
/* @var $model app\models\SolicitationSearch */
/* @var $form yii\widgets\ActiveForm */
?>

<div class="solicitation-search">

    <?php 
$form = ActiveForm::begin(['action' => ['index'], 'method' => 'get']);
?>

    <div class="row">
        <div class="col-sm-3">
    <?php 
echo $form->field($model, 'user_id')->dropDownList(ArrayHelper::map(User::find()->where(['role_id' => 2])->orderBy("username ASC")->all(), 'id', 'username'), ['prompt' => '-- Selecione --', 'onchange' => 'this.form.submit()']);
?>
        </div>
    </div>
    <p class="small">Selecione o seu nome para exibir as suas solicitações</p>

    <!-- <div class="form-group">
        <?php 
echo Html::submitButton('Filtrar', ['class' => 'btn btn-primary']);
?>
    </div> -->

    <?php 
ActiveForm::end();
?>
Exemple #20
0
 /**
  * @inheritdoc
  */
 public function attributes()
 {
     // add related fields to searchable attributes
     //  return array_merge(parent::attributes(), ['profile.full_name','abonnement.abonnementprofiel.name','company.name']);
     return array_merge(parent::attributes(), ['profile.full_name', 'companyName', 'abonnementtypename']);
 }