All Data Structures Functions Variables Pages
Right.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
37  class Right extends OwnedModel
38  {
39  const NONE = 0x0;
40  const ALLOW = 0x1;
41  const DENY = 0x2;
42 
49  public static function getByModuleNameAndRightName($moduleName, $rightName)
50  {
51  assert('is_string($moduleName)');
52  assert('is_string($rightName)');
53  assert('$moduleName != ""');
54  assert('$rightName != ""');
55  $bean = ZurmoRedBean::findOne('_right', "modulename = '$moduleName' and name = '$rightName'");
56  assert('$bean === false || $bean instanceof RedBean_OODBBean');
57  if ($bean === false)
58  {
59  throw new NotFoundException();
60  }
61  return self::makeModel($bean);
62  }
63 
64  public static function removeAllForPermitable(Permitable $permitable)
65  {
66  ZurmoRedBean::exec("delete from _right where permitable_id = :id;",
67  array('id' => $permitable->getClassId('Permitable')));
68  }
69 
70  public static function rightToString($right)
71  {
72  switch ($right)
73  {
74  case self::NONE:
75  return Zurmo::t('Core', '(None)');
76 
77  case self::ALLOW:
78  return Zurmo::t('ZurmoModule', 'Allow');
79 
80  case self::DENY:
81  return Zurmo::t('ZurmoModule', 'Deny');
82 
83  default:
84  return '???';
85  }
86  }
87 
88  public function __toString()
89  {
90  $s = self::rightToString($this->type);
91  $s .= ':';
92  $s .= $this->name;
93  return $s;
94  }
95 
96  public static function mangleTableName()
97  {
98  return true;
99  }
100 
101  public static function getDefaultMetadata()
102  {
103  $metadata = parent::getDefaultMetadata();
104  $metadata[__CLASS__] = array(
105  'members' => array(
106  'moduleName',
107  'name',
108  'type',
109  ),
110  'relations' => array(
111  'permitable' => array(static::HAS_MANY_BELONGS_TO, 'Permitable'),
112  ),
113  'rules' => array(
114  array('moduleName', 'required'),
115  array('moduleName', 'type', 'type' => 'string'),
116  array('moduleName', 'length', 'min' => 1, 'max' => 64),
117  array('name', 'required'),
118  array('name', 'type', 'type' => 'string'),
119  array('name', 'length', 'min' => 1, 'max' => 64),
120  array('type', 'required'),
121  array('type', 'type', 'type' => 'integer'),
122  array('type', 'numerical', 'min' => 0, 'max' => 2),
123  ),
124  );
125  return $metadata;
126  }
127 
128  public static function isTypeDeletable()
129  {
130  return true;
131  }
132  }
133 ?>
getClassId($modelClassName)
static getByModuleNameAndRightName($moduleName, $rightName)
Definition: Right.php:49
Definition: Right.php:37
Generated on Tue Feb 25 2020 07:10:37