コード例 #1
0
ファイル: User.php プロジェクト: ahdail/humhub
 /**
  * Notifies groups admins for approval of new user via e-mail.
  * This should be done after a new user is created and approval is required.
  *
  * @todo Create message template, move message into translation
  */
 private function notifyGroupAdminsForApproval()
 {
     // No admin approval required
     if ($this->status != User::STATUS_NEED_APPROVAL || !HSetting::Get('needApproval', 'authentication_internal')) {
         return;
     }
     foreach (GroupAdmin::model()->findAllByAttributes(array('group_id' => $this->group_id)) as $admin) {
         $adminUser = User::model()->findByPk($admin->user_id);
         if ($adminUser !== null) {
             $approvalUrl = Yii::app()->createAbsoluteUrl("//admin/approval");
             $html = "Hello {$adminUser->displayName},<br><br>\n\n" . "a new user {$this->displayName} needs approval.<br><br>\n\n" . "Click here to validate:<br>\n\n" . HHtml::link($approvalUrl, $approvalUrl) . "<br/> <br/>\n";
             $message = new HMailMessage();
             $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing'));
             $message->addTo($adminUser->email);
             $message->view = "application.views.mail.TextOnly";
             $message->subject = Yii::t('UserModule.models_User', "New user needs approval");
             $message->setBody(array('message' => $html), 'text/html');
             Yii::app()->mail->send($message);
         } else {
             Yii::log("Could not load Group Admin User. Inconsistent Group Admin Record! User Id: " . $admin->user_id, CLogger::LEVEL_ERROR);
         }
     }
     return true;
 }
コード例 #2
0
ファイル: Group.php プロジェクト: alefernie/intranet
 public function afterSave()
 {
     if ($this->scenario == 'edit') {
         GroupAdmin::model()->deleteAllByAttributes(array('group_id' => $this->id));
         $adminUsers = array();
         foreach (explode(",", $this->adminGuids) as $adminGuid) {
             // Ensure guids valid characters
             $adminGuid = preg_replace("/[^A-Za-z0-9\\-]/", '', $adminGuid);
             // Try load user
             $user = User::model()->findByAttributes(array('guid' => $adminGuid));
             if ($user != null) {
                 $groupAdmin = new GroupAdmin();
                 $groupAdmin->user_id = $user->id;
                 $groupAdmin->group_id = $this->id;
                 $groupAdmin->save();
             }
         }
     }
 }
コード例 #3
0
ファイル: index.php プロジェクト: alefernie/intranet
<div class="panel panel-default">
    <div
        class="panel-heading"><?php 
echo Yii::t('AdminModule.views_approval_index', '<strong>Pending</strong> user approvals');
?>
</div>
    <div class="panel-body">

        <p>
            <?php 
echo Yii::t('AdminModule.views_approval_index', 'Here you see all users who have registered and still waiting for a approval.');
?>
        </p>

        <?php 
$this->widget('zii.widgets.grid.CGridView', array('id' => 'approve-grid', 'dataProvider' => $model->resetScope()->searchNeedApproval(), 'filter' => $model, 'itemsCssClass' => 'table table-hover', 'columns' => array(array('value' => 'CHtml::image($data->profileImage->getUrl())', 'type' => 'raw', 'htmlOptions' => array('width' => '30px')), array('name' => 'username', 'header' => 'Username', 'filter' => CHtml::activeTextField($model, 'username', array('placeholder' => Yii::t('AdminModule.views_approval_index', 'Search for username')))), array('name' => 'group_id', 'value' => 'Group::getGroupNameById($data->group_id)', 'filter' => GroupAdmin::gridItems()), array('name' => 'email', 'header' => Yii::t('AdminModule.views_approval_index', 'Email'), 'filter' => CHtml::activeTextField($model, 'email', array('placeholder' => Yii::t('AdminModule.views_approval_index', 'Search for email')))), array('class' => 'CButtonColumn', 'template' => '{accept}{decline}', 'htmlOptions' => array('width' => '160px'), 'buttons' => array('accept' => array('label' => Yii::t('AdminModule.views_approval', 'Accept'), 'url' => 'Yii::app()->createUrl("admin/approval/approveUserAccept", array("id" => $data->id))', 'imageUrl' => false, 'options' => array('style' => 'margin-right: 3px', 'class' => 'btn btn-primary btn-sm')), 'decline' => array('label' => Yii::t('AdminModule.views_approval', 'Decline'), 'url' => 'Yii::app()->createUrl("admin/approval/approveUserDecline", array("id" => $data->id))', 'imageUrl' => false, 'options' => array('style' => 'margin-right: 3px', 'class' => 'btn btn-danger btn-sm'))))), 'pager' => array('class' => 'CLinkPager', 'maxButtonCount' => 5, 'nextPageLabel' => '<i class="fa fa-step-forward"></i>', 'prevPageLabel' => '<i class="fa fa-step-backward"></i>', 'firstPageLabel' => '<i class="fa fa-fast-backward"></i>', 'lastPageLabel' => '<i class="fa fa-fast-forward"></i>', 'header' => '', 'htmlOptions' => array('class' => 'pagination')), 'pagerCssClass' => 'pagination-container'));
?>

    </div>
</div>

コード例 #4
0
ファイル: WebUser.php プロジェクト: alefernie/intranet
 /**
  * Checks if the can approve new users
  * @todo Add caching support
  *
  * @return boolean
  */
 public function canApproveUsers()
 {
     if ($this->isAdmin()) {
         return true;
     }
     $user = $this->loadUser(Yii::app()->user->id);
     $adminGroups = GroupAdmin::model()->countByAttributes(array('user_id' => $user->id));
     if ($adminGroups != 0) {
         return true;
     }
     return false;
 }
コード例 #5
0
ファイル: GroupAdmin.php プロジェクト: alefernie/intranet
 /**
  * Used in Approvals, to get Groups Filter
  *
  * @return Array of groups
  */
 public static function gridItems()
 {
     $items = array();
     $selectedAdminGroups = array();
     if (!Yii::app()->user->isAdmin()) {
         foreach (GroupAdmin::model()->findAllByAttributes(array('user_id' => Yii::app()->user->id)) as $ga) {
             $selectedAdminGroups[] = $ga->group_id;
         }
     }
     foreach (Group::model()->findAll() as $g) {
         // Bypass group without rights
         if (!Yii::app()->user->isAdmin() && !in_array($g->id, $selectedAdminGroups)) {
             continue;
         }
         $items[$g->id] = $g->name;
     }
     return $items;
 }