Cheetah
ChWsbPrivacy.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbPrivacyQuery');
9 
10 define('CH_WSB_PG_DEFAULT', '1');
11 define('CH_WSB_PG_NOBODY', '2');
12 define('CH_WSB_PG_ALL', '3');
13 define('CH_WSB_PG_MEMBERS', '4');
14 define('CH_WSB_PG_FRIENDS', '5');
15 define('CH_WSB_PG_FAVES', '6');
16 define('CH_WSB_PG_CONTACTS', '7');
17 define('CH_WSB_PG_HIDDEN', '8');
18 
60 {
61  var $_oDb;
62 
66  function __construct($sTable = '', $sFieldId = '', $sFieldOwnerId = '')
67  {
68  $this->_oDb = new ChWsbPrivacyQuery($sTable, $sFieldId, $sFieldOwnerId);
69  }
70 
81  function getGroupChooser($iOwnerId, $sModuleUri, $sActionName, $aDynamicGroups = array(), $sTitle = "")
82  {
83  if(empty($sActionName))
84  return array();
85 
86  $sValue = $this->_oDb->getDefaultValue($iOwnerId, $sModuleUri, $sActionName);
87 
88  if(empty($sValue))
89  $sValue = $this->_oDb->getDefaultValueModule($sModuleUri, $sActionName);
90 
91  $aValues = array();
92  $aGroups = $this->_oDb->getGroupsBy(array('type' => 'owner', 'owner_id' => $iOwnerId, 'full' => true));
93  foreach($aGroups as $aGroup) {
94  if((int)$aGroup['owner_id'] == 0 && $this->_oDb->getParam('sys_ps_enabled_group_' . $aGroup['id']) != 'on')
95  continue;
96 
97  $aValues[] = array('key' => $aGroup['id'], 'value' => ((int)$aGroup['owner_id'] == 0 ? _t('_ps_group_' . $aGroup['id'] . '_title') : $aGroup['title']));
98  }
99  $aValues = array_merge($aValues, $aDynamicGroups);
100 
101  $sName = $this->getFieldAction($sActionName);
102  $sCaption = $this->_oDb->getFieldActionTitle($sModuleUri, $sActionName);
103  return array(
104  'type' => 'select',
105  'name' => $sName,
106  'caption' => (!empty($sTitle) ? $sTitle : _t(!empty($sCaption) ? $sCaption : '_' . $sName)),
107  'value' => $sValue,
108  'values' => $aValues,
109  'checker' => array(
110  'func' => 'avail',
111  'error' => _t('_ps_ferr_incorrect_select')
112  ),
113  'db' => array(
114  'pass' => 'Int'
115  )
116  );
117  }
118 
127  function check($sAction, $iObjectId, $iViewerId = 0)
128  {
129  if(empty($iViewerId))
130  $iViewerId = getLoggedId();
131 
132  $aObject = $this->_oDb->getObjectInfo($this->getFieldAction($sAction), $iObjectId);
133  if(empty($aObject) || !is_array($aObject))
134  return false;
135 
136  if($aObject['group_id'] == CH_WSB_PG_HIDDEN)
137  return false;
138 
139  if(isAdmin() || $iViewerId == $aObject['owner_id'])
140  return true;
141 
142  if($this->_oDb->isGroupMember($aObject['group_id'], $aObject['owner_id'], $iViewerId))
143  return true;
144 
145  return $this->isDynamicGroupMember($aObject['group_id'], $aObject['owner_id'], $iViewerId, $iObjectId);
146  }
147 
155  {
156  return 'allow_' . strtolower(str_replace(' ', '-', $sAction)) . '_to';
157  }
158 
167  function isDynamicGroupMember($mixedGroupId, $iObjectOwnerId, $iViewerId, $iObjectId)
168  {
169  return false;
170  }
171 
176  public static function isPrivacyPage()
177  {
178  return getParam('sys_ps_enable_create_group') == 'on' || getParam('sys_ps_enable_default_values') == 'on' || getParam('sys_ps_enabled_group_1') == 'on';
179  }
180 }
ChWsbPrivacy\__construct
__construct($sTable='', $sFieldId='', $sFieldOwnerId='')
Definition: ChWsbPrivacy.php:66
ChWsbPrivacy\check
check($sAction, $iObjectId, $iViewerId=0)
Definition: ChWsbPrivacy.php:127
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
ChWsbPrivacyQuery
Definition: ChWsbPrivacyQuery.php:11
php
CH_WSB_PG_HIDDEN
const CH_WSB_PG_HIDDEN
Definition: ChWsbPrivacy.php:17
ChWsbPrivacy\isPrivacyPage
static isPrivacyPage()
Definition: ChWsbPrivacy.php:176
isAdmin
isAdmin()
Definition: index.php:649
getParam
getParam($sParamName, $bUseCache=true)
Definition: db.inc.php:130
getLoggedId
getLoggedId()
Definition: profiles.inc.php:32
$sTitle
$sTitle
Definition: actions.inc.php:13
ChWsbPrivacy\getFieldAction
getFieldAction($sAction)
Definition: ChWsbPrivacy.php:154
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
ChWsbPrivacy\$_oDb
$_oDb
Definition: ChWsbPrivacy.php:61
$sCaption
$sCaption
Definition: tellfriend.php:39
ChWsbPrivacy\isDynamicGroupMember
isDynamicGroupMember($mixedGroupId, $iObjectOwnerId, $iViewerId, $iObjectId)
Definition: ChWsbPrivacy.php:167
ChWsbPrivacy
Definition: ChWsbPrivacy.php:60
$sAction
$sAction
Definition: categories.php:274
ChWsbPrivacy\getGroupChooser
getGroupChooser($iOwnerId, $sModuleUri, $sActionName, $aDynamicGroups=array(), $sTitle="")
Definition: ChWsbPrivacy.php:81
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
$sName
$sName
Definition: ChWsbAdminTools.php:853