ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilAuthPageEditorGUI Class Reference

ilAuthPageEditorGUI: ilObjAuthSettingsGUI ilAuthPageEditorGUI: ilLoginPageGUI, ilLogoutPageGUI More...

+ Inheritance diagram for ilAuthPageEditorGUI:
+ Collaboration diagram for ilAuthPageEditorGUI:

Public Member Functions

 __construct (int $a_ref_id)
 
 getUnsafeGetCommands ()
 This method must return a list of unsafe GET commands. More...
 
 getSafePostCommands ()
 This method must return a list of safe POST commands. More...
 
 executeCommand ()
 

Data Fields

final const string DEFAULT_COMMAND = 'showPageEditorLanguages'
 
final const string LANGUAGE_TABLE_ACTIONS_COMMAND = 'handlePageActions'
 
final const string CONTEXT_HTTP_PARAM = 'auth_ipe_context'
 

Private Member Functions

 getRequestedAuthPageEditorContext ()
 
 forwardToPageObject ()
 
 handlePageActions ()
 
 getLangKeysToUpdate ()
 
 activate ()
 
 deactivate ()
 
 showPageEditorLanguages ()
 

Private Attributes

ilCtrlInterface $ctrl
 
ilLanguage $lng
 
ilGlobalTemplateInterface $tpl
 
ilTabsGUI $tabs
 
ILIAS HTTP Services $http
 
ILIAS Refinery Factory $refinery
 
ILIAS UI Factory $ui_factory
 
ILIAS UI Renderer $ui_renderer
 
ILIAS Style Content Object ObjectFacade $content_style_domain
 
string $redirect_source = null
 
int $requested_language_id = null
 
GUIService $content_style_gui
 
int $ref_id
 
string $request_ipe_context
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilAuthPageEditorGUI::__construct ( int  $a_ref_id)

Definition at line 50 of file class.ilAuthPageEditorGUI.php.

References $DIC, ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), null, ILIAS\Repository\refinery(), and ILIAS\Repository\tabs().

51  {
52  global $DIC;
53 
54  $this->ctrl = $DIC->ctrl();
55  $this->tpl = $DIC->ui()->mainTemplate();
56  $this->tabs = $DIC->tabs();
57 
58  $this->http = $DIC->http();
59  $this->refinery = $DIC->refinery();
60  $this->ui_factory = $DIC->ui()->factory();
61  $this->ui_renderer = $DIC->ui()->renderer();
62 
63  $this->lng = $DIC['lng'];
64 
65  $this->lng->loadLanguageModule('auth');
66 
67  $this->ref_id = $a_ref_id;
68 
69  $content_style = $DIC->contentStyle();
70  $this->content_style_domain = $content_style
71  ->domain()
72  ->styleForRefId($a_ref_id);
73  $this->content_style_gui = $content_style->gui();
74 
75  $query_wrapper = $DIC->http()->wrapper()->query();
76  $post_wrapper = $DIC->http()->wrapper()->post();
77  $refinery = $DIC->refinery();
78 
79  if ($query_wrapper->has('redirectSource')) {
80  $this->redirect_source = $query_wrapper->retrieve('redirectSource', $refinery->kindlyTo()->string());
81  }
82 
83  if ($post_wrapper->has('key')) {
84  $this->requested_language_id = $post_wrapper->retrieve('key', $refinery->kindlyTo()->int());
85  } elseif ($query_wrapper->has('key')) {
86  $this->requested_language_id = $query_wrapper->retrieve('key', $refinery->kindlyTo()->int());
87  }
88 
89  $this->request_ipe_context = $query_wrapper->retrieve(
90  self::CONTEXT_HTTP_PARAM,
91  $refinery->byTrying([
92  $refinery->kindlyTo()->string(),
93  $refinery->always(null)
94  ])
95  );
96  $this->ctrl->setParameter($this, self::CONTEXT_HTTP_PARAM, $this->request_ipe_context);
97  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
global $DIC
Definition: shib_login.php:26
ILIAS Refinery Factory $refinery
+ Here is the call graph for this function:

Member Function Documentation

◆ activate()

ilAuthPageEditorGUI::activate ( )
private

Definition at line 246 of file class.ilAuthPageEditorGUI.php.

References ILIAS\Repository\ctrl(), ilAuthPageEditorSettings\getInstance(), getLangKeysToUpdate(), getRequestedAuthPageEditorContext(), and ILIAS\Repository\lng().

Referenced by handlePageActions().

246  : void
247  {
248  $lang_keys = $this->getLangKeysToUpdate();
251  );
252 
253  foreach ($lang_keys as $lang_key) {
254  $settings->enableIliasEditor($lang_key, true);
255  }
256 
257  $settings->update();
258 
259  $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
260  $this->ctrl->redirect($this, self::DEFAULT_COMMAND);
261  }
static getInstance(AuthPageEditorContext $context)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deactivate()

