ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilIndividualAssessmentMembersGUI.php
Go to the documentation of this file.
1 <?php
2 require_once 'Modules/IndividualAssessment/classes/class.ilIndividualAssessmentMembersTableGUI.php';
3 require_once 'Modules/IndividualAssessment/classes/LearningProgress/class.ilIndividualAssessmentLPInterface.php';
15 
16  protected $ctrl;
17  protected $parent_gui;
18  protected $ref_id;
19  protected $tpl;
20  protected $lng;
21 
22  public function __construct($a_parent_gui, $a_ref_id) {
23  global $DIC;
24  $this->ctrl = $DIC['ilCtrl'];
25  $this->parent_gui = $a_parent_gui;
26  $this->object = $a_parent_gui->object;
27  $this->ref_id = $a_ref_id;
28  $this->tpl = $DIC['tpl'];
29  $this->lng = $DIC['lng'];
30  $this->toolbar = $DIC['ilToolbar'];
31  $this->access_handler = $this->object->accessHandler();
32  }
33 
34  public function executeCommand() {
35  if(!$this->access_handler->checkAccessToObj($this->object,'edit_members')
36  && !$this->access_handler->checkAccessToObj($this->object,'edit_learning_progress')
37  && !$this->access_handler->checkAccessToObj($this->object,'read_learning_progress') ) {
38  $this->parent_gui->handleAccessViolation();
39  }
40  $cmd = $this->ctrl->getCmd();
41  $next_class = $this->ctrl->getNextClass();
42  switch($next_class) {
43  case "ilrepositorysearchgui":
44  require_once 'Services/Search/classes/class.ilRepositorySearchGUI.php';
45  $rep_search = new ilRepositorySearchGUI();
46  $rep_search->setCallback($this,"addUsersFromSearch");
47  $this->ctrl->forwardCommand($rep_search);
48  break;
49  case "ilindividualassessmentmembergui":
50  require_once 'Modules/IndividualAssessment/classes/class.ilIndividualAssessmentMemberGUI.php';
51  $member = new ilIndividualAssessmentMemberGUI($this, $this->parent_gui, $this->ref_id);
52  $this->ctrl->forwardCommand($member);
53  break;
54  default:
55  if(!$cmd) {
56  $cmd = 'view';
57  }
58  $this->$cmd();
59  break;
60  }
61  }
62 
63  protected function addedUsers() {
64  if(!$_GET['failure']) {
65  ilUtil::sendSuccess($this->lng->txt('iass_add_user_success'));
66  } else {
67  ilUtil::sendFailure($this->lng->txt('iass_add_user_failure'));
68  }
69  $this->view();
70  }
71 
72  protected function view() {
73  if($this->access_handler->checkAccessToObj($this->object,'edit_members')) {
74  require_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
75 
76  $search_params = ['crs', 'grp'];
77  $container_id = $this->object->getParentContainerIdByType($this->ref_id, $search_params);
78  if($container_id !== 0) {
80  $this,
81  $this->toolbar,
82  array(
83  'auto_complete_name' => $this->lng->txt('user'),
84  'submit_name' => $this->lng->txt('add'),
85  'add_search' => true,
86  'add_from_container' => $container_id
87  )
88  );
89  } else {
91  $this,
92  $this->toolbar,
93  array(
94  'auto_complete_name' => $this->lng->txt('user'),
95  'submit_name' => $this->lng->txt('add'),
96  'add_search' => true
97  )
98  );
99  }
100  }
101  $table = new ilIndividualAssessmentMembersTableGUI($this);
102  $this->tpl->setContent($table->getHTML());
103  }
104 
105  public function addUsersFromSearch($user_ids) {
106  if($user_ids && is_array($user_ids) && !empty($user_ids)) {
107  $this->addUsers($user_ids);
108  }
109 
110  ilUtil::sendInfo($this->lng->txt("search_no_selection"), true);
111  $this->ctrl->redirectByClass(array(get_class($this->parent_gui),get_class($this)),'view');
112  }
113 
119  public function addUsers(array $user_ids) {
120 
121  if(!$this->object->accessHandler()->checkAccessToObj($this->object,'edit_members')) {
122  $a_parent_gui->handleAccessViolation();
123  }
124  $iass = $this->object;
125  $members = $iass->loadMembers();
126  $failure = null;
127  if(count($user_ids) === 0) {
128  $failure = 1;
129  }
130  foreach ($user_ids as $user_id) {
131  $user = new ilObjUser($user_id);
132  if(!$members->userAllreadyMember($user)) {
133  $members = $members->withAdditionalUser($user);
134  } else {
135  $failure = 1;
136  }
137  }
138  $members->updateStorageAndRBAC($iass->membersStorage(),$iass->accessHandler());
140  $this->ctrl->setParameter($this, 'failure', $failure);
141  $this->ctrl->redirectByClass(array(get_class($this->parent_gui),get_class($this)),'addedUsers');
142  }
143 
144  protected function removeUserConfirmation() {
145  if(!$this->object->accessHandler()->checkAccessToObj($this->object,'edit_members')) {
146  $a_parent_gui->handleAccessViolation();
147  }
148  $this->parent_gui->setScreenId("iass", "members", "removeUserConfirmation");
149  include_once './Services/Utilities/classes/class.ilConfirmationGUI.php';
150  $confirm = new ilConfirmationGUI();
151  $confirm->addItem('usr_id',$_GET['usr_id'], ilObjUser::_lookupFullname($_GET['usr_id']));
152  $confirm->setHeaderText($this->lng->txt('iass_remove_user_qst'));
153  $confirm->setFormAction($this->ctrl->getFormAction($this));
154  $confirm->setConfirm($this->lng->txt('remove'), 'removeUser');
155  $confirm->setCancel($this->lng->txt('cancel'), 'view');
156  $this->tpl->setContent($confirm->getHTML());
157  }
158 
164  public function removeUser() {
165  if(!$this->object->accessHandler()->checkAccessToObj($this->object,'edit_members')) {
166  $a_parent_gui->handleAccessViolation();
167  }
168  $usr_id = $_POST['usr_id'];
169  $iass = $this->object;
170  $iass->loadMembers()
171  ->withoutPresentUser(new ilObjUser($usr_id))
172  ->updateStorageAndRBAC($iass->membersStorage(),$iass->accessHandler());
174  $this->ctrl->redirectByClass(array(get_class($this->parent_gui),get_class($this)),'view');
175  }
176 }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$failure
addUsers(array $user_ids)
Add users to corresponding iass-object.
$_GET["client_id"]
static _lookupFullname($a_user_id)
Lookup Full Name.
$cmd
Definition: sahs_server.php:35
removeUser()
Remove users from corresponding iass-object.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
For the purpose of streamlining the grading and learning-process status definition outside of tests...
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Create new PHPExcel object
obj_idprivate
global $DIC
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
For the purpose of streamlining the grading and learning-process status definition outside of tests...
$_POST["username"]
Confirmation screen class.