1: <?php
2: 3: 4: 5: 6: 7:
8:
9: namespace GLFramework\Model;
10:
11:
12: use GLFramework\Controller;
13: use GLFramework\Model;
14:
15: class UserPage extends Model
16: {
17: var $id;
18: var $id_user;
19: var $id_page;
20: var $allowed;
21:
22: protected $table_name = "user_page";
23: protected $definition = array(
24: 'index' => 'id',
25: 'fields' => array(
26: 'id_user' => "int(11)",
27: 'id_page' => "int(11)",
28: 'allowed' => "int(1)",
29: )
30: );
31:
32: public function exists()
33: {
34: if(!parent::exists())
35: {
36: return count($this->db->select("SELECT id FROM {$this->table_name} WHERE id_user = {$this->id_user} AND id_page = {$this->id_page}")) > 0;
37:
38: }
39: return true;
40: }
41:
42: 43: 44: 45: 46:
47: public function isAllowed($instance, $user)
48: {
49: if($user)
50: {
51: if(!is_string($instance))
52: {
53: if($instance->admin && $user->admin == false)
54: {
55: return false;
56: }
57: if($user->admin == 1)
58: {
59: return true;
60: }
61: }
62: $page = new Page();
63: $current = $page->get_by_controller($instance);
64: if($current && $current->count() > 0)
65: {
66: $result = $this->getByPageUser($user->id, $current->getModel()->id);
67: if($result->count() > 0)
68: {
69: return $result->getModel()->allowed;
70:
71: }
72: }
73: else
74: {
75: return false;
76: }
77: }
78:
79: return true;
80: }
81:
82: public function getByPageUser($id_user, $id_page)
83: {
84: return $this->get(array('id_user' => $id_user, 'id_page' => $id_page));
85: }
86:
87: public function getUserAllowed($controller)
88: {
89: $page = new Page();
90: $id = $page->get(array('controller' => $controller))->getModel()->id;
91: return $this->get(array('id_page' => $id));
92: }
93:
94:
95: }