]> git.sur5r.net Git - bacula/bacula/blob - gui/bweb/script/bweb-mysql.sql
ebl Add roles
[bacula/bacula] / gui / bweb / script / bweb-mysql.sql
1 CREATE TABLE bweb_user
2 (
3         userid       serial not null,
4         username     text not null,
5         use_acl      boolean default false,
6         enabled      boolean default true,
7         comment      text default '',
8         passwd       text default '',
9         primary key (userid)
10 );
11 CREATE UNIQUE INDEX bweb_user_idx on bweb_user (username(255));
12
13 CREATE TABLE bweb_role
14 (
15         roleid       serial not null,
16         rolename     text not null,
17 --      comment      text default '',
18         primary key (roleid)
19 );
20 CREATE UNIQUE INDEX bweb_role_idx on bweb_role (rolename(255));
21 INSERT INTO bweb_role (rolename) VALUES ('r_user_mgnt');
22 INSERT INTO bweb_role (rolename) VALUES ('r_group_mgnt');
23 INSERT INTO bweb_role (rolename) VALUES ('r_configure');
24
25 INSERT INTO bweb_role (rolename) VALUES ('r_autochanger_mgnt');
26 INSERT INTO bweb_role (rolename) VALUES ('r_location_mgnt');
27 INSERT INTO bweb_role (rolename) VALUES ('r_delete_job');
28 INSERT INTO bweb_role (rolename) VALUES ('r_prune');
29 INSERT INTO bweb_role (rolename) VALUES ('r_purge');
30
31 INSERT INTO bweb_role (rolename) VALUES ('r_view_job');
32 INSERT INTO bweb_role (rolename) VALUES ('r_view_stat');
33
34 INSERT INTO bweb_role (rolename) VALUES ('r_run_job');
35 INSERT INTO bweb_role (rolename) VALUES ('r_cancel_job');
36 INSERT INTO bweb_role (rolename) VALUES ('r_client_status');
37
38 CREATE TABLE  bweb_role_member
39 (
40         roleid       integer not null,
41         userid       integer not null,
42         primary key (roleid, userid)
43 );
44
45 CREATE TABLE  bweb_client_group_acl
46 (
47         client_group_id       integer not null,
48         userid                integer not null,
49         primary key (client_group_id, userid)
50 );
51
52
53 -- Manage Client groups in bweb
54 -- Works with postgresql and mysql5 
55
56 CREATE TABLE client_group
57 (
58     client_group_id             serial    not null,
59     client_group_name           text      not null,
60     primary key (client_group_id)
61 );
62
63 CREATE UNIQUE INDEX client_group_idx on client_group (client_group_name(255));
64
65 CREATE TABLE client_group_member
66 (
67     client_group_id                 integer       not null,
68     clientid          integer     not null,
69     primary key (client_group_id, clientid)
70 );
71
72 CREATE INDEX client_group_member_idx on client_group_member (client_group_id);
73
74
75 --   -- creer un nouveau group
76 --   
77 --   INSERT INTO client_group (client_group_name) VALUES ('SIGMA');
78 --   
79 --   -- affecter une machine a un group
80 --   
81 --   INSERT INTO client_group_member (client_group_id, clientid) 
82 --          (SELECT client_group_id, 
83 --                 (SELECT Clientid FROM Client WHERE Name = 'slps0003-fd')
84 --             FROM client_group 
85 --            WHERE client_group_name IN ('SIGMA', 'EXPLOITATION', 'MUTUALISE'));
86 --        
87 --   
88 --   -- modifier l'affectation d'une machine
89 --   
90 --   DELETE FROM client_group_member 
91 --         WHERE clientid = (SELECT ClientId FROM Client WHERE Name = 'slps0003-fd')
92 --   
93 --   -- supprimer un groupe
94 --   
95 --   DELETE FROM client_group_member 
96 --         WHERE client_group_id = (SELECT client_group_id FROM client_group WHERE client_group_name = 'EXPLOIT')
97 --   
98 --   
99 --   -- afficher tous les clients du group SIGMA
100 --   
101 --   SELECT Name FROM Client JOIN client_group_member using (clientid) 
102 --                           JOIN client_group using (client_group_id)
103 --    WHERE client_group_name = 'SIGMA';
104 --   
105 --   -- afficher tous les groups
106 --   
107 --   SELECT client_group_name FROM client_group ORDER BY client_group_name;
108 --   
109 --   -- afficher tous les job du group SIGMA hier
110 --   
111 --   SELECT JobId, Job.Name, Client.Name, JobStatus, JobErrors
112 --     FROM Job JOIN Client              USING(ClientId) 
113 --              JOIN client_group_member USING (ClientId)
114 --              JOIN client_group        USING (client_group_id)
115 --     WHERE client_group_name = 'SIGMA'
116 --       AND Job.StartTime > '2007-03-20'; 
117 --   
118 --   -- donne des stats
119 --   
120 --   SELECT count(1) AS nb, sum(JobFiles) AS files,
121 --          sum(JobBytes) AS size, sum(JobErrors) AS joberrors,
122 --          JobStatus AS jobstatus, client_group_name
123 --     FROM Job JOIN Client              USING(ClientId) 
124 --              JOIN client_group_member USING (ClientId)
125 --              JOIN client_group        USING (client_group_id)
126 --     WHERE Job.StartTime > '2007-03-20'
127 --     GROUP BY JobStatus, client_group_name
128 --   
129 --