ilAuthPageEditorGUI::deactivate ( )
private

Definition at line 263 of file class.ilAuthPageEditorGUI.php.

References ILIAS\Repository\ctrl(), ilAuthPageEditorSettings\getInstance(), getLangKeysToUpdate(), getRequestedAuthPageEditorContext(), and ILIAS\Repository\lng().

Referenced by handlePageActions().

263  : void
264  {
265  $lang_keys = $this->getLangKeysToUpdate();
268  );
269 
270  foreach ($lang_keys as $lang_key) {
271  $settings->enableIliasEditor($lang_key, false);
272  }
273 
274  $settings->update();
275 
276  $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
277  $this->ctrl->redirect($this, self::DEFAULT_COMMAND);
278  }
static getInstance(AuthPageEditorContext $context)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilAuthPageEditorGUI::executeCommand ( )

Definition at line 111 of file class.ilAuthPageEditorGUI.php.

References ILIAS\Repository\ctrl(), forwardToPageObject(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

111  : void
112  {
113  switch (strtolower($this->ctrl->getNextClass($this) ?? '')) {
114  case strtolower(ilLoginPageGUI::class):
115  case strtolower(ilLogoutPageGUI::class):
116  $this->tabs->clearTargets();
117  $this->tabs->setBackTarget(
118  $this->lng->txt('back'),
119  $this->ctrl->getLinkTarget($this, self::DEFAULT_COMMAND)
120  );
121 
122  if (strtolower($this->redirect_source ?? '') !== strtolower(ilInternalLinkGUI::class)) {
123  $this->forwardToPageObject();
124  }
125  break;
126 
127  default:
128  if (!$cmd = $this->ctrl->getCmd()) {
129  $cmd = 'showPageEditorLanguages';
130  }
131  $this->$cmd();
132  break;
133  }
134  }
ilLogoutPageGUI: ilPageEditorGUI, ilEditClipboardGUI, ilMDEditorGUI ilLogoutPageGUI: ilPublicUserPro...
+ Here is the call graph for this function:

◆ forwardToPageObject()

ilAuthPageEditorGUI::forwardToPageObject ( )
private

Definition at line 141 of file class.ilAuthPageEditorGUI.php.

References ILIAS\Repository\ctrl(), ilObjStyleSheet\getContentStylePath(), getRequestedAuthPageEditorContext(), ilObjStyleSheet\getSyntaxStylePath(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

Referenced by executeCommand().

141  : void
142  {
143  if (!$this->requested_language_id) {
144  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('language_does_not_exist'), true);
145  $this->ctrl->returnToParent($this);
146  }
147 
148  $this->lng->loadLanguageModule('content');
149 
150  $this->tabs->activateSubTab($this->getRequestedAuthPageEditorContext()->tabIdentifier());
151 
152  $ipe_gui_class = $this->getRequestedAuthPageEditorContext()->pageUiClass();
153  $ipe_class = $this->getRequestedAuthPageEditorContext()->pageClass();
154  $ipe_page_type = $this->getRequestedAuthPageEditorContext()->pageType();
155 
156  $this->ctrl->setParameter($this, 'key', $this->requested_language_id);
157 
158  if (!$ipe_class::_exists($ipe_page_type, $this->requested_language_id)) {
159  $new_page_object = new $ipe_class();
160  $new_page_object->setParentId($this->requested_language_id);
161  $new_page_object->setId($this->requested_language_id);
162  $new_page_object->createFromXML();
163  }
164 
165  $this->ctrl->setReturnByClass($ipe_gui_class, 'edit');
166  $page_gui = new ($ipe_gui_class)($this->requested_language_id);
167 
168  $this->tpl->addCss(ilObjStyleSheet::getContentStylePath(0));
169  $this->tpl->addCss(ilObjStyleSheet::getSyntaxStylePath());
170  $this->content_style_gui->addCss($this->tpl, $this->ref_id);
171 
172  $page_gui->setTemplateTargetVar('ADM_CONTENT');
173  $page_gui->setStyleId($this->content_style_domain->getEffectiveStyleId());
174  $page_gui->setTemplateOutput(false);
175 
176  $html = $this->ctrl->forwardCommand($page_gui);
177 
178  if ($html !== '') {
179  $this->tpl->setContent($html);
180  }
181  }
static getContentStylePath(int $a_style_id, bool $add_random=true, bool $add_token=true)
get content style path static (to avoid full reading)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLangKeysToUpdate()

ilAuthPageEditorGUI::getLangKeysToUpdate ( )
private
Returns
list<string>

Definition at line 227 of file class.ilAuthPageEditorGUI.php.

References ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), and ILIAS\Repository\refinery().

