本文整理汇总了PHP中UserDao::getGroups方法的典型用法代码示例。如果您正苦于以下问题:PHP UserDao::getGroups方法的具体用法?PHP UserDao::getGroups怎么用?PHP UserDao::getGroups使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserDao
的用法示例。
在下文中一共展示了UserDao::getGroups方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}