| Server IP : 103.48.194.25 / Your IP : 216.73.216.74 Web Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.33 System : Linux VMHostDefault 3.10.0-1160.42.2.el7.x86_64 #1 SMP Tue Sep 7 14:49:57 UTC 2021 x86_64 User : sieuthimay ( 1016) PHP Version : 8.2.20 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/zomuaban.com/public_html/site/hooks/ |
Upload File : |
<?php
class Access {
public $CI;
public $acl;
public function __construct(){
$this->CI =& get_instance();
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries');
//log_message('debug', "Zend Class Initialized");
require_once 'Zend/Acl.php';
require_once 'Zend/Acl/Role.php';
require_once 'Zend/Acl/Resource.php';
$this->acl = new Zend_Acl;
$this->CI->accessHook = $this->acl;
}
public function start() {
$this->CI->load->helper('utils_helper');
$directory = $this->CI->router->fetch_directory();
$controller = $this->CI->router->fetch_class();
$action = $this->CI->router->fetch_method();
$role = get_my_role();
$this->setRoles();
$this->setResources();
$this->setAccess();
if (!$this->acl->isAllowed($role, $directory.$controller, $action)) {
if (!isLogin()){
redirect(url_login().'?redirect-url='.my_current_url(), 'location');
}else {
if ($role == 'guest')
redirect(base_url());
else
redirect('backend/admin/locked');
}
}
}
public function setRoles(){
$this->acl ->addRole(new Zend_Acl_Role('guest'))
->addRole(new Zend_Acl_Role('member'), 'guest')
->addRole(new Zend_Acl_Role('editor'), 'guest')
->addRole(new Zend_Acl_Role('mod'), 'editor')
->addRole(new Zend_Acl_Role('admin'), 'mod')
# Quản trị tin đăng
->addRole(new Zend_Acl_Role('itemad_editor'), 'editor')
->addRole(new Zend_Acl_Role('itemad_mod'), array('itemad_editor', 'mod'))
->addRole(new Zend_Acl_Role('itemad_admin'), array('itemad_mod', 'admin'))
# Quản trị tin VIP
->addRole(new Zend_Acl_Role('itemvip_editor'), 'editor')
->addRole(new Zend_Acl_Role('itemvip_mod'), array('itemvip_editor', 'mod'))
->addRole(new Zend_Acl_Role('itemvip_admin'), array('itemvip_mod', 'admin'))
# Quản trị quảng cáo
->addRole(new Zend_Acl_Role('adv_editor'), 'editor')
->addRole(new Zend_Acl_Role('adv_mod'), array('adv_editor', 'mod'))
->addRole(new Zend_Acl_Role('adv_admin'), array('adv_mod', 'admin'))
# Quản trị user
->addRole(new Zend_Acl_Role('user_editor'), 'editor')
->addRole(new Zend_Acl_Role('user_mod'), array('user_editor', 'mod'))
->addRole(new Zend_Acl_Role('user_admin'), array('user_mod', 'admin'))
# Nhóm siêu ADmin
->addRole(new Zend_Acl_Role('site_admin'), array( 'itemad_admin',
'itemvip_admin',
'adv_admin',
'user_admin'
)) # Kế thừ tất cả admin khác
->addRole(new Zend_Acl_Role('supper_admin'), 'site_admin');
}
public function setResources() {
$this->acl ->add(new Zend_Acl_Resource('frontend/search'))
->add(new Zend_Acl_Resource('frontend/home'))
->add(new Zend_Acl_Resource('frontend/adv'))
->add(new Zend_Acl_Resource('frontend/itemad'))
->add(new Zend_Acl_Resource('frontend/auth'))
->add(new Zend_Acl_Resource('frontend/ajax'))
->add(new Zend_Acl_Resource('frontend/upload'))
->add(new Zend_Acl_Resource('frontend/profile'))
->add(new Zend_Acl_Resource('frontend/vote'))
->add(new Zend_Acl_Resource('frontend/email'))
->add(new Zend_Acl_Resource('frontend/wave'))
->add(new Zend_Acl_Resource('frontend/post'))
->add(new Zend_Acl_Resource('frontend/test'))
->add(new Zend_Acl_Resource('frontend/testing'))
->add(new Zend_Acl_Resource('frontend/router'))
->add(new Zend_Acl_Resource('frontend/payment'))
->add(new Zend_Acl_Resource('frontend/transaction'))
->add(new Zend_Acl_Resource('frontend/report'))
->add(new Zend_Acl_Resource('frontend/keyword'))
->add(new Zend_Acl_Resource('frontend/sitemap'))
->add(new Zend_Acl_Resource('frontend/rss'))
->add(new Zend_Acl_Resource('frontend/autosurf'))
->add(new Zend_Acl_Resource('frontend/oop'))
->add(new Zend_Acl_Resource('frontend/lunar'))
->add(new Zend_Acl_Resource('frontend/event'))
->add(new Zend_Acl_Resource('frontend/report_item'))
->add(new Zend_Acl_Resource('frontend/message_ajax'))
->add(new Zend_Acl_Resource('my404'))
->add(new Zend_Acl_Resource('backend/admin'))
->add(new Zend_Acl_Resource('backend/adv'))
->add(new Zend_Acl_Resource('backend/itemad'))
->add(new Zend_Acl_Resource('backend/itemad_reported'))
->add(new Zend_Acl_Resource('backend/itemad_blocked'))
->add(new Zend_Acl_Resource('backend/user'))
->add(new Zend_Acl_Resource('backend/message'))
->add(new Zend_Acl_Resource('backend/ajax'))
->add(new Zend_Acl_Resource('backend/domainlink'))
->add(new Zend_Acl_Resource('backend/cate'))
->add(new Zend_Acl_Resource('backend/city'))
->add(new Zend_Acl_Resource('backend/crawler'))
->add(new Zend_Acl_Resource('backend/autoget'))
->add(new Zend_Acl_Resource('backend/autopost'))
->add(new Zend_Acl_Resource('backend/email_invite'))
->add(new Zend_Acl_Resource('backend/email_invite_com'))
->add(new Zend_Acl_Resource('backend/keyword'))
->add(new Zend_Acl_Resource('backend/command'));
}
public function setAccess() {
// Liệt kê tất cả các quyền truy cập của GUEST allow($role , $controller:array, $action : array)
$this->acl->allow('guest', array( 'frontend/search',
'frontend/itemad',
'frontend/auth',
'frontend/ajax',
'frontend/upload',
'frontend/profile',
'frontend/message_ajax',
'frontend/vote',
'frontend/email',
'frontend/wave',
'frontend/router',
'frontend/payment',
'frontend/transaction',
'frontend/report',
'frontend/keyword',
'frontend/sitemap',
'frontend/rss',
'frontend/autosurf',
'frontend/testing',
'frontend/oop',
'frontend/lunar',
'frontend/event',
'frontend/report_item',
'my404'))
->allow('guest', 'frontend/post', array('index', 'detail', 'post_in_tag'))
# CẤU HÌNH CHUNG CHO CÁC NHÓM QUẢN TRỊ > không sử dụng cho một user đơn lẻ
->allow('editor', 'backend/admin', array('index', 'locked')) # Chỉ truy cập được vào 2 action này
->allow('mod', 'backend/admin', 'is_mod') # Truy cập thêm vào action is_mod
->allow('admin', 'backend/admin') # Truy cập được vào mọi action
# NHÓM QUẢN TRỊ TIN ĐĂNG
# Quyền truy cập danh sách, report item, kiểm tra tin trùng lặp. TODO : bỏ kiểm tra trùng lặp
->allow('itemad_editor', 'backend/itemad', array('index', 'listing'))
->allow('itemad_editor', 'backend/itemad_reported')
->allow('itemad_editor', 'backend/itemad_blocked')
# Như Editor + XÓA & Khôi phục một tin đăng
->allow('itemad_mod', 'backend/itemad')
# Như Mod + XÓA hoàn toàn dữ liệu một tin đăng, không thể phục hồi
->allow('itemad_admin', 'backend/itemad')
# NHÓM QUẢN TRỊ TIN VIP
# Thêm | sửa | cập nhật | thông báo một quảng cáo
->allow('itemvip_editor','backend/adv')
# Như Editor + Xóa hoàn tòan một quảng cáo
->allow('itemvip_mod', 'backend/adv')
->allow('itemvip_admin', 'backend/adv')
# NHÓM QUẢN TRỊ QUẢNG CÁO
# Thêm | sửa | cập nhật | thông báo một quảng cáo
->allow('adv_editor', 'backend/adv')
# Như Editor + Xóa hoàn tòan một quảng cáo
->allow('adv_mod', 'backend/adv')
->allow('adv_admin', 'backend/adv')
# NHÓM QUẢN TRỊ USER
# Quyền truy cập vào admin
->allow('user_editor', 'backend/adv')
->allow('user_mod', 'backend/adv')
->allow('user_admin', 'backend/adv')
# Siêu ADMIN
->allow('site_admin',null) # Quản trị chức năng toàn trang : ngoại trừ DATABASE
->allow('supper_admin', null); # Quản trị cả Database
}
}