本文整理汇总了PHP中UserDao::isAdmin方法的典型用法代码示例。如果您正苦于以下问题:PHP UserDao::isAdmin方法的具体用法?PHP UserDao::isAdmin怎么用?PHP UserDao::isAdmin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserDao
的用法示例。
在下文中一共展示了UserDao::isAdmin方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: policyCheck
/**
* Check whether the given policy is valid for the given community and user.
*
* @param CommunityDao $communityDao community DAO
* @param null|UserDao $userDao user DAO
* @param int $policy policy
* @return bool true if the given policy is valid for the given community and user
* @throws Zend_Exception
*/
public function policyCheck($communityDao, $userDao = null, $policy = MIDAS_POLICY_READ)
{
if (!$communityDao instanceof CommunityDao || !is_numeric($policy)) {
throw new Zend_Exception('Error in param: communityDao should be a CommunityDao and policy should be numeric.');
}
if ($userDao == null) {
$userId = -1;
} elseif (!$userDao instanceof UserDao) {
throw new Zend_Exception('Should be an user.');
} else {
$userId = $userDao->getUserId();
if ($userDao->isAdmin()) {
return true;
}
}
$privacy = $communityDao->getPrivacy();
switch ($policy) {
case MIDAS_POLICY_READ:
if ($privacy != MIDAS_COMMUNITY_PRIVATE) {
return true;
} elseif ($userId == -1) {
return false;
} else {
$user_groups = $userDao->getGroups();
$member_group = $communityDao->getMemberGroup();
foreach ($user_groups as $group) {
if ($group->getKey() == $member_group->getKey()) {
return true;
}
}
$invitations = $userDao->getInvitations();
foreach ($invitations as $invitation) {
if ($invitation->getCommunityId() == $communityDao->getKey()) {
return true;
}
}
return false;
}
break;
case MIDAS_POLICY_WRITE:
if ($userId == -1) {
return false;
} else {
$user_groups = $userDao->getGroups();
$moderator_group = $communityDao->getModeratorGroup();
$admin_group = $communityDao->getAdminGroup();
foreach ($user_groups as $group) {
if ($group->getKey() == $moderator_group->getKey() || $group->getKey() == $admin_group->getKey()) {
return true;
}
}
return false;
}
break;
case MIDAS_POLICY_ADMIN:
if ($userId == -1) {
return false;
} else {
$user_groups = $userDao->getGroups();
$admin_group = $communityDao->getAdminGroup();
foreach ($user_groups as $group) {
if ($group->getKey() == $admin_group->getKey()) {
return true;
}
}
return false;
}
break;
default:
return false;
}
}
示例2: getCommunitiesFromSearch
/**
* Return a list of communities corresponding to the search.
*
* @param string $search
* @param UserDao $userDao
* @param int $limit
* @param bool $group
* @param string $order
* @return array
* @throws Zend_Exception
*/
public function getCommunitiesFromSearch($search, $userDao, $limit = 14, $group = true, $order = 'view')
{
if (Zend_Registry::get('configDatabase')->database->adapter == 'PDO_PGSQL') {
$group = false;
// PostgreSQL does not like the SQL request with group by
}
$communities = array();
if ($userDao == null) {
$userId = -1;
} elseif (!$userDao instanceof UserDao) {
throw new Zend_Exception('Should be an user.');
} else {
$userId = $userDao->getUserId();
$userGroups = $userDao->getGroups();
foreach ($userGroups as $userGroup) {
$communities[] = $userGroup->getCommunityId();
}
}
$sql = $this->database->select();
if ($group) {
$sql->from(array('c' => 'community'), array('community_id', 'name', 'count(*)'));
} else {
$sql->from(array('c' => 'community'));
}
if ($userId != -1 && $userDao->isAdmin()) {
$sql->where('c.name LIKE ?', '%' . $search . '%');
} elseif (!empty($communities)) {
$sql->where('c.name LIKE ?', '%' . $search . '%');
$sql->where('(c.privacy < ' . MIDAS_COMMUNITY_PRIVATE . ' OR ' . $this->database->getDB()->quoteInto('c.community_id IN (?)', $communities) . ')');
} else {
$sql->where('c.name LIKE ?', '%' . $search . '%');
$sql->where('(c.privacy < ' . MIDAS_COMMUNITY_PRIVATE . ')');
}
$sql->limit($limit);
if ($group) {
$sql->group('c.name');
}
switch ($order) {
case 'name':
$sql->order(array('c.name ASC'));
break;
case 'date':
$sql->order(array('c.creation ASC'));
break;
case 'view':
default:
$sql->order(array('c.view DESC'));
break;
}
$rowset = $this->database->fetchAll($sql);
$return = array();
foreach ($rowset as $row) {
$tmpDao = $this->initDao('Community', $row);
if (isset($row['count(*)'])) {
$tmpDao->count = $row['count(*)'];
}
$return[] = $tmpDao;
unset($tmpDao);
}
return $return;
}
示例3: getFeeds
/**
* Get feeds.
*
* @param UserDao $loggedUserDao
* @param null|UserDao $userDao
* @param null|CommunityDao $communityDao
* @param int $policy
* @param int $limit
* @return array
* @throws Zend_Exception
*/
protected function getFeeds($loggedUserDao, $userDao = null, $communityDao = null, $policy = 0, $limit = 20)
{
$isAdmin = false;
if ($loggedUserDao == null) {
$userId = -1;
} elseif (!$loggedUserDao instanceof UserDao) {
throw new Zend_Exception('Should be an user.');
} else {
$userId = $loggedUserDao->getUserId();
if ($loggedUserDao->isAdmin()) {
$isAdmin = true;
}
}
if ($userDao != null && !$userDao instanceof UserDao) {
throw new Zend_Exception('Should be an user.');
}
if ($communityDao != null && !$communityDao instanceof CommunityDao) {
throw new Zend_Exception('Should be a community.');
}
$sql = $this->database->select()->setIntegrityCheck(false)->from(array('f' => 'feed'))->limit($limit);
if (!$isAdmin) {
$sql->joinLeft(array('fpu' => 'feedpolicyuser'), '
f.feed_id = fpu.feed_id AND ' . $this->database->getDB()->quoteInto('fpu.policy >= ?', $policy) . '
AND ' . $this->database->getDB()->quoteInto('fpu.user_id = ? ', $userId) . ' ', array('userpolicy' => 'fpu.policy'))->joinLeft(array('fpg' => 'feedpolicygroup'), '
f.feed_id = fpg.feed_id AND ' . $this->database->getDB()->quoteInto('fpg.policy >= ?', $policy) . '
AND ( ' . $this->database->getDB()->quoteInto('fpg.group_id = ? ', MIDAS_GROUP_ANONYMOUS_KEY) . ' OR
fpg.group_id IN (' . new Zend_Db_Expr($this->database->select()->setIntegrityCheck(false)->from(array('u2g' => 'user2group'), array('group_id'))->where('u2g.user_id = ?', $userId)) . '))', array('grouppolicy' => 'fpg.policy'))->where('(
fpu.feed_id is not null or
fpg.feed_id is not null)');
}
if ($userDao != null) {
$sql->where('f.user_id = ? ', $userDao->getKey());
}
if ($communityDao != null) {
$sql->join(array('f2c' => 'feed2community'), $this->database->getDB()->quoteInto('f2c.community_id = ? ', $communityDao->getKey()) . ' AND f.feed_id = f2c.feed_id', array());
}
$sql->order(array('f.date DESC'));
$rowset = $this->database->fetchAll($sql);
$rowsetAnalysed = array();
foreach ($rowset as $row) {
if (isset($row['userpolicy']) && $row['userpolicy'] == null) {
$row['userpolicy'] = 0;
}
if (isset($row['grouppolicy']) && $row['grouppolicy'] == null) {
$row['grouppolicy'] = 0;
}
if (!isset($rowsetAnalysed[$row['feed_id']]) || $rowsetAnalysed[$row['feed_id']]->policy < $row['userpolicy'] && $rowsetAnalysed[$row['feed_id']]->policy < $row['grouppolicy']) {
$tmpDao = $this->initDao('Feed', $row);
if (isset($row['userpolicy']) && isset($row['grouppolicy']) && $row['userpolicy'] >= $row['grouppolicy']) {
$tmpDao->policy = $row['userpolicy'];
} elseif ($isAdmin) {
$tmpDao->policy = MIDAS_POLICY_ADMIN;
} else {
$tmpDao->policy = $row['grouppolicy'];
}
$rowsetAnalysed[$row['feed_id']] = $tmpDao;
unset($tmpDao);
}
}
$this->Component->Sortdao->field = 'date';
$this->Component->Sortdao->order = 'asc';
usort($rowsetAnalysed, array($this->Component->Sortdao, 'sortByDate'));
return $rowsetAnalysed;
}
示例4: policyCheck
/**
* Check if the policy is valid.
*
* @param ItemDao $itemdao
* @param null|UserDao $userDao
* @param int $policy
* @return bool
* @throws Zend_Exception
*/
public function policyCheck($itemdao, $userDao = null, $policy = 0)
{
if (!$itemdao instanceof ItemDao || !is_numeric($policy)) {
throw new Zend_Exception('Error in parameter itemdao or policy when checking Item policy.');
}
if ($userDao == null) {
$userId = -1;
} elseif (!$userDao instanceof UserDao) {
throw new Zend_Exception('Should be an user.');
} else {
$userId = $userDao->getUserId();
if ($userDao->isAdmin()) {
return true;
}
}
$subqueryUser = $this->database->select()->setIntegrityCheck(false)->from(array('p' => 'itempolicyuser'), array('item_id'))->where('policy >= ?', $policy)->where('p.item_id = ?', $itemdao->getKey())->where('user_id = ? ', $userId);
$subqueryGroup = $this->database->select()->setIntegrityCheck(false)->from(array('p' => 'itempolicygroup'), array('item_id'))->where('policy >= ?', $policy)->where('p.item_id = ?', $itemdao->getKey())->where('( ' . $this->database->getDB()->quoteInto('group_id = ? ', MIDAS_GROUP_ANONYMOUS_KEY) . ' OR
group_id IN (' . new Zend_Db_Expr($this->database->select()->setIntegrityCheck(false)->from(array('u2g' => 'user2group'), array('group_id'))->where('u2g.user_id = ?', $userId) . '))'));
$sql = $this->database->select()->union(array($subqueryUser, $subqueryGroup));
$row = $this->database->fetchRow($sql);
if ($row == null) {
return false;
}
return true;
}