Beiträge: 18
Themen: 6
Registriert seit: 20.10.2010
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?
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Nein, sobald eine Gruppe die nötigen Berechtigungen hat, wird das Forum sichtbar.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 18
Themen: 6
Registriert seit: 20.10.2010
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
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
Schau mal ob Du das mit diesem Plugin tegeln kannst.
http://mods.mybb.com/view/custom-user-permissions
Mit freundlichen Grüßen
MrBrechreiz
Beiträge: 18
Themen: 6
Registriert seit: 20.10.2010
das habe ich schon ausprobiert, cooles plugin, leider nur auf einzelne user und nicht auf gruppen
Beiträge: 18
Themen: 6
Registriert seit: 20.10.2010
ich finde leider auch nicht mal das query wo die gesetzen rechte aus der db ausgelesen werden, könnt ihr mir da helfen?
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
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 1, 2 und 3 nicht sehen dürfen...
</if>
Mit freundlichen Grüßen
MrBrechreiz
Beiträge: 18
Themen: 6
Registriert seit: 20.10.2010
mhh versteh ich wieder nicht, legt mybb für jedes forum dann ein template an? und wenn ja wo finde ich diese?
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
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
Beiträge: 18
Themen: 6
Registriert seit: 20.10.2010
07.05.2014, 12:12
(Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2014, 12:13 von richie1985.)
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 == 0 && !in_array(4, $groups)) //admin has view rights to all
{
$current_permissions["canview"] = 0; //Hack von Erik
}
return $current_permissions;
}