public function sqlConditionAndPlaceholderValueForUserId($user_id)
 {
     $user_obj = User::factory($user_id);
     if ($user_obj->getHasFullAccess()) {
         return ['', []];
         // do not filter
     }
     $current_user_usertogroup_ids_arr = UserToGroup::getIdsArrForUserIdByCreatedAtDesc($user_id);
     $current_user_groups_ids_arr = [];
     foreach ($current_user_usertogroup_ids_arr as $usertogroup_id) {
         $usertogroup_obj = UserToGroup::factory($usertogroup_id);
         $current_user_groups_ids_arr[] = $usertogroup_obj->getGroupId();
     }
     $placeholder_values_arr = [];
     $where = ' (';
     $where .= '(owner_user_id = ?)';
     $placeholder_values_arr[] = $user_id;
     if (count($current_user_groups_ids_arr) > 0) {
         $user_groups_placeholders_arr = array_fill(0, count($current_user_groups_ids_arr), '?');
         $where .= ' or (owner_group_id in (' . implode($user_groups_placeholders_arr) . '))';
         $placeholder_values_arr = array_merge($placeholder_values_arr, $current_user_groups_ids_arr);
     }
     $where .= ') ';
     return [$where, $placeholder_values_arr];
 }
Esempio n. 2
0
 public static function userInGroupsTable($user_id)
 {
     if (!Operator::currentOperatorHasAnyOfPermissions([Permissions::PERMISSION_PHPAUTH_MANAGE_GROUPS])) {
         return '';
     }
     $html = '';
     $html .= '<h2>В составе групп</h2>';
     $new_user_to_group_obj = new UserToGroup();
     $new_user_to_group_obj->setUserId($user_id);
     $html .= CRUDTable::html(UserToGroup::class, CRUDForm::html($new_user_to_group_obj, [new CRUDFormInvisibleRow(new CRUDFormWidgetInput(UserToGroup::_USER_ID)), new CRUDFormRow('Группа', new CRUDFormWidgetReferenceAjax(UserToGroup::_GROUP_ID, Group::class, Group::_TITLE, (new GroupsListAjaxAction())->url(), (new GroupEditAction('REFERENCED_ID'))->url(), true))]), [new CRUDTableColumn('Группа', new CRUDTableWidgetTextWithLink('{' . Group::class . '.{this->' . UserToGroup::_GROUP_ID . '}->' . Group::_TITLE . '}', (new GroupEditAction('{this->' . UserToGroup::_GROUP_ID . '}'))->url())), new CRUDTableColumn('Удалить', new CRUDTableWidgetDelete())], [new CRUDTableFilterEqualInvisible(UserToGroup::_USER_ID, $user_id)]);
     return $html;
 }
Esempio n. 3
0
 public static function usersInGroupTable($group_id)
 {
     if (!Operator::currentOperatorHasAnyOfPermissions([Permissions::PERMISSION_PHPAUTH_MANAGE_USERS])) {
         return '';
     }
     $html = '<h2>Пользователи в группе</h2>';
     $new_user_to_group_obj = new UserToGroup();
     $new_user_to_group_obj->setGroupId($group_id);
     $html .= CRUDTable::html(UserToGroup::class, CRUDForm::html($new_user_to_group_obj, [new CRUDFormInvisibleRow(new CRUDFormWidgetInput(UserToGroup::_GROUP_ID)), new CRUDFormRow('Пользователь', new CRUDFormWidgetReferenceAjax(UserToGroup::_USER_ID, User::class, User::_LOGIN, (new UsersListAjaxAction())->url(), (new UserEditAction('REFERENCED_ID'))->url(), true))]), [new CRUDTableColumn('Логин', new \OLOG\CRUD\CRUDTableWidgetTextWithLink('{' . User::class . '.{this->' . UserToGroup::_USER_ID . '}->' . User::_LOGIN . '}', (new UserEditAction('{this->' . UserToGroup::_USER_ID . '}'))->url())), new CRUDTableColumn('Удалить', new CRUDTableWidgetDelete())], [new CRUDTableFilterEqualInvisible(UserToGroup::_GROUP_ID, $group_id)]);
     return $html;
 }