import Net::Whois::Raw into install/5.005 directory *sigh*
[freeside.git] / rt / docs / design_docs / groups_notes
1 CREATE TABLE Prinicpals (
2         id int auto_increment 
3         PrincipalType VARCHAR(16) not_null,
4         PrincipalId int # foreign key to Users or Groups, depending
5 )
6
7 CREATE TABLE Groups (
8         id int auto_increment,
9         Domain varchar(255), 
10         Instance varchar(16),
11         Name varchar(255),
12         Description varchar(255),
13 );
14 CREATE TABLE ACL (
15   id INTEGER NOT NULL  AUTO_INCREMENT,
16   Principal integer NULL  , #Foreign key to principals
17   RightName varchar(25) NULL  ,
18   RightDomain varchar(25) NULL  ,
19   RightInstance integer NULL  ,
20   PRIMARY KEY (id)
21 );      
22
23 CREATE TABLE GroupMembers (
24         id int auto_increment,
25         Group int, # foreign key to Principals
26         Member int # foreign key to Principals
27 )
28
29 create table GroupMembersCache (
30         id int auto_increment,
31         Group int, # foreign key to Principals
32         Member int, # foreign key to Principals
33         Via int, #foreign key to g_m_u
34 )
35
36 insert into principals values ('bubbles);
37 insert into principals values ('fubar');
38 insert into principals values ('sheeri');
39 insert into principals values ('sgw');
40
41 insert into principals values ('staff');
42 insert into principals values ('sysadmin');
43 insert into principals values ('senior admin');
44
45
46 insert into group_members values(1, 'staff', 'bubbles');
47 insert into group_members values(2, 'sysadmin', 'sheeri');
48 insert into group_members values(3,'senior admin', 'sgw');
49 insert into group_members values(4,'senior admin', 'fubar');
50 insert into group_members values(5, 'sysadmin', 'senior admin')
51         
52 Groups
53
54
55       
56 Domain          Queues
57 Instance        <queueid#>
58 Name            AdminCc, Cc
59
60 /Queues/1/AdminCc
61 /Queues/3/Cc
62
63 Domain          Tickets
64 Instance        <#n>
65 Name            Owner, Requestor, Cc, AdminCc
66
67 /Tickets/1/Owner
68 /Tickets/1/Requestor
69 /Tickets/1/Cc
70        Has members: /Queues/whatever queue the ticket has/Cc 
71 /Tickets/1/AdminCc
72        Has members: /Queues/whatever queue the ticket has/AdminCc 
73
74
75 Domain          Users
76 Instance        <userid>
77
78 /Users/1/MyDelegates
79 /Users/1/MyOtherDelegates
80
81
82 Domain          System
83 Name            Admins, AdminManagers
84
85 /System/Administrators
86 /System/Blah
87
88