ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilMStShowUserCoursesGUI.php
Go to the documentation of this file.
1 <?php
20 
29 {
30  public const CMD_INDEX = 'index';
31  public const CMD_RESET_FILTER = 'resetFilter';
32  public const CMD_APPLY_FILTER = 'applyFilter';
33  public const CMD_GET_ACTIONS = "getActions";
34  protected int $usr_id;
35  protected ilTable2GUI $table;
37  private \ilGlobalTemplateInterface $main_tpl;
38 
39  public function __construct()
40  {
41  global $DIC;
42  $this->main_tpl = $DIC->ui()->mainTemplate();
43 
44  $this->access = ilMyStaffAccess::getInstance();
45 
46  $this->usr_id = $DIC->http()->request()->getQueryParams()['usr_id'];
47  $DIC->ctrl()->setParameter($this, 'usr_id', $this->usr_id);
48  }
49 
50  protected function checkAccessOrFail()
51  {
52  global $DIC;
53 
54  if (!$this->usr_id) {
55  $this->main_tpl->setOnScreenMessage('failure', $DIC->language()->txt("permission_denied"), true);
56  $DIC->ctrl()->redirectByClass(ilDashboardGUI::class, "");
57  }
58 
59  if ($this->access->hasCurrentUserAccessToUser($this->usr_id)
60  && $this->access->hasCurrentUserAccessToCourseMemberships()
61  ) {
62  return;
63  } else {
64  $this->main_tpl->setOnScreenMessage('failure', $DIC->language()->txt("permission_denied"), true);
65  $DIC->ctrl()->redirectByClass(ilDashboardGUI::class, "");
66  }
67  }
68 
69  final public function executeCommand()
70  {
71  global $DIC;
72 
73  $this->checkAccessOrFail();
74 
75  $cmd = $DIC->ctrl()->getCmd();
76  $next_class = $DIC->ctrl()->getNextClass();
77 
78  switch ($next_class) {
79  case strtolower(ilMStShowUserCoursesTableGUI::class):
80  $DIC->ctrl()->setReturn($this, self::CMD_INDEX);
81  $this->table = new ilMStShowUserCoursesTableGUI($this, self::CMD_INDEX);
82  $DIC->ctrl()->forwardCommand($this->table);
83  break;
84  default:
85  switch ($cmd) {
86  case self::CMD_RESET_FILTER:
87  case self::CMD_APPLY_FILTER:
88  case self::CMD_INDEX:
89  case self::CMD_GET_ACTIONS:
90  $this->$cmd();
91  break;
92  default:
93  $this->index();
94  break;
95  }
96  }
97  }
98 
99  protected function index(): void
100  {
101  $this->listUsers();
102  }
103 
104  protected function listUsers()
105  {
106  global $DIC;
107 
108  $this->table = new ilMStShowUserCoursesTableGUI($this, self::CMD_INDEX);
109  $this->table->setTitle(
110  sprintf($DIC->language()->txt('mst_courses_of'), ilObjCourse::_lookupTitle($this->usr_id))
111  );
112 
113  $DIC->ui()->mainTemplate()->setContent($this->table->getHTML());
114  }
115 
116  protected function applyFilter(): void
117  {
118  $this->table = new ilMStShowUserCoursesTableGUI($this, self::CMD_APPLY_FILTER);
119  $this->table->writeFilterToSession();
120  $this->table->resetOffset();
121  $this->index();
122  }
123 
124  protected function resetFilter(): void
125  {
126  $this->table = new ilMStShowUserCoursesTableGUI($this, self::CMD_RESET_FILTER);
127  $this->table->resetOffset();
128  $this->table->resetFilter();
129  $this->index();
130  }
131 
132  final public function getId(): string
133  {
134  $this->table = new ilMStShowUserCoursesTableGUI($this, self::CMD_INDEX);
135 
136  return $this->table->getId();
137  }
138 
139  final public function cancel(): void
140  {
141  global $DIC;
142  $DIC->ctrl()->redirect($this);
143  }
144 }
ilGlobalTemplateInterface $main_tpl
global $DIC
Definition: feed.php:28
static _lookupTitle(int $obj_id)
Class ilMStShowUserCoursesTableGUI.