Ich habe nur kurz eine Lösung gebaut, jedoch nicht Updatesicher.
Die Datei ModuleCatalogEdit.php modifizieren:
Der Code in Zeile 468 bis 483
PHP-Code:
// if no item, then check if add allowed and then show add form
if (!$objCatalog || $objCatalog->numRows < 1 )
{
$blnModeAdd = true;
// Load defaults.
$arrValues = array();
}
else
{
// check if editing of this record is disabled for frontend.
foreach ($this->catalog_edit as $key=>$field)
{
if(!$this->editRecordAllowed($field, $this->objDCEdit->activeRecord))
return;
}
}
muss ausgetauscht werden mit
PHP-Code:
// ########### Prüfen ob User in einer bestimmten Gruppe ist ##########################
$this->import('FrontendUser','user');
$user_id = $this->user->id;
$this->import('FrontendUser', 'Member');
$memberGroups = $this->Member->groups;
$pflichtgruppe = 21; // Mitglieder dieser Gruppe haben keine Befugnis
if (!in_array($pflichtgruppe, $memberGroups )){
$denied = true;
} else{
$denied = false;
}
// if no item, then check if add allowed and then show add form
if ($denied == true && (!$objCatalog || $objCatalog->numRows < 1))
{
return false;
}elseif (!$objCatalog || $objCatalog->numRows < 1 )
{
$blnModeAdd = true;
// Load defaults.
$arrValues = array();
}
else
{
// check if editing of this record is disabled for frontend.
foreach ($this->catalog_edit as $key=>$field)
{
if(!$this->editRecordAllowed($field, $this->objDCEdit->activeRecord))
return;
}
}
Wenn der User sich neu registriert kommt er in die Mitgliedergruppe "neuling" , bei mir die ID 21
der Variable Pflichtgruppe gebe ich jetzt die Mitgliedergruppen ID 21
Somit dürfen nur User in dieser Gruppe ein neues erstellen und kann keinen zweiten erstellen. Du musst natürlich dem jenigen die Gruppe wieder entziehen wenn er eins erstellt.
Sprich sobald er eines erstellt hat, ist er kein Neuling mehr und gehört nicht mehr zur Gruppe 21
Du muss nur noch eine Fehlermeldung generieren, ich muss jetzt leider echt weg.
Lesezeichen