19 declare(strict_types=1);
34 public function __construct(
object $a_parent_obj,
string $a_parent_cmd,
int $a_ref_id)
38 $this->
setId(
'rbaclog');
39 $this->ref_id = $a_ref_id;
49 $this->
addColumn($this->
lng->txt(
'rbac_changes'),
'',
'50%');
54 $this->
setRowTemplate(
'tpl.rbac_log_row.html',
'Services/AccessControl');
76 $this->
filter[
'action'] = $item->getValue();
79 $this->
filter[
'date'] = $item->getDate();
82 protected function getItems(
int $a_ref_id, array $a_current_filter = null): void
86 $rbacreview = $DIC[
'rbacreview'];
90 foreach ($rbacreview->getOperations() as $op) {
91 $this->operations[$op[
'ops_id']] = $op[
'operation'];
105 protected function fillRow(array $a_set): void
109 $this->tpl->setVariable(
'LASTNAME', $name[
'lastname'] ??
'');
110 $this->tpl->setVariable(
'FIRSTNAME', $name[
'firstname'] ??
'');
111 $this->tpl->setVariable(
'LOGIN', $name[
'login'] ??
'');
112 $this->tpl->setVariable(
'ACTION', $this->action_map[$a_set[
'action']] ??
'');
116 $changes = [[
'action' => $this->
lng->txt(
'rbac_log_changed_owner'),
'operation' => $user]];
123 $this->tpl->setCurrentBlock(
'changes');
124 foreach ($changes as $change) {
125 $this->tpl->setVariable(
'CHANGE_ACTION', $change[
'action'] ??
'');
126 $this->tpl->setVariable(
'CHANGE_OPERATION', $change[
'operation'] ??
'');
127 $this->tpl->parseCurrentBlock();
137 if (isset($raw[
'src']) && is_numeric($raw[
'src'])) {
141 'action' => $this->
lng->txt(
'rbac_log_source_object'),
142 'operation' =>
'<a href="' . ilLink::_getLink($raw[
'src']) .
'">' .
ilObject::_lookupTitle($obj_id) .
'</a>' 147 foreach ($raw[
'ops'] as $role_id => $ops) {
148 foreach ($ops as $op) {
151 $this->
lng->txt(
'rbac_log_operation_add'),
158 } elseif (isset($raw[
'ops'])) {
159 foreach ($raw[
'ops'] as $role_id => $actions) {
160 foreach ($actions as $action => $ops) {
161 foreach ((array) $ops as $op) {
164 $this->
lng->txt(
'rbac_log_operation_' . $action),
174 if (isset($raw[
'inht'])) {
175 foreach ($raw[
'inht'] as $action => $role_ids) {
176 foreach ((array) $role_ids as $role_id) {
179 $this->
lng->txt(
'rbac_log_inheritance_' . $action),
193 foreach ($raw as $type => $actions) {
194 foreach ($actions as $action => $ops) {
195 foreach ($ops as $op) {
196 $result[] = [
'action' => sprintf(
197 $this->
lng->txt(
'rbac_log_operation_' . $action),
198 $this->
lng->txt(
'obj_' . $type)
214 if (is_array($a_op)) {
216 foreach ($a_op as $op) {
219 return implode(
', ',
$res);
222 if (is_numeric($a_op) && isset($this->operations[$a_op])) {
223 $op_id = $this->operations[$a_op];
224 if (substr($op_id, 0, 7) !=
'create_') {
228 if ($this->
lng->exists($a_type .
'_' . $op_id .
'_short')) {
229 $perm = $this->
lng->txt($a_type .
'_' . $op_id .
'_short');
231 $perm = $this->
lng->txt($op_id);
237 $type = substr($op_id, 7, strlen($op_id));
241 $perm = $this->
lng->txt(
'rbac_' . $op_id);
255 global $objDefinition;
257 if ($objDefinition->isPlugin($type)) {
268 return is_null($perm) || (strpos($perm, $op_id) !==
false);
getItems(int $a_ref_id, array $a_current_filter=null)
setFormAction(string $a_form_action, bool $a_multipart=false)
static _lookupFullname(int $a_user_id)
setResetCommand(string $a_val, string $a_caption="")
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
static _lookupName(int $a_user_id)
lookup user name
parseChangesFaPa(array $raw)
static getLogItems(int $a_ref_id, int $a_limit, int $a_offset, array $a_filter=null)
parseChangesTemplate(array $raw)
getTranslationFromPlugin(string $type, string $op_id)
Check the type for plugin and get the translation for op_id.
getOPCaption(string $a_type, $a_op)
addFilterItemByMetaType(string $id, int $type=self::FILTER_TEXT, bool $a_optional=false, string $caption="")
Add filter by standard type.
static _lookupTitle(int $obj_id)
static _getTranslation(string $a_role_title)
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
setFilterCommand(string $a_val, string $a_caption="")
static _lookupObjectId(int $ref_id)
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
static lookupTxtById(string $plugin_id, string $lang_var)
setLimit(int $a_limit=0, int $a_default_limit=0)
const EDIT_TEMPLATE_EXISTING
notTranslated(?string $perm, string $op_id)
Check the op is translated correctly.
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
static _lookupType(int $id, bool $reference=false)
determineOffsetAndOrder(bool $a_omit_offset=false)
setEnableHeader(bool $a_enableheader)
setMaxCount(int $a_max_count)
set max.
__construct(object $a_parent_obj, string $a_parent_cmd, int $a_ref_id)
setExternalSegmentation(bool $a_val)