Referenced by activate(), and deactivate().

227  : array
228  {
229  $keys = $this->http->wrapper()->query()->retrieve(
230  'authpage_languages_key',
231  $this->refinery->byTrying([
232  $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->string()),
233  $this->refinery->always([])
234  ])
235  );
236 
237  $lang_keys = $this->lng->getInstalledLanguages();
238 
239  if ((string) current($keys) !== 'ALL_OBJECTS') {
240  $lang_keys = array_intersect($keys, $lang_keys);
241  }
242 
243  return $lang_keys;
244  }
static http()
Fetches the global http state from ILIAS.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRequestedAuthPageEditorContext()

ilAuthPageEditorGUI::getRequestedAuthPageEditorContext ( )
private

Definition at line 136 of file class.ilAuthPageEditorGUI.php.

References ILIAS\ResourceStorage\Flavour\Machine\DefaultMachines\from().

Referenced by activate(), deactivate(), forwardToPageObject(), handlePageActions(), and showPageEditorLanguages().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSafePostCommands()

ilAuthPageEditorGUI::getSafePostCommands ( )

This method must return a list of safe POST commands.

Safe post commands returned by this method will no longer be CSRF protected and will NOT be appended by an ilCtrlToken.

Returns
string[]

Implements ilCtrlSecurityInterface.

Definition at line 106 of file class.ilAuthPageEditorGUI.php.

106  : array
107  {
108  return [];
109  }

◆ getUnsafeGetCommands()

ilAuthPageEditorGUI::getUnsafeGetCommands ( )

This method must return a list of unsafe GET commands.

Unsafe get commands returned by this method will now be CSRF protected, which means an ilCtrlToken is appended each time a link-target is generated to the class implementing this interface with a command from that list.

Tokens will be validated in

See also
ilCtrlInterface::getCmd(), whereas the fallback command will be used if the CSRF validation fails.
Returns
string[]

Implements ilCtrlSecurityInterface.

Definition at line 99 of file class.ilAuthPageEditorGUI.php.

99  : array
100  {
101  return [
102  self::LANGUAGE_TABLE_ACTIONS_COMMAND
103  ];
104  }

◆ handlePageActions()

ilAuthPageEditorGUI::handlePageActions ( )
private

Definition at line 183 of file class.ilAuthPageEditorGUI.php.

References activate(), ILIAS\Repository\ctrl(), deactivate(), getRequestedAuthPageEditorContext(), ILIAS\FileDelivery\http(), ilLanguage\lookupId(), and ILIAS\Repository\refinery().

183  : void
184  {
185  $action = $this->http->wrapper()->query()->retrieve(
186  'authpage_languages_action',
187  $this->refinery->byTrying([
188  $this->refinery->kindlyTo()->string(),
189  $this->refinery->always('')
190  ])
191  );
192 
193  $keys = $this->http->wrapper()->query()->retrieve(
194  'authpage_languages_key',
195  $this->refinery->byTrying([
196  $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->string()),
197  $this->refinery->always([])
198  ])
199  );
200 
201  switch ($action) {
202  case AuthPageLanguagesOverviewTable::DEACTIVATE:
203  $this->deactivate();
204  break;
205 
206  case AuthPageLanguagesOverviewTable::ACTIVATE:
207  $this->activate();
208  break;
209 
210  case AuthPageLanguagesOverviewTable::EDIT:
211  $language_id = ilLanguage::lookupId((string) current($keys));
212  if ($language_id) {
213  $this->ctrl->setParameter($this, 'key', $language_id);
214  $this->ctrl->redirectByClass(
215  $this->getRequestedAuthPageEditorContext()->pageUiClass(),
216  'edit'
217  );
218  }
219  }
220 
221  $this->ctrl->redirect($this, self::DEFAULT_COMMAND);
222  }
static http()
Fetches the global http state from ILIAS.
static lookupId(string $a_lang_key)
Lookup obj_id of language.
+ Here is the call graph for this function:

