Hallo Leute,
habe gerade folgendes Problem:
Ich will mit cakephp ein System programmieren um Mailboxen+Weiterleitungen für verschiedene Domains zu verwalten. Jetzt will ich User erstellen, die für verschiedene Domains wieder verschiedene Rechte haben.
4 Tabellen:
- users
- domains
- privileges (mögliche rechte wie, er darf alias erstellen, er darf Mailboxen erstellen/verwalten)
Relation-Table:
users_privileges_domains: id, users_id, privileges_id, domains_id
Jetzt verknüpfe ich ja mit einer Tabelle 3 andere.
zum Beispiel.: Der User "Test" hat das Recht Mailboxen zu erstellen bei der Domain example.com
Denkt ihr das könnte so gehen, oder müsste ich statt einer Relation-Table zwei nehmen?
Das Model für die Domains würde dann wie folgt aussehen:
Für User und Privileges wäre das ungefähr das selbe, nur mit jeweils den anderen Tabellen verknüpft.
Also, wie würdet ihr das machen, oder würdet ihr allgemein anders an das Problem ran gehen?
ciao und lg
Darian
habe gerade folgendes Problem:
Ich will mit cakephp ein System programmieren um Mailboxen+Weiterleitungen für verschiedene Domains zu verwalten. Jetzt will ich User erstellen, die für verschiedene Domains wieder verschiedene Rechte haben.
4 Tabellen:
- users
- domains
- privileges (mögliche rechte wie, er darf alias erstellen, er darf Mailboxen erstellen/verwalten)
Relation-Table:
users_privileges_domains: id, users_id, privileges_id, domains_id
Jetzt verknüpfe ich ja mit einer Tabelle 3 andere.
zum Beispiel.: Der User "Test" hat das Recht Mailboxen zu erstellen bei der Domain example.com
Denkt ihr das könnte so gehen, oder müsste ich statt einer Relation-Table zwei nehmen?
Das Model für die Domains würde dann wie folgt aussehen:
PHP:
class Domain extends AppModel
{
var $useTable = "virtual_domains";
var $hasAndBelongsToMany = array(
"User" => array(
"className" => "User",
"joinTable" => "users_privileges_domains",
"foreignKey" => "domain_id",
"associationForeignKey" => "user_id"
),
"Privilege" => array(
"className" => "Privilege",
"joinTable" => "users_privileges_domains",
"foreignKey" => "domain_id",
"associationForeignKey" => "privilege_id"
)
);
var $hasMany = array("Alias", "VirtualUser");
}
Für User und Privileges wäre das ungefähr das selbe, nur mit jeweils den anderen Tabellen verknüpft.
Also, wie würdet ihr das machen, oder würdet ihr allgemein anders an das Problem ran gehen?
ciao und lg
Darian