Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Thread muss mindestens 2 oder mehr Berechtigungsgruppen haben.
#1
Hallo,

ich habe ein grosses Problem. Unsere Forum User sind in verschiedene primäre und ein oder mehrere Sekundäre Gruppen eingeteilt.

Nun gibt es spezielle Bereiche die nur unter bestimmten Bedingungen sichtbar sein sollen, Beispiel:

Max Musermann (Primärgruppe: Mitarbeiter, Sekundergruppen: Teamleiter, Supervsior)

Forum "Auswertung" darf jetzt nur für Mitarbeiter sichtbar sein, die diese drei Gruppen haben.

Ist das möglich?
#2
Nein, sobald eine Gruppe die nötigen Berechtigungen hat, wird das Forum sichtbar.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#3
und da gibt es keine möglichkeit (irgendwie plugin oder so) daran was zu ändern? ohne dieser funtion müsste ich wahnsinnig viele gruppen als gruppenkombination anlegen und kann kein mensch mehr pflegen Sad
#4
Schau mal ob Du das mit diesem Plugin tegeln kannst.

http://mods.mybb.com/view/custom-user-permissions
Mit freundlichen Grüßen

MrBrechreiz
#5
das habe ich schon ausprobiert, cooles plugin, leider nur auf einzelne user und nicht auf gruppen Sad
#6
ich finde leider auch nicht mal das query wo die gesetzen rechte aus der db ausgelesen werden, könnt ihr mir da helfen?
#7
Du könntest es mit doesem Plugin versuchen.

Und im entsprechendem Template eine <if></if> setzen mit den entsprechenden Usergruppen.

Siehe dieses Beispiel hier.

PHP-Code:
<if in_array($mybb->user['usergroup'], array(1,2,3)) then>
<else>
...
hier steht das template was die usergruppen 12 und 3 nicht sehen dürfen...
</if> 
Mit freundlichen Grüßen

MrBrechreiz
#8
mhh versteh ich wieder nicht, legt mybb für jedes forum dann ein template an? und wenn ja wo finde ich diese?
#9
Nein, tut es nicht. Daher muss der Code auch noch angepasst werden an deine Gruppen. Kann dir aber nicht 100%ig sagen ob es überhaupt mit sovielen Gruppen und Foren funktioniert.

Finden kannst Du das Template dazu im Forum Bit Templates -> forumbit_depth1_cat

Mit dem Script könnte man zumindest die primären Gruppen aufnehmen und für die sekondären Gruppen, die entsprechenden Forenrechte vergeben.
Mit freundlichen Grüßen

MrBrechreiz
#10
ich hab es hinbekommen:

hier die Änderungen an der Funktion "fetch_forum_permissions" in der Datei "functions_indicators.php":
PHP-Code:
function fetch_forum_permissions($fid$gid$groupperms)
{
    global 
$groupscache$forum_cache$fpermcache$mybb$fpermfields;

    
$groups explode(","$gid);

    if(empty(
$fpermcache[$fid])) // This forum has no custom or inherited permissions so lets just return the group permissions
    
{
        return 
$groupperms;
    }

    
$current_permissions = array();
    
$only_view_own_threads 1;
    
$erik_canview 1//Hack von Erik

    
foreach($groups as $gid)
    {
        if(
$groupscache[$gid])
        {
            
$level_permissions $fpermcache[$fid][$gid];
                    
            
// If our permissions arn't inherited we need to figure them out
            
if(empty($level_permissions))
            {
                
$parents explode(','$forum_cache[$fid]['parentlist']);
                
rsort($parents);
                
                if(!empty(
$parents))
                {
                    foreach(
$parents as $parent_id)
                    {
                        if(!empty(
$fpermcache[$parent_id][$gid]))
                        {
                            
$level_permissions $fpermcache[$parent_id][$gid];
                            break;
                        }
                    }

                    
// If we STILL don't have forum permissions we use the usergroup itself
                    
if(empty($level_permissions))
                    {
                        
$level_permissions $groupscache[$gid];
                    }
                }
            }
            
            foreach(
$level_permissions as $permission => $access)
            {
                
                if(
$access >= $current_permissions[$permission] || ($access == "yes" && $current_permissions[$permission] == "no") || !$current_permissions[$permission])
                {
                    
$current_permissions[$permission] = $access;
                }

            }
            
            if(
$level_permissions["canview"] && !$level_permissions["canonlyviewownthreads"])
            {
                
$only_view_own_threads 0;
            }
            
            if(
$level_permissions["canview"]==0)
            {
                
$erik_canview 0;  //Hack von Erik
            
}
        
        }
    }

    
// Figure out if we can view more than our own threads
    
if($only_view_own_threads == 0)
    {
        
$current_permissions["canonlyviewownthreads"] = 0;
    }

    if(
count($current_permissions) == 0)
    {
        
$current_permissions $groupperms;
    }
    
    if(
$erik_canview == && !in_array(4$groups)) //admin has view rights to all
    
{
        
$current_permissions["canview"] = 0;  //Hack von Erik
    
}

    return 
$current_permissions;