Empfehlungen: Erweiterte Suche

Mailserver verwaltung mit cake

Fragen zur Konzeptionierung und womit man am besten anfäng? Hier rein...

Mailserver verwaltung mit cake

Beitragvon Darian » Mi 18. Aug 2010, 12:34

Hallo Leute,

habe gerade folgendes Problem:
Ich möchte gerne mit cakephp ein System programmieren um Mailboxen+Weiterleitungen für verschiedene Domains zu verwalten. Jetzt möchte ich User erstellen, die für verschiedene Domains wieder verschiedene Rechte haben.

1 User hat ist über eine Relationstabelle mit verschiedenen Rechten verknüpft. Diese Relationstabelle (sprich also das Recht zum User) ist über eine Relationstabelle mit den Domains verknüpft.

Da ich somit eine Relationstabelle über HABTM mit einer Domain verknüpfen sollte, und es die eine Relationstabelle ja gar nicht "offiziell" gibt, habe ich alles selbst ausgemodelt. (hoffe das kann man so überhaupt machen)

Ich möchte somit erreichen dass ein User bei einer Domain nur Aliases erstellen kann, aber bei der nächsten wieder richtige Mailboxen.

Kurze Erklärung zu den Tabellen:
virtual_user .... Mailboxen
virtual_aliases ... alle weiterleitungen
virtual_domains ... Domains für die der Mailserver (Postfix) zuständig ist.

(siehe Anhang database.jpg)

Habe jetzt schon herum probiert, und bin zu folgenden Models gekommen:
Code: Alles auswählen

class Domain extends AppModel
    {
        var $useTable = "virtual_domains";

        var $hasMany = array(
                "Alias" => array(
                    "className" => "Alias",
                    "foreignKey" => "domain_id"
            ),
               
                "VirtualUser" => array(
                    "className" => "VirtualUser",
                    "foreignKey" => "domain_id"
            ),
               
                "DomainPrivilegeUser" => array(
                    "className" => "DomainPrivilegeUser",
                    "foreignKey" => "domain_id"    
            )
        );
    }

class VirtualUser extends AppModel
    {

        var $useTable = "virtual_users";

        //Relation to the other Tables
        var $belongsTo = array (
                "Domain" => array(
                    "className" => "Domain",
                    "foreignKey" => "domain_id"
            )
        );


    }

class Alias extends AppModel
    {
       
        var $useTable = "virtual_aliases";
       
        var $belongsTo = array (
                "Domain" => array(
                    "className" => "Domain",
                    "foreignKey" => "domain_id"
            )
        );


    }

class DomainPrivilegeUser extends AppModel
    {
        var $useTable = "domains_privileges_users";

        var $belongsTo = array("Domain", "PrivilegeUser");
     
       
    }

class PrivilegeUser extends AppModel
    {

        var $useTable = "privilege_users";

        //Relation to the other Tables
        var $belongsTo = array (
                "User" => array (
                    "className" => "User",
                    "foreignKey" => "user_id"
            ),
                "Privilege" => array (
                    "className" => "Privilege",
                    "foreignKey" => "privilege_id"
            )
        );
       
        var $hasMany = array (
                "DomainPrivilegeUser" => array (
                    "className" => "DomainPrivilegeUser",
                    "foreignKey" => "user_privilege_id"
            )
       
        );
    }

class User extends AppModel
    {
        var $hasMany = "PrivilegeUser";  
    }

class Privilege extends AppModel
    {
        var $hasMany = "PrivilegeUser";
    }
 


Ich habe jetzt für jedes Model einen Controller mit scaffolding erstellt, um das ein wenig zu Testen.
Man kann grundsätzlich schon alles super bearbeiten ohne Fehler, aber welche aber beim Erstellen eines Users kann ich nicht gleich sagen welche Rechte er hat?

Macht diese Struktur allgemein Sinn, oder würdet ihr das anders machen?

Würde mich wirklich um ein paar Tips freuen. Und falls jemand experimentieren will, würde ich natürlich ein sql File zur Verfügung stellen.

thx und lg
Darian
Dateianhänge
database.jpg
Aktuelle Datenbankstruktur
database.jpg (39.56 KiB) 105-mal betrachtet
Darian
 
Beiträge: 6
Registriert: Mi 18. Aug 2010, 09:36

Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron