コード例 #1
0
ファイル: auth.php プロジェクト: vukasins/ocp
 public function login()
 {
     if (isset($_POST['username'])) {
         $where = array();
         $where[] = array('AND', 'content', '=', $_POST['username']);
         $where[] = array('AND', 'action', '=', 'login_failure');
         $where[] = array('AND', 'create_date', '>=', time() - 60 * 60);
         $order = array();
         $order[] = array('create_date', 'desc');
         $log = new Libraries_Db_Mysql_Model('sys_log');
         $access_failures = $log->search($where, $order);
         if (count($access_failures) >= 3) {
             header('location: ' . SITE_ROOT_URI . '/admin/error/');
             exit;
         }
         Admin_Libraries_Log::getInstance()->logAction('login_attempt', $_POST['username']);
         $username = $_POST['username'];
         $password = $_POST['password'];
         $is_login_success = Admin_Libraries_Admin::login($username, $password);
         $is_loged = Admin_Libraries_Admin::isLoged();
         if ($is_login_success && $is_loged) {
             Admin_Libraries_Log::getInstance()->logAction('login_success', $_POST['username']);
             header('location:' . SITE_ROOT_URI . '/admin/');
             exit;
         }
         Admin_Libraries_Log::getInstance()->logAction('login_failure', $_POST['username']);
     }
     Libraries_Layout::getInstance()->setTheme('admin');
     Libraries_Layout::getInstance()->setLayout('login');
     Libraries_Layout::getInstance()->render();
 }
コード例 #2
0
ファイル: error.php プロジェクト: vukasins/ocp
 public function index()
 {
     $content = Libraries_View::getInstance()->setModule('admin')->load('404');
     Libraries_Layout::getInstance()->setTheme('admin');
     if (Admin_Libraries_Admin::getLogedUser()->id > 0) {
         Libraries_Layout::getInstance()->setLayout('admin');
     } else {
         Libraries_Layout::getInstance()->setLayout('error');
     }
     Libraries_Layout::getInstance()->setRegionContent('content', $content);
     Libraries_Layout::getInstance()->render();
 }
コード例 #3
0
ファイル: objects.php プロジェクト: vukasins/ocp
 public function maplist()
 {
     $db_object_list = Libraries_Db_Factory::getDb()->fetchAll("SHOW TABLES", array(), Libraries_Db_Adapter::FETCH_TYPE_NUM);
     $available_db_objects = array();
     foreach ($db_object_list as $db_object) {
         $available_db_objects[] = $db_object[0];
     }
     Libraries_View::getInstance()->available_db_objects = $available_db_objects;
     $content = Libraries_View::getInstance()->setModule('crud')->load('map/list');
     Libraries_Layout::getInstance()->setTheme('admin');
     Libraries_Layout::getInstance()->setLayout('admin');
     Libraries_Layout::getInstance()->setRegionContent('content', $content);
     Libraries_Layout::getInstance()->render();
 }
コード例 #4
0
ファイル: permission.php プロジェクト: vukasins/ocp
 public function content($sys_object_id)
 {
     $sys_object = new Crud_Models_Object();
     $sys_object->load(intval($sys_object_id));
     $sys_object->loadFieldsForObject();
     if ($sys_object->is_system == 1 && $this->user->role->safe_title != 'administrator') {
         echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>';
         exit;
     }
     if (!$this->user->role->canExecuteAction('can_view_' . $sys_object->table_name)) {
         echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>';
         exit;
     }
     $order = array();
     $order[] = array('title', 'ASC');
     $role = new Libraries_Db_Mysql_Model('adm_user_role');
     $roles = $role->search(array(), $order);
     if (isset($_POST) && !empty($_POST)) {
         foreach ($roles as $role) {
             $sql = "DELETE \r\n\t\t\t\t\t\tFROM adm_user_role_permission\r\n\t\t\t\t\t\tWHERE id_adm_user_role = ?";
             $data = array($role->id);
             Libraries_Db_Factory::getDb()->execute($sql, $data);
             foreach ($_POST as $action => $data) {
                 $permission = new Libraries_Db_Mysql_Model('adm_user_role_permission');
                 $permission->id_adm_user_role = $role->id;
                 $permission->action = $action;
                 $permission->is_active = array_key_exists($role->id, $data) && $data[$role->id] == 1 ? 1 : 0;
                 $permission->save();
             }
         }
         Libraries_Flashdata::set('saved', __('Permissions is saved'));
     }
     $order = array();
     $order[] = array('table_name', 'ASC');
     $where = array();
     $where[] = array('AND', 'is_system', '!=', 1);
     $objects = $sys_object->search($where, $order);
     Libraries_View::getInstance()->roles = $roles;
     Libraries_View::getInstance()->objects = $objects;
     Libraries_View::getInstance()->saved_status = Libraries_Flashdata::get('saved');
     $content = Libraries_View::getInstance()->setModule('admin')->load('permissions');
     Libraries_Layout::getInstance()->setTheme('admin');
     Libraries_Layout::getInstance()->setLayout('admin');
     Libraries_Layout::getInstance()->setRegionContent('content', $content);
     Libraries_Layout::getInstance()->render();
 }
