/**
  * Provides a searchable user list of all workspace members in json.
  *
  */
 public function actionSearchInvite()
 {
     Yii::$app->response->format = 'json';
     $space = $this->getSpace();
     if (!$space->isMember()) {
         throw new HttpException(404, Yii::t('SpaceModule.controllers_SpaceController', 'This action is only available for workspace members!'));
     }
     return UserPicker::filter(['query' => $space->getNonMembershipUser(), 'keyword' => Yii::$app->request->get('keyword'), 'fillUser' => true]);
 }
示例#2
0
 /**
  * @deprecated since version number
  * Default implementation for user picker filter.
  * 
  * @param type $keywords
  * @param type $maxResults
  * @param type $friendsOnly
  * @param type $permission
  * @return type
  */
 public function getUserPickerResult($keywords = null, $maxResults = null, $friendsOnly = false, $permission = null)
 {
     if (!Yii::$app->getModule('friendship')->getIsEnabled()) {
         //We don't use the permission here for filtering since we include user with no permission as disabled in the result.
         //The problem here is we do not prefer users with permission in the query.
         $users = $this->getUserByFilter($keywords, $maxResults);
         return UserPicker::asJSON($users, $permission);
     }
     $friends = self::getFriendsByFilter($keywords, $maxResults);
     //Create userinfo json with with set 'disabled' field if the user is not permitted
     $jsonResult = UserPicker::asJSON($friends, $permission);
     //Fill the remaining space with member users with the given permission
     if (!$friendsOnly && count($friends) < $maxResults) {
         $additionalUser = [];
         //Here we filter with permission since we don't want to have non friend user without the permission in the result
         foreach ($this->getUserByFilter($keywords, $maxResults - count($friends), $permission) as $user) {
             if (!$this->containsUser($friends, $user)) {
                 $additionalUser[] = $user;
             }
         }
         $jsonResult = array_merge($jsonResult, UserPicker::asJSON($additionalUser));
     }
     return $jsonResult;
 }
示例#3
0
?>
<div class="panel-body">
<?php 
$form = ActiveForm::begin(['action' => ['/admin/group/add-members']]);
?>
<div style="display:flex;flex-wrap:wrap;">
    <div style="flex-grow:100;margin-right:5px;">
        <div>
            <?php 
echo $form->field($addGroupMemberForm, 'userGuids', ['inputOptions' => ['id' => 'user_select']])->label(false);
?>
            <?php 
echo Html::activeHiddenInput($addGroupMemberForm, 'groupId', ['value' => $group->id]);
?>
            <?php 
echo \humhub\modules\user\widgets\UserPicker::widget(['inputId' => 'user_select', 'model' => $addGroupMemberForm, 'attribute' => 'userGuids', 'userSearchUrl' => Url::toRoute('/admin/group/new-member-search'), 'data' => ['id' => $group->id], 'placeholderText' => Yii::t('AdminModule.views_group_manageGroupUser', 'Add new members...')]);
?>
        </div>
    </div>
    <div style="flex-grow:1;padding-top:1px;">   
        <?php 
echo Html::submitButton(Yii::t('AdminModule.views_group_manageGroupUser', 'Add'), ['class' => 'btn btn-primary', 'data-ui-loader' => ""]);
?>
   
    </div>
</div>
<?php 
ActiveForm::end();
?>

<div class="table-responsive">
示例#4
0
 /**
  * JSON Search for Users
  *
  * Returns an array of users with fields:
  *  - guid
  *  - displayName
  *  - image
  *  - profile link
  */
 public function actionJson()
 {
     Yii::$app->response->format = 'json';
     return \humhub\modules\user\widgets\UserPicker::filter(['keyword' => Yii::$app->request->get('keyword'), 'fillUser' => true, 'disableFillUser' => false]);
 }
示例#5
0
</h4>
        </div>
        <div class="modal-body">

            <?php 
echo $form->errorSummary($model);
?>

            <div class="form-group">
                <?php 
echo $form->field($model, 'recipient', ['inputOptions' => ['id' => 'recipient']]);
?>
            </div>

            <?php 
echo \humhub\modules\user\widgets\UserPicker::widget(array('inputId' => 'recipient', 'model' => $model, 'attribute' => 'recipient', 'userGuid' => Yii::$app->user->guid, 'placeholderText' => Yii::t('MailModule.views_mail_create', 'Add recipients'), 'focus' => true));
?>

            <div class="form-group">
                <?php 
echo $form->field($model, 'title');
?>
            </div>

            <div class="form-group">
                <?php 
