Hallo, Gast! (Registrieren)

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


Benutzer, die gerade dieses Thema anschauen: 5 Gast/Gäste
[G] Probleme mit Sekundäre Benutzergruppe
#31
Der Fix aus dem 4. Beitrag dieses Themas sollte Abhilfe schaffen. Das System ist derzeit so aufgebaut, dass es keine Lösung dazu gibt. Der genannte Fix funktioniert zwar, kann aber zu Fehlern führen (du musst gucken ob bei dir damit alles wie gewünscht funktioniert).

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#32
Danke für Deine kompetente Antwort und dass Du Dich so sehr für MyBB einsetzt.

Wird das "Problem" in myBB 1.4 oder myBB 1.2.10 gelöst sein ?
Eigentlich finde ich nicht, dass es ein Problem ist. Denn das System haltet nur strikt die Berechtigungen ein. das habe ich meinem Team gesagt.


Es ist halt nur so, dass der Fix mit der jetzigen inc/functions.php aus myBB 1.2.9 von Grund auf verschieden ist.



Die original inc/functions.php aus myBB 1.2.9
PHP-Code:
/**
 * Fetches the permissions for a specific forum/group applying the inheritance scheme.
 * Called by forum_permissions()
 *
 * @param int The forum ID
 * @param string A comma separated list of usergroups
 * @param array Group permissions
 * @return array Permissions for this forum
*/
function fetch_forum_permissions($fid$gid$groupperms)
{
    global 
$groupscache$forum_cache$fpermcache$mybb$fpermfields;

    
$groups explode(","$gid);

    if(!
$fpermcache[$fid]) // This forum has no custom or inherited permisssions so lets just return the group permissions
    
{
        return 
$groupperms;
    }
    
    
$current_permissions = array();
    
    foreach(
$groups as $gid)
    {
        if(
$groupscache[$gid])
        {
            
// If this forum has permissions set
            
if($fpermcache[$fid][$gid])
            {
                
$level_permissions $fpermcache[$fid][$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(
count($current_permissions) == 0)
    {
        
$current_permissions $groupperms;
    }
    return 
$current_permissions;



Welche Änderungen aus dem Fix könnten relevant sein ?
MyBB ist die weltbeste Forensoftware u. 1000 mal besser als VB, WBB und phpBB !

Seit Sommer 2006 setze ich auf MyBB.
#33
Updatekritiker schrieb:@Hank:
Benutz du auch das "Additional Groups Images" Plugin ?

Nein, in der Richtung habe ich keine Plugins oder Veränderungen drin, das ist bei mir quasi original.
Ich habe den Workaround allerdings nun eingebaut, und soweit ich das überschauen kann, funktioniert alles wie gewünscht. Auch wenn ich das eher suboptimal finde, da ich nicht weiß, ob ich damit nicht doch eine Lücke geöffnet habe, zudem kein Support mehr für solche modifizierten Daten gegeben werden kann.

Nur zur Coppermine-Galerie wird das nicht übertragen, und die kann mit mehreren Benutzergruppen eigentlich umgehen. Meine PHP-Kenntnisse reichen allerdings noch lange nicht aus, um da an einer Lösung zu arbeiten.
[Bild: banner-hc-468x60-3.jpg]
#34
Habe mit meinem myBB 1.2.9 nun auch dieses Work Arround aus dem Beitrag Nr #4 durchgeführt
und es hat wunderbar geklappt.

Ich bin gespannt ob es in MyBB 1.2.10 bzw MyBB 1.4 gefixt ist.
Hiermit verbleibe ich mit freundlichen Grüßen

Alpay
MyBB ist die weltbeste Forensoftware u. 1000 mal besser als VB, WBB und phpBB !

Seit Sommer 2006 setze ich auf MyBB.
#35
Hallo zusammen,

ich stehe grade ebenfalls vor dem Problem dass sich die Optionen gegenseitig ausschließen. Die hier genannten Seiten sind allerdings nicht mehr erreichbar. Wie ist denn nun der aktuelle Stand?

Gruß,
NixxusMinimax
Gruß,
NixxusMinimax
#36
Noch mal zusammengefasst.

inc/functions.php

Suche:
Code:
/**
* Fetches the permissions for a specific forum/group applying the inheritance scheme.
* Called by forum_permissions()
*
* @param int The forum ID
* @param string A comma separated list of usergroups
* @param array Group permissions
* @return array Permissions for this forum
*/
function fetch_forum_permissions($fid, $gid, $groupperms)
{
    global $groupscache, $forum_cache, $fpermcache, $mybb, $fpermfields;

    $groups = explode(",", $gid);

    if(!$fpermcache[$fid]) // This forum has no custom or inherited permisssions so lets just return the group permissions
    {
        return $groupperms;
    }
    
    $current_permissions = array();
    
    foreach($groups as $gid)
    {
        if($groupscache[$gid])
        {
            // If this forum has permissions set
            if($fpermcache[$fid][$gid])
            {
                $level_permissions = $fpermcache[$fid][$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(count($current_permissions) == 0)
    {
        $current_permissions = $groupperms;
    }
    return $current_permissions;
}

Ersetzen mit:
Code:
//
// Perform inheritance scheme for forum permissions
//

// Assume "No, can't do it, unless otherwise specified"

function fetch_forum_permissions($fid, $gid, $groupperms)
{
    global $groupscache, $forumcache, $fpermcache, $mybb;

    $groups = explode(',', $gid);

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

    // Okay, we'll do it the hard way because this forum must have some custom or inherited permissions
    $forumpermissions = array('canview' => 'no', 'canviewthreads' => 'no', 'candlattachments' => 'no', 'canpostthreads' => 'no',
'canpostreplys' => 'no', 'canpostattachments' => 'no', 'candeletethreads' => 'no', 'canratethreads' => 'no',
'caneditposts' => 'no', 'candeleteposts' => 'no', 'cansearch' => 'no', 'caneditattachments' => 'no',
'canpostpolls' => 'no', 'canvotepolls' => 'no');

    foreach($groups as $gid)
    {

        if($gid && $groupscache[$gid])
        {
        $p = is_array($fpermcache[$fid][$gid]) ? $fpermcache[$fid][$gid] : $groupperms;

            if ($p == NULL)
            {
                foreach($forumpermissions as $k => $v)
                {
                $forumpermissions[$k] = 'yes'; // no inherited group, assume one has access
                }
            }
            else
            {
                foreach($p as $perm => $access)
                {
                    if (isset($forumpermissions[$perm]) && $access == 'yes')
                    {
                    $forumpermissions[$perm] = $access;
                    }
                }
            }
        }
    }
    return $forumpermissions;
}
#37
Ich danke dir.
Werds nachher testen.

Gruß,
NixxusMinimax
Gruß,
NixxusMinimax
#38
Ich wollte nur vermelden, in version 2.1.11 funktionieren die Benutzergruppen auch nicht korrekt.
Erst als ich den Patch installiert habe ging es.
danke, gruss lexx
#39
Wenn du die Berechtigungen pro Forum korrekt setzt, funktioniert das Ganze auch ohne Patch. Es ist nur mehr Arbeit.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#40
Michael schrieb:Wenn du die Berechtigungen pro Forum korrekt setzt, funktioniert das Ganze auch ohne Patch. Es ist nur mehr Arbeit.

Ich habe nun auch dieses dämliche Problem. Sad (Mit der neusten Version 1.2.11.)

Wie werden die Berechtigungen denn "pro Forum korrekt" gesetzt?

Folgendes Problem:
1. Normale Benutzer (Primär: Registered Members) können nur Forum A sehen.
2. Benutzer der Gruppe WTF sollen auch Forum B sehen können. Die Gruppe WTF hat auch die Zugangsberechtigungen zu Forum B. Benutzer, die in der Gruppe WTF sind, können das Forum B aber aufs Verrecken nicht sehen.

Ich kann das Problem nur lösen, indem ich die PRIMÄRE Benutzergruppe der Benutzer auf "WTF" setze.
Das kann jedoch nur ich, nicht der Gruppenleiter! Und ich habe weder Zeit noch Lust wegen einem groben und langjährigen Fehler des achso perfekten und gepriesenen MyBBs die primäre Benutzergruppe aller Benutzer manuell zu ändern.

Und auch wenn ich mehrjährige Erfahrungen in PHP-Programmierung (MySQL...) habe, es ist allein schon wegen des Zeitaufwands auch für mich eine Zumutung eine (fragwürdige, weil inoffizielle) Code-Änderung durchführen zu müssen, um einen Fehler zu beheben, der anscheinend schon seit mindestens 2 Jahren bekannt ist.

Danke im Voraus für die Hifestellungen. :/

MfG, bmaker