public function update() { Allow::permission($this->module['group'], 'settings'); if (!Request::ajax()) { App::abort(404); } $json_request = array('status' => FALSE, 'responseText' => '', 'responseErrorText' => '', 'redirect' => FALSE); ## Скелет настроек из конфига $settings = Config::get('settings'); $settings_sections = isset($settings['sections']) && is_callable($settings['sections']) ? $settings['sections']() : NULL; #Helper::ta($settings_sections); ## Текущие значения настроек из БД $settings_values = Storage::firstOrNew(['module' => 'system', 'name' => 'settings']); $settings_values = json_decode($settings_values->value, true); #Helper::tad($settings_values); ## Новые значения настроек - из формы $settings_values_new = @Input::all()['settings']; #Helper::tad($settings_values); ## Проходим все проверки, и сохраняем настройки ## Если в конфиге объявлены секции настроек... if (!is_null($settings_sections) && is_array($settings_sections) && count($settings_sections)) { ## Если из формы переданы новые значения настроек if (is_array($settings_values_new) && count($settings_values_new)) { ## Перебираем все секции настроек, переданных из формы foreach ($settings_values_new as $section_slug => $options) { ## Если передана неизвестная секция - пропускаем ее if (!isset($settings_sections[$section_slug]) || !is_array($settings_sections[$section_slug]) || !count($settings_sections[$section_slug])) { continue; } #Helper::ta($settings_sections[$section_slug]); ## Перебираем все опции в текущей известной секции (из конфига) foreach ($settings_sections[$section_slug]['options'] as $option_slug => $option_data) { #Helper::ta($section_slug . ' / ' . $option_slug . ' => '); $value = isset($options[$option_slug]) ? $options[$option_slug] : NULL; ## If handler of field is defined if (is_callable($handler = @$option_data['handler'])) { #Helper::d($handler); #var_dump($value); $value = $handler($value); } if ($value === false) { continue; } #var_dump($value); $settings_values[$section_slug][$option_slug] = $value; } } } } ## СОХРАНЕНИЕ #Helper::tad($settings_values); Storage::updateOrCreate(['module' => 'system', 'name' => 'settings'], ['value' => json_encode($settings_values)]); ## КЕШИРОВАНИЕ Cache::forever('cms.settings', $settings_values); $json_request['responseText'] = 'Сохранено'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }
public function destroy($id) { Allow::permission($this->module['group'], 'delete'); if (!Request::ajax()) { App::abort(404); } $json_request = array('status' => FALSE, 'responseText' => ''); $element = Upload::where('id', $id)->first(); if (is_object($element)) { #Helper::tad($element); #Helper::dd($element->fullpath()); @unlink($element->fullpath()); $element->delete(); } $json_request['responseText'] = 'Удалено'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }
public function deleteDestroy($id) { Allow::permission($this->module['group'], 'users'); if (!Request::ajax()) { App::abort(404); } $json_request = array('status' => FALSE, 'responseText' => ''); $deleted = User::find($id)->delete(); $json_request['responseText'] = 'Пользователь удален'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }
public function destroy($id) { Allow::permission($this->module['group'], $this->module['name']); if (!Request::ajax()) { App::abort(404); } $json_request = array('status' => FALSE, 'responseText' => ''); $deleted = Storage::where('module', 'menu')->where('id', $id)->delete(); $json_request['responseText'] = 'Удалено'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }
private function dicval_permission($dic, $permission = '') { /** * Устанавливаем права доступа текущего пользователя к словарю, из конфига (если они заданы) */ $dic_settings = Config::get('dic/' . $dic->slug); if (@is_object(Auth::user()) && @is_object(Auth::user()->group) && NULL != ($user_group_name = Auth::user()->group->name)) { #Helper::dd($user_group_name); #$user_group_name = 'moderator'; $dicval_permissions = @$dic_settings['group_actions'][$user_group_name]; #Helper::dd($dicval_permissions); if (isset($dicval_permissions) && @is_callable($dicval_permissions)) { $dicval_permissions = $dicval_permissions(); #Helper::dd($dicval_permissions); Allow::set_actions($this->module['group'], $dicval_permissions); } } /** * Проверяем, есть ли у пользователя необходимые права для выполнения действия */ Allow::permission($this->module['group'], $permission); }
public function deleteDestroy($id) { Allow::permission($this->module['group'], 'groups'); if (!Request::ajax()) { App::abort(404); } $json_request = array('status' => FALSE, 'responseText' => ''); if ($id == 1) { $json_request['responseText'] = 'Невозможно удалить группу Администраторы'; return Response::json($json_request, 400); } $deleted = Group::find($id)->delete(); $json_request['responseText'] = 'Группа удалена'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }
public function destroy($id) { if (!Request::ajax()) { App::abort(404); } Allow::permission($this->module['group'], 'delete'); $json_request = array('status' => FALSE, 'responseText' => ''); $page = $this->essence->find($id); if (is_object($page)) { $metas = $this->pages_meta->where('page_id', $id)->get(); if (count($metas)) { /** * Delete SEO data of the PageMeta * DEPRICATED */ if (class_exists('Seo')) { $metas_list = $metas->lists('id'); Seo::where('module', 'page_meta')->whereIn('unit_id', $metas_list)->delete(); } foreach ($metas as $meta) { $meta->delete(); } } $blocks = $this->pages_blocks->where('page_id', $id)->get(); if (count($blocks)) { foreach ($blocks as $block) { $block_metas = $this->pages_blocks_meta->where('block_id', $block->id)->get(); foreach ($block_metas as $block_meta) { $block_meta->delete(); } $block->delete(); } } /** * Delete SEO data of the Page */ if (class_exists('Seo')) { Seo::where('module', 'Page')->where('unit_id', $page->id)->delete(); } } $page->delete(); ## Clear & reload pages cache Page::drop_cache(); Page::preload(); $json_request['responseText'] = 'Страница удалена'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }
public function postImport3($dic_id) { Allow::permission($this->module['group'], 'import'); $dic = Dictionary::where(is_numeric($dic_id) ? 'id' : 'slug', $dic_id)->first(); if (!is_object($dic)) { App::abort(404); } #Helper::tad($dic); ## Get also exists values #$exist_values = $dic->values; #Helper::ta($exist_values); $input = Input::all(); /* foreach ($exist_values as $e => $exist_value) { if ($input['rewrite_mode'] == 1) $exist_values[$exist_value->name] = $exist_value; else $exist_values[$exist_value->slug] = $exist_value; unset($exist_values[$e]); } Helper::ta($exist_values); */ $max = count($input['values'][0]); $fields = $input['fields']; $values = $input['values']; ## Filter fields & values foreach ($fields as $f => $field) { if (is_numeric($field) && $field == 0) { #Helper::d($f . " => " . $field . " = 0"); unset($fields[$f]); unset($values[$f]); } } #Helper::d($fields); #Helper::d($values); ## Make insertions $find_key = $input['rewrite_mode'] == 1 ? 'name' : 'slug'; $array = array(); $count = count($values[0]); for ($i = 0; $i < $count; $i++) { $arr = array('dic_id' => $dic->id); foreach ($fields as $f => $field) { $arr[$field] = @trim($values[$f][$i]); } $find = array($find_key => @$arr[$find_key], 'dic_id' => $dic->id); #unset($arr[$find_key]); if (@$input['set_slug'] && ($input['set_slug_elements'] == 'all' || $input['set_slug_elements'] == 'empty' && !@$arr['slug'])) { $arr['slug'] = Helper::translit(@$arr['name']); } if (@$input['set_ucfirst'] && $arr['name']) { $arr['name'] = Helper::mb_ucfirst($arr['name']); } #Helper::dd($find); #/* $dicval = DicVal::firstOrCreate($find); $dicval->update($arr); #Helper::ta($dicval); #*/ unset($dicval); #$array[] = $arr; } #Helper::d($array); return Redirect::route('dicval.index', $dic_id); }
public function destroy($id) { if (!Request::ajax()) { App::abort(404); } Allow::permission($this->module['group'], 'delete'); $json_request = array('status' => FALSE, 'responseText' => ''); $element = $this->essence->find($id); if (is_object($element)) { $metas = $this->news_meta->where('news_id', $id)->get(); if (count($metas)) { foreach ($metas as $meta) { $meta->delete(); } } } $element->delete(); $json_request['responseText'] = 'Удалено'; $json_request['status'] = TRUE; return Response::json($json_request, 200); }