◆ showPageEditorLanguages()

ilAuthPageEditorGUI::showPageEditorLanguages ( )
private

Definition at line 280 of file class.ilAuthPageEditorGUI.php.

References ILIAS\Repository\ctrl(), getRequestedAuthPageEditorContext(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

280  : void
281  {
282  $this->tabs->activateSubTab($this->getRequestedAuthPageEditorContext()->tabIdentifier());
284  $this->ctrl,
285  $this->lng,
286  $this->http,
287  $this->ui_factory,
288  $this->ui_renderer,
290  );
291 
292  $this->tpl->setContent($this->ui_renderer->render($tbl->getComponent()));
293  }
static http()
Fetches the global http state from ILIAS.
+ Here is the call graph for this function:

Field Documentation

◆ $content_style_domain

ILIAS Style Content Object ObjectFacade ilAuthPageEditorGUI::$content_style_domain
private

Definition at line 43 of file class.ilAuthPageEditorGUI.php.

◆ $content_style_gui

GUIService ilAuthPageEditorGUI::$content_style_gui
private

Definition at line 46 of file class.ilAuthPageEditorGUI.php.

◆ $ctrl

ilCtrlInterface ilAuthPageEditorGUI::$ctrl
private

Definition at line 35 of file class.ilAuthPageEditorGUI.php.

◆ $http

ILIAS HTTP Services ilAuthPageEditorGUI::$http
private

Definition at line 39 of file class.ilAuthPageEditorGUI.php.

◆ $lng

ilLanguage ilAuthPageEditorGUI::$lng
private

Definition at line 36 of file class.ilAuthPageEditorGUI.php.

◆ $redirect_source

string ilAuthPageEditorGUI::$redirect_source = null
private

Definition at line 44 of file class.ilAuthPageEditorGUI.php.

◆ $ref_id

int ilAuthPageEditorGUI::$ref_id
private

Definition at line 47 of file class.ilAuthPageEditorGUI.php.

◆ $refinery

ILIAS Refinery Factory ilAuthPageEditorGUI::$refinery
private

Definition at line 40 of file class.ilAuthPageEditorGUI.php.

◆ $request_ipe_context

string ilAuthPageEditorGUI::$request_ipe_context
private

Definition at line 48 of file class.ilAuthPageEditorGUI.php.

◆ $requested_language_id

int ilAuthPageEditorGUI::$requested_language_id = null
private

Definition at line 45 of file class.ilAuthPageEditorGUI.php.

◆ $tabs

ilTabsGUI ilAuthPageEditorGUI::$tabs
private

Definition at line 38 of file class.ilAuthPageEditorGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilAuthPageEditorGUI::$tpl
private

Definition at line 37 of file class.ilAuthPageEditorGUI.php.

◆ $ui_factory

ILIAS UI Factory ilAuthPageEditorGUI::$ui_factory
private

Definition at line 41 of file class.ilAuthPageEditorGUI.php.

◆ $ui_renderer

ILIAS UI Renderer ilAuthPageEditorGUI::$ui_renderer
private

Definition at line 42 of file class.ilAuthPageEditorGUI.php.

◆ CONTEXT_HTTP_PARAM

final const string ilAuthPageEditorGUI::CONTEXT_HTTP_PARAM = 'auth_ipe_context'

Definition at line 33 of file class.ilAuthPageEditorGUI.php.

Referenced by ilObjAuthSettingsGUI\setSubTabs().

◆ DEFAULT_COMMAND

final const string ilAuthPageEditorGUI::DEFAULT_COMMAND = 'showPageEditorLanguages'

Definition at line 31 of file class.ilAuthPageEditorGUI.php.

Referenced by ilObjAuthSettingsGUI\setSubTabs().

◆ LANGUAGE_TABLE_ACTIONS_COMMAND

final const string ilAuthPageEditorGUI::LANGUAGE_TABLE_ACTIONS_COMMAND = 'handlePageActions'

The documentation for this class was generated from the following file: