ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilMStListUsersGUI.php
Go to the documentation of this file.
1 <?php
2 
5 
14 {
15  const CMD_RESET_FILTER = 'resetFilter';
16  const CMD_APPLY_FILTER = 'applyFilter';
17  const CMD_INDEX = 'index';
18  const CMD_GET_ACTIONS = "getActions";
19  const CMD_ADD_USER_AUTO_COMPLETE = 'addUserAutoComplete';
23  protected $table;
27  protected $access;
28 
29 
33  public function __construct()
34  {
35  $this->access = ilMyStaffAccess::getInstance();
36  }
37 
38 
42  protected function checkAccessOrFail()
43  {
44  global $DIC;
45 
46  if ($this->access->hasCurrentUserAccessToMyStaff()) {
47  return;
48  } else {
49  ilUtil::sendFailure($DIC->language()->txt("permission_denied"), true);
50  $DIC->ctrl()->redirectByClass(ilDashboardGUI::class, "");
51  }
52  }
53 
54 
58  public function executeCommand()
59  {
60  global $DIC;
61 
62  $this->checkAccessOrFail();
63 
64  $cmd = $DIC->ctrl()->getCmd();
65 
66  switch ($cmd) {
67  case self::CMD_RESET_FILTER:
68  case self::CMD_APPLY_FILTER:
69  case self::CMD_INDEX:
70  case self::CMD_ADD_USER_AUTO_COMPLETE:
71  case self::CMD_GET_ACTIONS:
72  $this->$cmd();
73  break;
74  default:
75  $this->index();
76  break;
77  }
78  }
79 
80 
84  public function index()
85  {
86  $this->listUsers();
87  }
88 
89 
93  public function listUsers()
94  {
95  global $DIC;
96 
97  $this->table = new ilMStListUsersTableGUI($this, self::CMD_INDEX);
98  $DIC->ui()->mainTemplate()->setTitle($DIC->language()->txt('mst_list_users'));
99  $DIC->ui()->mainTemplate()->setContent($this->table->getHTML());
100  }
101 
102 
106  public function applyFilter()
107  {
108  $this->table = new ilMStListUsersTableGUI($this, self::CMD_APPLY_FILTER);
109  $this->table->writeFilterToSession();
110  $this->table->resetOffset();
111  $this->index();
112  }
113 
114 
118  public function resetFilter()
119  {
120  $this->table = new ilMStListUsersTableGUI($this, self::CMD_RESET_FILTER);
121  $this->table->resetOffset();
122  $this->table->resetFilter();
123  $this->index();
124  }
125 
126 
130  public function cancel()
131  {
132  global $DIC;
133 
134  $DIC->ctrl()->redirect($this);
135  }
136 
137 
141  public function getActions()
142  {
143  global $DIC;
144 
145  $mst_lus_usr_id = $DIC->http()->request()->getQueryParams()['mst_lus_usr_id'];
146  if ($mst_lus_usr_id > 0) {
147  $selection = new ilAdvancedSelectionListGUI();
148 
149  if ($this->access->hasCurrentUserAccessToMyStaff()) {
150  $DIC->ctrl()->setParameterByClass(ilMStShowUserCoursesGUI::class, 'usr_id', $mst_lus_usr_id);
151  $selection->addItem($DIC->language()->txt('mst_show_courses'), '', $DIC->ctrl()->getLinkTargetByClass(array(
152  ilDashboardGUI::class,
153  ilMyStaffGUI::class,
154  ilMStShowUserGUI::class,
155  ilMStShowUserCoursesGUI::class,
156  )));
157  }
158 
159  if ($this->access->hasCurrentUserAccessToCertificates()) {
160  $DIC->ctrl()->setParameterByClass(ilUserCertificateGUI::class, 'usr_id', $mst_lus_usr_id);
161  $selection->addItem($DIC->language()->txt('mst_list_certificates'), '', $DIC->ctrl()->getLinkTargetByClass(array(
162  ilDashboardGUI::class,
163  ilMyStaffGUI::class,
164  ilMStShowUserGUI::class,
165  ilUserCertificateGUI::class,
166  )));
167  }
168 
169  if ($this->access->hasCurrentUserAccessToCompetences()) {
170  $DIC->ctrl()->setParameterByClass(ilMStShowUserCompetencesGUI::class, 'usr_id', $mst_lus_usr_id);
171  $selection->addItem($DIC->language()->txt('mst_list_competences'), '', $DIC->ctrl()->getLinkTargetByClass(array(
172  ilDashboardGUI::class,
173  ilMyStaffGUI::class,
174  ilMStShowUserGUI::class,
175  ilMStShowUserCompetencesGUI::class,
176  )));
177  }
178 
179 
180  $selection = ilMyStaffGUI::extendActionMenuWithUserActions($selection, $mst_lus_usr_id, rawurlencode($DIC->ctrl()
181  ->getLinkTarget($this, self::CMD_INDEX)));
182 
183  echo $selection->getHTML(true);
184  }
185  exit;
186  }
187 }
exit
Definition: login.php:29
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46