19declare(strict_types=1);
28use Psr\Http\Message\ServerRequestInterface;
46 private readonly ServerRequestInterface $http_request,
48 private readonly UIFactory $ui_factory,
49 private readonly
int $server_id,
52 private readonly \
ILIAS\Data\URI $action_url
58 array $visible_column_ids,
61 mixed $additional_viewcontrol_data,
63 mixed $additional_parameters
67 yield $row_builder->buildDataRow((
string) $record[
'id'], $record);
73 if ($this->records ===
null) {
76 $mappings = $mapping_instance->getMappings();
77 foreach ($mappings as $item) {
78 $title = $this->object_data_cache->lookupTitle($this->rbac_review->getObjectOfRole((
int) $item[
'role']));
80 'id' => $item[
'mapping_id'],
82 'role' => $item[
'role_name'],
84 'url' => $item[
'url'],
85 'member_attribute' => $item[
'member_attribute'],
94 $query_params_namespace = [
'ldap',
'role',
'mapping'];
95 $url_builder =
new URLBuilder($this->action_url);
96 [$url_builder, $action_parameter_token, $row_id_token] = $url_builder->acquireParameters(
97 $query_params_namespace,
102 return $this->ui_factory->table()
105 $this->
lng->txt(
'mail_templates'),
108 ->withTitle($this->
lng->txt(
'ldap_role_group_assignments'))
109 ->withActions($this->getActions($url_builder, $action_parameter_token, $row_id_token))
111 'ldap_role_mapping_table'
113 ->withOrder(
new Order(
'title', Order::DESC))
114 ->withRequest($this->http_request);
118 mixed $additional_viewcontrol_data,
120 mixed $additional_parameters
122 $this->initRecords();
124 return count((array) $this->records);
140 $this->initRecords();
141 $records = $this->records;
144 $records = $this->orderRecords($records, $order);
148 $records = $this->limitRecords($records,
$range);
160 $actions[
'delete'] = $this->ui_factory->table()->action()->multi(
161 $this->
lng->txt(
'delete'),
162 $url_builder->
withParameter($action_parameter_token,
'confirmDeleteRoleMapping'),
166 $actions[
'copy'] = $this->ui_factory->table()->action()->single(
167 $this->
lng->txt(
'copy'),
168 $url_builder->
withParameter($action_parameter_token,
'addRoleMapping'),
172 $actions[
'edit'] = $this->ui_factory->table()->action()->single(
173 $this->
lng->txt(
'edit'),
174 $url_builder->
withParameter($action_parameter_token,
'editRoleMapping'),
228 [$order_field, $order_direction] = $order->
join(
230 fn($ret, $key, $value) => [$key, $value]
232 usort($records,
static fn(array $left, array $right):
int =>
ilStr::strCmp(
233 $left[$order_field] ??
'',
234 $right[$order_field] ??
''
237 if ($order_direction === Order::DESC) {
238 $records = array_reverse($records);
250 'title' => $this->ui_factory->table()->column()->text($this->
lng->txt(
'title')),
251 'role' => $this->ui_factory->table()->column()->text($this->
lng->txt(
'obj_role')),
252 'dn' => $this->ui_factory->table()->column()->text($this->
lng->txt(
'ldap_group_dn')),
253 'url' => $this->ui_factory->table()->column()->text($this->
lng->txt(
'ldap_server')),
254 'member_attribute' => $this->ui_factory->table()->column()->text($this->
lng->txt(
'ldap_group_member')),
255 'info' => $this->ui_factory->table()->column()->text($this->
lng->txt(
'ldap_info_text')),
Builds a Color from either hex- or rgb values.
Both the subject and the direction need to be specified when expressing an order.
join($init, callable $fn)
A simple class to express a naive range of whole positive numbers.
withParameter(URLBuilderToken $token, string|array $value)
Change an acquired parameter's value if the supplied token is valid.
orderRecords(array $records, Order $order)
getTotalRowCount(mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
Mainly for the purpose of pagination-support, it is important to know about the total number of recor...
limitRecords(array $records, Range $range)
getRecords(Range $range, Order $order)
getActions(URLBuilder $url_builder, URLBuilderToken $action_parameter_token, URLBuilderToken $row_id_token)
getRows(ILIAS\UI\Component\Table\DataRowBuilder $row_builder, array $visible_column_ids, Range $range, Order $order, mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
This is called by the table to retrieve rows; map data-records to rows using the $row_builder e....
__construct(private readonly ServerRequestInterface $http_request, private readonly ilLanguage $lng, private readonly UIFactory $ui_factory, private readonly int $server_id, private readonly ilObjectDataCache $object_data_cache, private readonly ilRbacReview $rbac_review, private readonly \ILIAS\Data\URI $action_url)
static _getInstanceByServerId(int $a_server_id)
Get instance of class.
class ilRbacReview Contains Review functions of core Rbac.
static strCmp(string $a, string $b)
static shortenTextExtended(string $a_str, int $a_len, bool $a_dots=false, bool $a_next_blank=false, bool $a_keep_extension=false)
A Column describes the form of presentation for a certain aspect of data, i.e.
This describes a Data Table.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.