mirror of
				https://github.com/Mibew/mibew.git
				synced 2025-10-31 10:31:07 +03:00 
			
		
		
		
	Replace "operator/features.php" with a controller
This commit is contained in:
		
							parent
							
								
									46e329471c
								
							
						
					
					
						commit
						862d94d35d
					
				| @ -0,0 +1,120 @@ | ||||
| <?php | ||||
| /* | ||||
|  * Copyright 2005-2014 the original author or authors. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| 
 | ||||
| namespace Mibew\Controller\Settings; | ||||
| 
 | ||||
| use Mibew\Controller\AbstractController; | ||||
| use Mibew\Settings; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| 
 | ||||
| /** | ||||
|  * Contains actions which are related with features system settings. | ||||
|  */ | ||||
| class FeaturesController extends AbstractController | ||||
| { | ||||
|     /** | ||||
|      * Builds a page with form for features system settings. | ||||
|      * | ||||
|      * @param Request $request Incoming request. | ||||
|      * @return string Rendered page content. | ||||
|      */ | ||||
|     public function showFormAction(Request $request) | ||||
|     { | ||||
|         set_csrf_token(); | ||||
| 
 | ||||
|         $operator = $request->attributes->get('_operator'); | ||||
|         $page = array( | ||||
|             'agentId' => '', | ||||
|             'errors' => array(), | ||||
|         ); | ||||
| 
 | ||||
|         if (Settings::get('featuresversion') != FEATURES_VERSION) { | ||||
|             Settings::set('featuresversion', FEATURES_VERSION); | ||||
|             Settings::update(); | ||||
|         } | ||||
| 
 | ||||
|         // Load all needed options and fill form with them.
 | ||||
|         $options = $this->getOptionsList(); | ||||
|         foreach ($options as $opt) { | ||||
|             $page['form' . $opt] = (Settings::get($opt) == '1'); | ||||
|         } | ||||
| 
 | ||||
|         $page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator); | ||||
|         $page['stored'] = $request->query->get('stored'); | ||||
|         $page['title'] = getlocal('settings.title'); | ||||
|         $page['menuid'] = 'settings'; | ||||
|         $page = array_merge($page, prepare_menu($operator)); | ||||
|         $page['tabs'] = setup_settings_tabs(1); | ||||
| 
 | ||||
|         return $this->render('settings_features', $page); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Processes submitting of the form which is generated in | ||||
|      * {@link \Mibew\Controller\Settings\FeaturesController::showFormAction()} | ||||
|      * method. | ||||
|      * | ||||
|      * @param Request $request Incoming request. | ||||
|      * @return string Rendered page content. | ||||
|      */ | ||||
|     public function submitFormAction(Request $request) | ||||
|     { | ||||
|         csrf_check_token($request); | ||||
| 
 | ||||
|         // Update options in the database.
 | ||||
|         $options = $this->getOptionsList(); | ||||
|         foreach ($options as $opt) { | ||||
|             $value = $request->request->get($opt) == 'on' ? '1' : '0'; | ||||
|             Settings::set($opt, $value); | ||||
|         } | ||||
|         Settings::update(); | ||||
| 
 | ||||
|         // Redirect the current operator to the same page using GET method.
 | ||||
|         $redirect_to = $this->generateUrl( | ||||
|             'settings_features', | ||||
|             array('stored' => true) | ||||
|         ); | ||||
| 
 | ||||
|         return $this->redirect($redirect_to); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Returns list with names of all features options. | ||||
|      * | ||||
|      * @return array Features options names. | ||||
|      */ | ||||
|     protected function getOptionsList() | ||||
|     { | ||||
|         return array( | ||||
|             'enableban', | ||||
|             'usercanchangename', | ||||
|             'enablegroups', | ||||
|             'enablegroupsisolation', | ||||
|             'enablestatistics', | ||||
|             'enabletracking', | ||||
|             'enablessl', | ||||
|             'forcessl', | ||||
|             'enablepresurvey', | ||||
|             'surveyaskmail', | ||||
|             'surveyaskgroup', | ||||
|             'surveyaskmessage', | ||||
|             'enablepopupnotification', | ||||
|             'showonlineoperators', | ||||
|             'enablecaptcha', | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| @ -377,6 +377,22 @@ settings_common_save: | ||||
|         _access_permissions: [CAN_ADMINISTRATE] | ||||
|     methods: [POST] | ||||
| 
 | ||||
| settings_features: | ||||
|     path: /operator/settings/features | ||||
|     defaults: | ||||
|         _controller: Mibew\Controller\Settings\FeaturesController::showFormAction | ||||
|         _access_check: Mibew\AccessControl\Check\PermissionsCheck | ||||
|         _access_permissions: [CAN_ADMINISTRATE] | ||||
|     methods: [GET] | ||||
| 
 | ||||
| settings_features_save: | ||||
|     path: /operator/settings/features | ||||
|     defaults: | ||||
|         _controller: Mibew\Controller\Settings\FeaturesController::submitFormAction | ||||
|         _access_check: Mibew\AccessControl\Check\PermissionsCheck | ||||
|         _access_permissions: [CAN_ADMINISTRATE] | ||||
|     methods: [POST] | ||||
| 
 | ||||
| settings_performance: | ||||
|     path: /operator/settings/performance | ||||
|     defaults: | ||||
|  | ||||
| @ -32,7 +32,7 @@ function setup_settings_tabs($active) | ||||
|             ? (MIBEW_WEB_ROOT . "/operator/settings") | ||||
|             : ""), | ||||
|         getlocal("page_settings.tab.features") => ($active != 1 | ||||
|             ? (MIBEW_WEB_ROOT . "/operator/features.php") | ||||
|             ? (MIBEW_WEB_ROOT . "/operator/settings/features") | ||||
|             : ""), | ||||
|         getlocal("page_settings.tab.performance") => ($active != 2 | ||||
|             ? (MIBEW_WEB_ROOT . "/operator/settings/performance") | ||||
|  | ||||
| @ -1,87 +0,0 @@ | ||||
| <?php | ||||
| /* | ||||
|  * Copyright 2005-2014 the original author or authors. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| 
 | ||||
| // Import namespaces and classes of the core
 | ||||
| use Mibew\Settings; | ||||
| use Mibew\Style\PageStyle; | ||||
| 
 | ||||
| // Initialize libraries
 | ||||
| require_once(dirname(dirname(__FILE__)) . '/libs/init.php'); | ||||
| 
 | ||||
| $operator = check_login(); | ||||
| csrf_check_token(); | ||||
| 
 | ||||
| $page = array( | ||||
|     'agentId' => '', | ||||
|     'errors' => array(), | ||||
| ); | ||||
| 
 | ||||
| $options = array( | ||||
|     'enableban', | ||||
|     'usercanchangename', | ||||
|     'enablegroups', | ||||
|     'enablegroupsisolation', | ||||
|     'enablestatistics', | ||||
|     'enabletracking', | ||||
|     'enablessl', | ||||
|     'forcessl', | ||||
|     'enablepresurvey', | ||||
|     'surveyaskmail', | ||||
|     'surveyaskgroup', | ||||
|     'surveyaskmessage', | ||||
|     'enablepopupnotification', | ||||
|     'showonlineoperators', | ||||
|     'enablecaptcha', | ||||
| ); | ||||
| 
 | ||||
| if (Settings::get('featuresversion') != FEATURES_VERSION) { | ||||
|     Settings::set('featuresversion', FEATURES_VERSION); | ||||
|     Settings::update(); | ||||
| } | ||||
| $params = array(); | ||||
| foreach ($options as $opt) { | ||||
|     $params[$opt] = Settings::get($opt); | ||||
| } | ||||
| 
 | ||||
| if (isset($_POST['sent'])) { | ||||
|     if (is_capable(CAN_ADMINISTRATE, $operator)) { | ||||
|         foreach ($options as $opt) { | ||||
|             Settings::set($opt, (verify_param($opt, "/^on$/", "") == "on" ? "1" : "0")); | ||||
|         } | ||||
|         Settings::update(); | ||||
|         header("Location: " . MIBEW_WEB_ROOT . "/operator/features.php?stored"); | ||||
|         exit; | ||||
|     } else { | ||||
|         $page['errors'][] = "Not an administrator"; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| $page['canmodify'] = is_capable(CAN_ADMINISTRATE, $operator); | ||||
| $page['stored'] = isset($_GET['stored']); | ||||
| foreach ($options as $opt) { | ||||
|     $page["form$opt"] = $params[$opt] == "1"; | ||||
| } | ||||
| 
 | ||||
| $page['title'] = getlocal("settings.title"); | ||||
| $page['menuid'] = "settings"; | ||||
| 
 | ||||
| $page = array_merge($page, prepare_menu($operator)); | ||||
| 
 | ||||
| $page['tabs'] = setup_settings_tabs(1); | ||||
| 
 | ||||
| $page_style = new PageStyle(PageStyle::getCurrentStyle()); | ||||
| $page_style->render('features', $page); | ||||
| @ -35,7 +35,7 @@ $page = array( | ||||
|     'profilePage' => MIBEW_WEB_ROOT . "/operator/operator/" . $operator['operatorid'] . '/edit', | ||||
|     'updateWizard' => MIBEW_WEB_ROOT . "/install/", | ||||
|     'newFeatures' => Settings::get('featuresversion') != FEATURES_VERSION, | ||||
|     'featuresPage' => MIBEW_WEB_ROOT . "/operator/features.php", | ||||
|     'featuresPage' => MIBEW_WEB_ROOT . "/operator/settings/features", | ||||
|     'isOnline' => $is_online, | ||||
|     'warnOffline' => true, | ||||
|     'title' => getlocal("topMenu.admin"), | ||||
|  | ||||
| @ -18,7 +18,7 @@ | ||||
|             <div id="formmessage">{{l10n "features.saved"}}</div> | ||||
|         {{/if}} | ||||
| 
 | ||||
|         <form name="features" method="post" action="{{mibewRoot}}/operator/features.php"> | ||||
|         <form name="features" method="post" action="{{mibewRoot}}/operator/settings/features"> | ||||
|             {{csrfTokenInput}} | ||||
|             <input type="hidden" name="sent" value="true"/> | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user