/** * Partner törlése AJAX */ public function delete() { if ($this->request->is_ajax()) { if (Auth::hasAccess('client.delete')) { // a POST-ban kapott item_id egy tömb $id_arr = $this->request->get_post('item_id'); // a sikeres törlések számát tárolja $success_counter = 0; // a sikeresen törölt id-ket tartalmazó tömb $success_id = array(); // a sikertelen törlések számát tárolja $fail_counter = 0; // file helper példányosítás $file_helper = DI::get('file_helper'); foreach ($id_arr as $id) { //átalakítjuk a integer-ré a kapott adatot $id = (int) $id; //lekérdezzük a törlendő kép nevét, hogy törölhessük a szerverről $photo_name = $this->client_model->selectPicture($id); //rekord törlése $result = $this->client_model->delete($id); if ($result !== false) { // ha a törlési sql parancsban nincs hiba if ($result > 0) { //ha van feltöltött képe (az adatbázisban szerepel a file-név) if (!empty($photo_name)) { //kép file törlése a szerverről $file_helper->delete(Config::get('clientphoto.upload_path') . $photo_name); } //sikeres törlés $success_counter += $result; $success_id[] = $id; } else { //sikertelen törlés $fail_counter++; } } else { // ha a törlési sql parancsban hiba van $this->response->json(array('status' => 'error', 'message_error' => 'Adatbázis lekérdezési hiba!')); } } // üzenetek visszaadása $respond = array(); $respond['status'] = 'success'; if ($success_counter > 0) { $respond['message_success'] = 'Partner törölve.'; } if ($fail_counter > 0) { $respond['message_error'] = 'A partnert már töröltek!'; } // respond tömb visszaadása $this->response->json($respond); } else { $this->response->json(array('status' => 'error', 'message' => 'Nincs engedélye a művelet végrehajtásához!')); } } }
<li class="dropdown dropdown-user"> <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> <img alt="" class="img-circle" src="<?php echo $this->getConfig('user.upload_path') . Auth::getUser('photo'); ?> " /> <span class="username username-hide-on-mobile"><?php echo Auth::getUser('name'); ?> </span> <i class="fa fa-angle-down"></i> </a> <ul class="dropdown-menu dropdown-menu-default"> <li> <a href="admin/user/profile/<?php echo Auth::getUser('id'); ?> "> <i class="fa fa-user"></i> Profilom </a> </li> <li class="divider"> </li> <li> <a href="admin/login/logout"> <i class="fa fa-key"></i> Kijelentkezés </a> </li> </ul> </li> <!-- END USER LOGIN DROPDOWN --> </ul> </div> <!-- END TOP NAVIGATION MENU -->
if (Auth::hasAccess('user.delete') && $user['id'] != $loggedin_user_id) { ?> <li><a class="delete_item" data-id="<?php echo $user['id']; ?> "> <i class="fa fa-trash"></i> Töröl</a></li> <?php } else { ?> <!-- <li class="disabled-link"><a class="disable-target" title="Nem törölhető"><i class="fa fa-trash"></i> Töröl</a></li> --> <?php } ?> <?php if (Auth::hasAccess('user.change_status') && $user['id'] != $loggedin_user_id) { ?> <?php if ($user['active'] == 1) { ?> <li><a class="change_status" data-id="<?php echo $user['id']; ?> " data-action="make_inactive"><i class="fa fa-ban"></i> Blokkol</a></li> <?php } ?> <?php if ($user['active'] == 0) { ?>
<div class="form-group"> <label for="password" class="control-label">Jelszó<span class="required">*</span></label> <input type="password" id="password" name="password" class="form-control input-xlarge"/> </div> <div class="form-group"> <label for="password_again" class="control-label">Jelszó ismétlése<span class="required">*</span></label> <input type="password" name="password_again" class="form-control input-xlarge" /> </div> </div> <!-- ****************************** JOGOSULTSÁGOK ***************************** --> <?php if (Auth::hasAccess('user.edit_roles')) { ?> <div id="tab_4_4" class="tab-pane"> <h3>Felhasználói jogosultság</h3> <div class="note note-info"> A felhasználói jogosultság (felhasználói csoport) megadásával beállítható, hogy a felhasználó mihez férhet hozzá, milyen műveleteket hajthat végre. </div> <div class="form-group"> <label><strong>Felhasználói csoportok</strong></label> <div class="radio-list"> <label> <input type="radio" name="user_group" value="1" <?php echo $user['role_id'] == 1 ? 'checked' : '';
/** * Jogosultság ellenőrzése a template-ben * @param array $permission */ public function hasAccess($permission) { return Auth::hasAccess($permission, null); }
private function _loadController() { $router = DI::get('router'); /* **************************************************** */ /* *************** SITE ******************************* */ /* **************************************************** */ if (AREA == 'site') { $router->get('/', 'home@index'); $router->set404('error@index'); } elseif (AREA == 'admin') { $router->mount('/admin', function () use($router) { $router->before('GET|POST', '/?((?!login).)*', function () { if (!Auth::check()) { $response = DI::get('response'); $response->redirect('admin/login'); } }); $router->get('/', 'home@index'); $router->get('/home', 'home@index'); // login logout $router->match('GET|POST', '/login', 'login@index'); $router->get('/login/logout', 'login@logout'); // pages $router->get('/pages', 'pages@index'); $router->match('GET|POST', '/pages/update/:id', 'pages@update', array('id')); // content $router->get('/content', 'content@index'); $router->match('GET|POST', '/content/edit/:id', 'content@edit', array('id')); // user $router->get('/user', 'user@index'); $router->match('GET|POST', '/user/insert', 'user@insert'); $router->match('GET|POST', '/user/profile/:id', 'user@profile', array('id')); $router->post('/user/delete', 'user@delete'); $router->post('/user/change_status', 'user@change_status'); $router->post('/user/user_img_upload/(upload)', 'user@user_img_upload', array('upload')); $router->post('/user/user_img_upload/(crop)', 'user@user_img_upload', array('crop')); $router->match('GET|POST', '/user/user_roles', 'user@user_roles'); $router->match('GET|POST', '/user/edit_roles/:id', 'user@edit_roles', array('id')); // photo gallery $router->get('/photo-gallery', 'photo_gallery@index'); $router->post('/photo-gallery/delete_photo', 'photo_gallery@delete_photo'); $router->post('/photo-gallery/delete_category', 'photo_gallery@delete_category'); $router->match('GET|POST', '/photo-gallery/insert', 'photo_gallery@insert'); $router->match('GET|POST', '/photo-gallery/update/:id', 'photo_gallery@update', array('id')); $router->get('/photo-gallery/category', 'photo_gallery@category'); // slider $router->get('/slider', 'slider@index'); $router->post('/slider/delete', 'slider@delete'); $router->match('GET|POST', '/slider/insert', 'slider@insert'); $router->match('GET|POST', '/slider/update/:id', 'slider@update', array('id')); $router->post('/slider/order', 'slider@order'); // testimonials $router->get('/testimonials', 'testimonials@index'); $router->match('GET|POST', '/testimonials/insert', 'testimonials@insert'); $router->match('GET|POST', '/testimonials/update/:id', 'testimonials@update', array('id')); $router->get('/testimonials/delete/:id', 'testimonials@delete', array('id')); // clients $router->get('/clients', 'clients@index'); $router->post('/clients/client_img_upload/(upload)', 'clients@client_img_upload', array('upload')); $router->post('/clients/client_img_upload/(crop)', 'clients@client_img_upload', array('crop')); $router->post('/clients/delete', 'clients@delete'); $router->match('GET|POST', '/clients/insert', 'clients@insert'); $router->match('GET|POST', '/clients/update/:id', 'clients@update', array('id')); $router->post('/clients/order', 'clients@order'); // file manager $router->get('/file_manager', 'file_manager@index'); // settings $router->match('GET|POST', '/settings', 'settings@index'); // user manual $router->get('/user-manual', 'user_manual@index'); // languages $router->get('/languages', 'languages@index'); $router->post('/languages/save', 'languages@save'); // newsletter $router->get('/newsletter', 'newsletter@index'); $router->get('/newsletter/newsletter_stats', 'newsletter@newsletter_stats'); $router->post('/newsletter/delete', 'newsletter@delete'); $router->match('GET|POST', '/newsletter/insert', 'newsletter@insert'); $router->match('GET|POST', '/newsletter/update/:id', 'newsletter@update', array('id')); // blog $router->get('/blog', 'blog@index'); $router->post('/blog/delete', 'blog@delete'); $router->match('GET|POST', '/blog/insert', 'blog@insert'); $router->match('GET|POST', '/blog/update/:id', 'blog@update', array('id')); $router->get('/blog/category', 'blog@category'); $router->post('/blog/category_insert_update', 'blog@category_insert_update'); $router->post('/blog/category_delete', 'blog@category_delete'); // error $router->set404('error@index'); }); } // dispatcher objektum példányosítása $dispatcher = new \System\Libs\Dispatcher(); // controller névtérének beállítása $dispatcher->setControllerNamespace('System\\' . ucfirst(AREA) . '\\Controller\\'); // before útvonalak bejárása, a megadott elemek futtatása $before_callbacks = $router->runBefore(); $dispatcher->dispatch($before_callbacks); // útvonalak bejárása, controller példányosítása, action indítása $callback = $router->run(); $dispatcher->dispatch($callback); }
/** * Felhasználó engedélyének ellenőrzése a megadott művlethez * * @param string $permission egy művelet neve pl.: delete_user * @param string $target_url egy átirányítási hely, ha nincs engedély * @return void */ public static function hasAccess($permission, $target_url = null) { //$instance = self::instance(); $instance = DI::get('auth'); // !!!! ha nincs a permissions táblában a megadott permission, akkor automatikusan engedélyezve lesz /* if (!$instance->checkPermission($permission)) { return true; } */ // ha még nincsenek lekérdezve a felhasználó permission-jai if (is_null($instance->permissions)) { if (Auth::isUserLoggedIn()) { $role_id = $instance->getRoleId(); $instance->permissions = $role_id == 1 ? '*' : $instance->getRolePerms($role_id); //$instance->permissions = $instance->getRolePerms($role_id); } else { $instance->permissions = array(); } } if ($instance->_checkAccess($permission)) { return true; } else { if (!is_null($target_url)) { $instance->_accessDenied($permission, $target_url); } return false; } }
/** * Slider törlése AJAX-al */ public function delete() { if ($this->request->is_ajax()) { if (Auth::hasAccess('slider.delete')) { // a POST-ban kapott item_id egy tömb $id_arr = $this->request->get_post('item_id'); // a sikeres törlések számát tárolja $success_counter = 0; // a sikeresen törölt id-ket tartalmazó tömb $success_id = array(); // a sikertelen törlések számát tárolja $fail_counter = 0; $file_helper = DI::get('file_helper'); $url_helper = DI::get('url_helper'); // bejárjuk a $id_arr tömböt és minden elemen végrehajtjuk a törlést foreach ($id_arr as $id) { //átalakítjuk a integer-ré a kapott adatot $id = (int) $id; //lekérdezzük a törlendő blog képének a nevét, hogy törölhessük a szerverről $photo_name = $this->slider_model->selectPicture($id); //blog törlése $result = $this->slider_model->delete($id); if ($result !== false) { // ha a törlési sql parancsban nincs hiba if ($result > 0) { //ha van feltöltött képe a bloghoz (az adatbázisban szerepel a file-név) if (!empty($photo_name)) { $picture_path = Config::get('slider.upload_path') . $photo_name; $thumb_picture_path = $url_helper->thumbPath($picture_path); $file_helper->delete(array($picture_path, $thumb_picture_path)); } //sikeres törlés $success_counter += $result; $success_id[] = $id; } else { //sikertelen törlés $fail_counter += 1; } } else { // ha a törlési sql parancsban hiba van $this->response->json(array('status' => 'error', 'message_error' => 'Hibas sql parancs: nem sikerult a DELETE lekerdezes az adatbazisbol!')); } } // üzenetek visszaadása $respond = array(); $respond['status'] = 'success'; if ($success_counter > 0) { $respond['message_success'] = 'A slide törölve.'; } if ($fail_counter > 0) { $respond['message_error'] = 'A slide-ot már töröltek!'; } // respond tömb visszaadása $this->response->json($respond); } else { $this->response->json(array('status' => 'error', 'message' => 'Nincs engedélye a művelet végrehajtásához!')); } } }
<?php } ?> <li class="nav-item <?php $this->menu_active('user', 'profile'); ?> "> <a href="admin/user/profile/<?php echo Auth::getUser('id'); ?> " class="nav-link "> <span class="title">Profilom</span> </a> </li> <?php if (Auth::isSuperadmin()) { ?> <li class="nav-item <?php $this->menu_active('user', 'user_roles|edit_roles'); ?> "> <a href="admin/user/user_roles" class="nav-link "> <span class="title">Csoportok</span> </a> </li> <?php } ?> </ul> </li>
/** * (AJAX) Az users táblában módosítja a user_active mező értékét * * @return void */ public function change_status() { if ($this->request->is_ajax()) { // jogosultság vizsgálat if (Auth::hasAccess('user.change_status')) { if ($this->request->has_post('action') && $this->request->has_post('id')) { $id = $this->request->get_post('id', 'integer'); $action = $this->request->get_post('action'); if ($action == 'make_active') { $result = $this->user_model->changeStatus($id, 1); if ($result !== false) { $this->response->json(array("status" => 'success', "message" => 'A felhasználó aktiválása megtörtént!')); } else { $this->response->json(array("status" => 'error', "message" => 'Adatbázis hiba! A felhasználó státusza nem változott meg!')); } } if ($action == 'make_inactive') { //ha a szuperadmint akarjuk blokkolni if ($this->user_model->is_user_superadmin($id)) { $this->response->json(array("status" => 'error', "message" => 'Szuperadminisztrátor nem blokkolható!')); return; } $result = $this->user_model->changeStatus($id, 0); if ($result !== false) { $this->response->json(array("status" => 'success', "message" => 'A felhasználó blokkolása megtörtént!')); } else { $this->response->json(array("status" => 'error', "message" => 'Adatbázis hiba! A felhasználó státusza nem változott meg!')); } } } else { $this->response->json(array("status" => 'error', "message" => 'unknown_error')); } } else { $this->response->json(array("status" => 'error', "message" => 'Nincs engedélye a művelet végrehajtásához.')); } } else { $this->response->redirect('admin/error'); } }