コード例 #5
0
ファイル: admin.php プロジェクト: vukasins/ocp
 public function profile()
 {
     if (isset($_POST) && !empty($_POST)) {
         $this->user->email = $_POST['email'];
         if (!empty($_POST['password']) && $_POST['password'] == $_POST['repeat_password']) {
             $this->user->password = md5($_POST['password'] . $user->salt);
         }
         $this->user->save();
         Libraries_Flashdata::set('saved', __('Profile is saved'));
     }
     Libraries_View::getInstance()->user = $this->user;
     Libraries_View::getInstance()->saved_status = Libraries_Flashdata::get('saved');
     $content = Libraries_View::getInstance()->setModule('admin')->load('profile');
     Libraries_Layout::getInstance()->setTheme('admin');
     Libraries_Layout::getInstance()->setLayout('admin');
     Libraries_Layout::getInstance()->setRegionContent('content', $content);
     Libraries_Layout::getInstance()->render();
 }
コード例 #6
0
ファイル: page.php プロジェクト: vukasins/ocp
 public function index()
 {
     $arguments = Libraries_Request::getInstance()->getArguments();
     $last_argument_part = end($arguments);
     $id_page = intval(preg_replace('/^(.*?)(\\d{1,})\\.html$/i', '$2', $last_argument_part));
     $page = new Page_Models_Page();
     if (!empty($id_page)) {
         $page->loadPublishedPageById($id_page);
     } else {
         $page->loadHomePage();
     }
     $page_template = new Page_Models_Page_Template();
     $page_template->load($page->id_page_template);
     $this->view->setSharedData('_SYSTEM_PAGE', $page);
     $this->view->setSharedData('_SYSTEM_PAGE_TEMPLATE', $page_template);
     Libraries_Layout::getInstance()->setTheme('demo');
     Libraries_Layout::getInstance()->setLayout($page_template->view_name);
     Libraries_Layout::getInstance()->render();
 }
コード例 #7
0
ファイル: admin.php プロジェクト: vukasins/ocp
                    
                	$.cookie('activeNavigationGroup', opened);
                }
            });

            var window_height = $(window).height() - $('.collapse.navbar-collapse.navbar-ex1-collapse').height();
            $('.nav.navbar-nav.side-nav ').height(window_height + 'px');
        });
        </script>

        <div id="page-wrapper">

            <div class="container-fluid">
            
            	<?php 
echo Libraries_Layout::getInstance()->renderRegion('content');
?>
            	
            	<div class="modal fade" id="loaderModal" style="position: absolute; z-index: 10000" data-backdrop="false">
					<div class="modal-dialog">
				    	<div class="modal-content">
				      		<div class="modal-header">
				        		<h4 class="modal-title">In progress</h4>
				      		</div>
				      		
				      		<div class="modal-body">
								<div class="progress">
									<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
										<span class="sr-only">100% Complete</span>
									</div>
								</div>
