Seite 1 von 1
Profile nur innerhalb der eigenen Gruppe einsehbar.
Verfasst: 23.01.2007 21:21
von zebath
Hallo!
Wie kriege ich es hin, dass Profile nur innerhalb der eigenen Gruppe einsehbar sind?
Bin für jeden Hinweis dankbar!
Verfasst: 05.02.2007 11:46
von zebath
ok, dann halt nich...
Verfasst: 05.02.2007 11:54
von Leuchte
Wenn Du noch möchtest, kann ich heut Abend etwas Code ausbrüten
Verfasst: 05.02.2007 16:15
von zebath
hey, das wär echt super!
will hier nicht nach code betteln, aber bin halt kein programmier-gott.
Verfasst: 05.02.2007 22:22
von Leuchte
Wie versprochen
language/lang_german/lang_main.php - Finde
Füge davor ein
Code: Alles auswählen
$lang['Profile_not_in_group'] = 'Du bist nicht in der Gruppe des Benutzers und kannst dieses Profil nicht ansehen';
includes/usercp_viewprofile.php - Finde
Code: Alles auswählen
message_die(GENERAL_MESSAGE, $lang['No_user_id_specified']);
}
Füge danach ein
Code: Alles auswählen
if($userdata['session_logged_in'])
{
function member_of($group_id) // by saerdnaer
{
global $db;
$profile = get_userdata($_GET[POST_USERS_URL]);
$sql = "SELECT count(*) AS num
FROM " . USER_GROUP_TABLE . "
WHERE user_id = '" . $profile['user_id'] . "'
AND user_pending = '0'
AND group_id IN ( " . $group_id . " )";
if(!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not get group auth', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
if($row['num'] > 0)
{
return $profile['user_member_of_' . $group_id] = true;
}
return $profile['user_member_of_' . $group_id] = false;
}
$sql = "SELECT group_id
FROM " . USER_GROUP_TABLE . "
WHERE user_id = '". $userdata['user_id'] ."'
AND user_pending = '0'";
if(!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not get group ids', '', __LINE__, __FILE__, $sql);
}
$ingroup = "";
while($row = $db->sql_fetchrow($result))
{
if(member_of($row['group_id']))
{
$ingroup .= 1;
}
else
{
$ingroup .= 0;
}
}
if($ingroup == 0)
{
message_die(GENERAL_MESSAGE, $lang['Profile_not_in_group']);
}
}
Somit ist das Profile für alle Tabu, die nicht in der Gruppe des Besitzers sind. Sollen Admins immer zugriff haben muss in der ersten Zeile der Änderung
durch
Code: Alles auswählen
if($userdata['session_logged_in'] && $userdata['user_level'] != ADMIN)
ausgetauscht werden
Verfasst: 07.02.2007 08:22
von zebath
vielen dank!