echo $form->field($model, 'message', ['inputOptions' => ['class' => 'form-control', 'id' => 'newMessageText']])->textarea();
?>
                <?php 
echo \humhub\widgets\MarkdownEditor::widget(array('fieldId' => 'newMessageText'));
?>
示例#6
0
        <?php 
echo $form->textField($group, 'defaultSpaceGuid', array('class' => 'form-control', 'id' => 'space_select'));
?>

        <?php 
echo \humhub\modules\space\widgets\Picker::widget(['inputId' => 'space_select', 'maxSpaces' => 1, 'model' => $group, 'attribute' => 'defaultSpaceGuid']);
?>

        <?php 
echo $form->labelEx($group, 'adminGuids');
?>
        <?php 
echo $form->textArea($group, 'adminGuids', array('class' => 'span12', 'id' => 'user_select'));
?>
        <?php 
echo \humhub\modules\user\widgets\UserPicker::widget(['inputId' => 'user_select', 'maxUsers' => 2, 'model' => $group, 'attribute' => 'adminGuids', 'placeholderText' => 'Add a user']);
?>

        <?php 
if (Setting::Get('enabled', 'authentication_ldap')) {
    ?>
            <div class="form-group">
                <?php 
    echo $form->labelEx($group, 'ldap_dn');
    ?>
                <?php 
    echo $form->textField($group, 'ldap_dn', array('class' => 'form-control', 'placeholder' => Yii::t('AdminModule.views_group_edit', 'Ldap DN')));
    ?>
            </div>
        <?php 
}
        </ul>

        <?php 
echo $form;
?>

        <div id="notifyUserContainer" class="form-group hidden" style="margin-top: 15px;">
            <input type="text" value="" id="notifyUserInput" name="notifyUserInput"/>

            <?php 
$userSearchUrl = Url::toRoute(['/user/search/json', 'keyword' => '-keywordPlaceholder-']);
if ($contentContainer instanceof Space) {
    $userSearchUrl = $contentContainer->createUrl('/space/membership/search', array('keyword' => '-keywordPlaceholder-'));
}
/* add UserPickerWidget to notify members */
echo \humhub\modules\user\widgets\UserPicker::widget(array('inputId' => 'notifyUserInput', 'userSearchUrl' => $userSearchUrl, 'maxUsers' => 10, 'userGuid' => Yii::$app->user->guid, 'placeholderText' => Yii::t('ContentModule.widgets_views_contentForm', 'Add a member to notify'), 'focus' => true));
?>
        </div>

        <?php 
echo Html::hiddenInput("containerGuid", $contentContainer->guid);
echo Html::hiddenInput("containerClass", get_class($contentContainer));
?>

        <div class="contentForm_options">

            <hr>

            <div class="btn_container">

                <?php 
示例#8
0
 public function actionAdminUserSearch()
 {
     Yii::$app->response->format = 'json';
     $keyword = Yii::$app->request->get('keyword');
     $group = Group::findOne(Yii::$app->request->get('id'));
     return UserPicker::filter(['query' => $group->getUsers(), 'keyword' => $keyword, 'fillQuery' => User::find(), 'disableFillUser' => false]);
 }