コード例 #8
0
ファイル: crud.php プロジェクト: vukasins/ocp
 public function content($sys_object_id, $current_page = 1, $is_ajax_call = 0, $subform_relation_id = null, $subform_relation_value = null)
 {
     $sys_object = new Crud_Models_Object();
     $sys_object->load(intval($sys_object_id));
     $sys_object->loadFieldsForObject();
     if ($sys_object->is_system == 1 && $this->user->role->safe_title != 'administrator') {
         if ($is_ajax_call) {
             return false;
         }
         echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>';
         exit;
     }
     if (!$this->user->role->canExecuteAction('can_view_' . $sys_object->table_name)) {
         if ($is_ajax_call) {
             return false;
         }
         echo '<script>window.location="' . SITE_ROOT_URI . '/admin/error/' . '"</script>';
         exit;
     }
     Libraries_Event::trigger('beforeCrudList', $sys_object);
     if ($sys_object->custom_crud_class != '' && new $sys_object->custom_crud_class() instanceof Crud_Interfaces_Crud) {
         echo call_user_func(array(new $sys_object->custom_crud_class(), 'content'), $sys_object_id);
         return;
     }
     $where = array();
     $order = array();
     $subform_relation_field = null;
     if ($subform_relation_id) {
         $subform_relation = new Crud_Models_Subform();
         $subform_relation->load($subform_relation_id);
         $subform_relation_field = new Crud_Models_Field();
         $subform_relation_field->load($subform_relation->id_sys_field);
         $where[] = array('AND', $subform_relation_field->field_name, '=', $subform_relation_value);
     }
     if (!isset($_GET['ord_field'])) {
         foreach ($sys_object->sys_field_list as $sys_field) {
             if ($sys_field->field_name == 'order_index') {
                 $order[] = array($sys_field->field_name, 'DESC');
                 break;
             }
         }
         if (empty($order)) {
             $order[] = array('id', 'DESC');
         }
     } else {
         $order[] = array($_GET['ord_field'], isset($_GET['ord_direction']) && $_GET['ord_direction'] == 'asc' ? 'asc' : 'desc');
     }
     $sql = "SELECT *\r\n\t\t\t\tFROM {$sys_object->table_name}\r\n\t\t\t\tWHERE\tis_deleted = " . (isset($_SESSION['trash']) && $_SESSION['trash'] == 1 ? 1 : 0);
     $sql_count = "\tSELECT COUNT(id)\r\n\t\t\t\t\t\tFROM {$sys_object->table_name}\r\n\t\t\t\t\t\tWHERE\tis_deleted = " . (isset($_SESSION['trash']) && $_SESSION['trash'] == 1 ? 1 : 0);
     $data = array();
     $search_data = array();
     if (isset($_POST) && !empty($_POST)) {
         foreach ($_POST as $key => $value) {
             if (preg_match('/^search_field_query_/', $key)) {
                 $field_key = str_replace('search_field_query_', '', $key);
                 $matches = array();
                 preg_match_all('/\\:\\w{1,}/', $value, $matches);
                 if (isset($matches[0])) {
                     foreach ($matches[0] as $i => $match) {
                         $match = trim($match, ':');
                         if (!isset($_POST[$match])) {
                             continue;
                         }
                         if (empty($_POST[$match])) {
                             continue;
                         }
                         // u prvom prolazu dodajemo parametre za upit
                         if ($i == 0) {
                             $sql .= ' AND ' . $value;
                             $sql_count .= ' AND ' . $value;
                         }
                         $search_data[$match] = $_POST[$match];
                         if (preg_match('/LIKE \\:(.*?)/', $value)) {
                             $data[$match] = '%' . $_POST[$match] . '%';
                         } else {
                             $data[$match] = $_POST[$match];
                         }
                     }
                 }
             }
         }
         /*
          echo '<pre>'; print_r($sql); echo '</pre>';
          echo '<pre>'; print_r($data); echo '</pre>'; exit;
         */
     } else {
         if (!empty($where)) {
             foreach ($where as $where_item) {
                 $sql .= ' ' . $where_item[0] . ' ' . $where_item[1] . ' ' . $where_item[2] . ' ?';
                 $sql_count .= ' ' . $where_item[0] . ' ' . $where_item[1] . ' ' . $where_item[2] . ' ?';
                 $data[] = $where_item[3];
             }
         }
     }
     if (!empty($order)) {
         $sql .= ' ORDER BY ';
     }
     foreach ($order as $order_item) {
         $sql .= $order_item[0] . ' ' . $order_item[1];
     }
     $sql .= ' LIMIT ' . ($current_page - 1) * Config_Environment::DEFAULT_ITEMS_PER_PAGE . ', ' . Config_Environment::DEFAULT_ITEMS_PER_PAGE;
     $response = Libraries_Db_Factory::getDb()->fetchAll($sql, $data, Libraries_Db_Adapter::FETCH_TYPE_ASSOC);
     $generic_model_data_count = Libraries_Db_Factory::getDb()->fetchColumn($sql_count, $data);
     $generic_model_data = array();
     foreach ($response as $row) {
         $generic_model_data[] = new Libraries_Db_Mysql_Model($sys_object->table_name, $row);
     }
     $user = Admin_Libraries_Admin::getLogedUser()->loadRole();
     Libraries_View::getInstance()->search_data = $search_data;
     Libraries_View::getInstance()->sys_object = $sys_object;
     Libraries_View::getInstance()->generic_model_data = $generic_model_data;
     Libraries_View::getInstance()->generic_model_data_count = $generic_model_data_count;
     Libraries_View::getInstance()->current_page = $current_page;
     Libraries_View::getInstance()->is_ajax_call = $is_ajax_call;
     Libraries_View::getInstance()->subform_relation_field = $subform_relation_field;
     Libraries_View::getInstance()->user = $user;
     $page_count = ceil($generic_model_data_count / Config_Environment::DEFAULT_ITEMS_PER_PAGE);
     if ($page_count > 0 && $current_page > $page_count) {
         header('location: ' . SITE_ROOT_URI . '/crud/content/' . $sys_object_id . '/' . $page_count);
         exit;
     }
     $content = Libraries_View::getInstance()->setModule('crud')->load('rows');
     Libraries_Layout::getInstance()->setTheme('admin');
     Libraries_Layout::getInstance()->setLayout('admin');
     Libraries_Layout::getInstance()->setRegionContent('content', $content);
     if (!$is_ajax_call) {
         Libraries_Layout::getInstance()->render();
     } else {
         echo $content;
     }
 }
コード例 #9
0
ファイル: layout.php プロジェクト: vukasins/ocp
 /**
  * @return Libraries_Layout
  */
 public static function getInstance()
 {
     return empty(self::$instance) ? self::$instance = new self() : self::$instance;
 }