簡體   English   中英

JOOMLA 2.5檢查用戶是否屬於某個組

[英]JOOMLA 2.5 CHECK IF USER BELONGS TO A GROUP

我試圖使用此功能檢查用戶是否屬於稱為出納員的組。 我似乎無法正確處理

 function isMember($userid,$group){


$privGroups = array('Administrator', 'Super Users'); // Always return true for these

if(is_array($group))$mygroup = $group;
else $mygroup[0]=$group;
$j=0;
$n=count($mygroup);
for($i=count($mygroup); $i<($n+count($privGroups)); $i++) {
    $mygroup[$i] = $privGroups[$j];    //  Add "always" admins to argument admins
    $j++;
}

 //  DB access credentials: $db, $dbhost, $login, and $pw need to be defined here

$link = mysql_connect($this->DB_HOST, $this->DB_USER, $this->DB_PASS)

    or die("Could not connect : " . mysql_error());
mysql_select_db($this->DB_NAME) or die("Could not select database");

 // extract all groups user's a member of
$query = "Select q.title FROM (#__user_usergroup_map as p) 
    LEFT JOIN (#__usergroups as q)
    on p.group_id=q.id 
    WHERE p.user_id=$userid;";
// remove prefix etc.
$SQL = $this->cleanSQL($query); 
$res=mysql_query($SQL) or die('<p>Groups select query failed<br />' . mysql_error()  . "<br />$SQL</p>");
if (mysql_num_rows($res) == 0) {    //  No groups? Then user clearly isn't a mamber of "$group"
    if($termlink) mysql_close($link);
    return false;
}
while ($line = mysql_fetch_array($res, MYSQL_ASSOC)) {
    extract($line);
    $userGroups[]=$title;
}
mysql_close($link);   //  Close link
for($i=0; $i<count($userGroups); $i++){
    for($j=0; $j<count($mygroup); $j++) {
        if(strtolower($userGroups[$i])==strtolower($mygroup[$j])) return true;
    }
}
return false;

  }

這行不通; 它從某處失敗。 成員是否屬於給定組的成員,有沒有捷徑可走?

這有一個捷徑。

in_array($group_id, $user->getAuthorisedGroups() )

因此,您只需要知道您的組ID並擁有一個用戶對象即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM