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)