✏️ 正在编辑: Permissao.php
路径:
/srv/systems_dir/yuppiecred/application/models/Permissao.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_Permissao { private $_id; private $_resource_id; private $_grupo_id; private $_allow; public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; } public function getResourceId() { return $this->_resource_id; } public function setResourceId($resourceId) { $this->_resource_id = $resourceId; } public function getGrupoId() { return $this->_grupo_id; } public function setGrupoId($grupoId) { $this->_grupo_id = $grupoId; } public function getAllow() { return $this->_allow; } public function setAllow($bool) { $this->_allow = intval((bool) $bool); } public function __construct($options = null) { if( is_array($options) ){ $this->setOptions($options); } } public function setOptions(array $options) { $methods = get_class_methods($this); foreach ( $options as $key => $value ) { $explode = explode("_", $key); $methodName = ''; foreach ( $explode as $v ) { $methodName .= ucfirst($v); } $key = $methodName != '' ? $methodName : $key; $method = 'set' . ucfirst($key); if( in_array($method, $methods) ){ $this->$method($value); } } return $this; } public function _toArray() { $dbtable = new Model_DbTable_Permissao(); $info = $dbtable->info(); $methods = get_class_methods($this); $data = array( ); foreach ( $info['cols'] as $key ) { $col = $key; $explode = explode("_", $key); $methodName = ''; foreach ( $explode as $v ) { $methodName .= ucfirst($v); } $key = $methodName != '' ? $methodName : $key; $method = 'get' . ucfirst($key); if( in_array($method, $methods) ){ $data[$col] = $this->$method(); } } return $data; } /** * Insere ou altera o registro passado por parâmetro * @param Model_Permissao $permissao */ public function salvar(Model_Permissao $permissao) { $dbtable = new Model_DbTable_Permissao(); if( $permissao->getId() > 0 ){ $dbtable->update(array('allow' => $permissao->getAllow()), 'grupo_id = ' . $permissao->getGrupoId() . ' AND resource_id = ' . $permissao->getResourceId()); return $permissao->getId(); } else { return $dbtable->insert($permissao->_toArray()); } } /** * Exclui o registro passado por parâmetro * @param int $id * @return int The number of rows deleted */ public function excluir($id) { if( $id > 0 ){ $dbtable = new Model_DbTable_Permissao(); return $dbtable->delete('id = ' . $id); } return null; } /** * @param string $where * @param string $order * @param int $count * @param int $offset * @return array */ public function listar( $fields = null, $order = null, bool $excluido = true ) { $params = []; $where = null; if (isset($fields['resource_id']) && !empty($fields['resource_id'])) { $params[] = "resource_id = {$fields['resource_id']}"; } if (isset($fields['grupo_id']) && !empty($fields['grupo_id'])) { $params[] = "grupo_id = {$fields['grupo_id']}"; } if (count($params) > 0) { $where = implode(' AND ', $params); } if ($excluido) { return (new Model_DbTable_Permissao())->fetchAll($where, $order); } return (new Model_DbTable_Permissao())->fetchAllDirect($where, $order); } /** * @param int|null $grupoId * @param bool $excluido */ public function getTree(int $grupoId = null, bool $excluido = true) { $fields = []; $tree = []; if ($grupoId) { $fields['grupo_id'] = $grupoId; } $lista = $this->listar($fields, null, $excluido); foreach ($lista as $permissao) { $tree[$permissao['grupo_id']][$permissao['resource_id']] = $permissao['allow']; } return $tree; } /** * Retorna um fetchRow do item passado por parâmetro * @param int $id * @return Zend_Db_Table_Row_Abstract | null */ public function exibir($id) { $dbtable = new Model_DbTable_Permissao(); return $dbtable->fetchRow('id = ' . $id); } }
💾 保存文件
← 返回文件管理器