示例#9
0
 /**
  * Creates a json user array used in the userpicker js frontend.
  * The $cfg is used to specify the filter values the following values are available:
  * 
  * query - (ActiveQuery) The initial query which is used to append additional filters. - default = User Friends if friendship module is enabled else User::find()
  * 
  * active - (boolean) Specifies if only active user should be included in the result - default = true
  * 
  * maxResults - (int) The max number of entries returned in the array - default = 10
  * 
  * keyword - (string) A keyword which filters user by username, firstname, lastname, email and title
  * 
  * permission - (BasePermission) An additional permission filter
  * 
  * fillQuery - (ActiveQuery) Can be used to fill the result array if the initial query does not return the maxResults, these results will have a lower priority
  * 
  * fillUser - (boolean) When set to true and no fillQuery is given the result is filled with User::find() results
  * 
  * disableFillUser - Specifies if the results of the fillQuery should be disabled in the userpicker results - default = true
  * 
  * @param type $cfg filter configuration
  * @return type json representation used by the userpicker
  */
 public static function filter($cfg = null)
 {
     $defaultCfg = ['active' => true, 'maxResult' => 10, 'disableFillUser' => true, 'keyword' => null, 'permission' => null, 'fillQuery' => null, 'fillUser' => false];
     $cfg = $cfg == null ? $defaultCfg : array_merge($defaultCfg, $cfg);
     //If no initial query is given we use getFriends if friendship module is enabled otherwise all users
     if (!isset($cfg['query'])) {
         $cfg['query'] = Yii::$app->getModule('friendship')->getIsEnabled() ? Yii::$app->user->getIdentity()->getFriends() : UserFilter::find();
     }
     //Filter the initial query and disable user without the given permission
     $user = UserFilter::filter($cfg['query'], $cfg['keyword'], $cfg['maxResult'], null, $cfg['active']);
     $jsonResult = self::asJSON($user, $cfg['permission'], 2);
     //Fill the result with additional users if it's allowed and the result count less than maxResult
     if (count($user) < $cfg['maxResult'] && (isset($cfg['fillQuery']) || $cfg['fillUser'])) {
         //Filter out users by means of the fillQuery or default the fillQuery
         $fillQuery = isset($cfg['fillQuery']) ? $cfg['fillQuery'] : UserFilter::find();
         UserFilter::addKeywordFilter($fillQuery, $cfg['keyword'], $cfg['maxResult'] - count($user));
         $fillQuery->andFilterWhere(['not in', 'id', self::getUserIdArray($user)]);
         $fillUser = $fillQuery->all();
         //Either the additional users are disabled (by default) or we disable them by permission
         $disableCondition = isset($cfg['permission']) ? $cfg['permission'] : $cfg['disableFillUser'];
         $jsonResult = array_merge($jsonResult, UserPicker::asJSON($fillUser, $disableCondition, 1));
     }
     return $jsonResult;
 }
示例#10
0
        <?php 
    echo \humhub\modules\space\widgets\Picker::widget(['inputId' => 'space_select', 'maxSpaces' => 1, 'model' => $group, 'attribute' => 'defaultSpaceGuid']);
    ?>
    <?php 
}
?>

    <?php 
if ($isManagerApprovalSetting && !$group->is_admin_group) {
    ?>
        <?php 
    echo $form->field($group, 'managerGuids', ['inputOptions' => ['id' => 'user_select']]);
    ?>
        <?php 
    $url = $group->isNewRecord ? null : Url::toRoute('/admin/group/admin-user-search');
    echo \humhub\modules\user\widgets\UserPicker::widget(['inputId' => 'user_select', 'model' => $group, 'attribute' => 'managerGuids', 'userSearchUrl' => $url, 'data' => ['id' => $group->id], 'placeholderText' => 'Add a user']);
    ?>
    <?php 
}
?>

    <strong><?php 
echo Yii::t('AdminModule.views_group_edit', 'Visibility');
?>
</strong>
    <br>
    <br>
    <?php 
if (!$group->is_admin_group) {
    ?>
        <?php 
        </div>
        <div class="modal-body">

            <?php 
echo $form->errorSummary($model);
?>

            <?php 
echo $form->labelEx($model, 'recipient');
?>
            <?php 
echo $form->textField($model, 'recipient', array('class' => 'form-control', 'id' => 'recipient'));
?>

            <?php 
echo \humhub\modules\user\widgets\UserPicker::widget(array('inputId' => 'recipient', 'model' => $model, 'attribute' => 'recipient', 'userGuid' => Yii::$app->user->guid, 'focus' => true));
?>

            <div class="form-group">
                <?php 
echo $form->labelEx($model, 'title');
?>
                <?php 
echo $form->textField($model, 'title', array('class' => 'form-control'));
?>
                <?php 
echo $form->error($model, 'title');
?>
            </div>

            <div class="form-group">
示例#12
0
</h4>
        </div>
        <div class="modal-body">

            <?php 
echo $form->errorSummary($model);
?>

            <div class="form-group">
                <?php 
echo $form->field($model, 'recipient', ['inputOptions' => ['id' => 'recipient']]);
?>
            </div>

            <?php 
echo \humhub\modules\user\widgets\UserPicker::widget(array('inputId' => 'recipient', 'model' => $model, 'attribute' => 'recipient', 'userGuid' => Yii::$app->user->guid, 'userSearchUrl' => Url::toRoute(['/mail/mail/search-user', 'keyword' => '-keywordPlaceholder-']), 'placeholderText' => Yii::t('MailModule.views_mail_create', 'Add recipients'), 'focus' => true));
?>

            <div class="form-group">
                <?php 
echo $form->field($model, 'title');
?>
            </div>

            <div class="form-group">
                <?php 
echo $form->field($model, 'message', ['inputOptions' => ['class' => 'form-control', 'id' => 'newMessageText']])->textarea();
?>
                <?php 
echo \humhub\widgets\MarkdownEditor::widget(array('fieldId' => 'newMessageText'));
?>