blob: 270a0c9a5a14026e106115930d0e3013a642bfbe [file] [log] [blame]
Chetan Gaonker7f4bf742016-05-04 15:56:08 -07001/*
2 * $Id: 37f42a0b13515b09f9c7792e8a64b2a3b187e7a3 $
3 *
4 * OPTIONAL Postgresql trigger for FreeRADIUS
5 *
6 * This trigger updates fills in the groupname field (which doesnt come in Accounting packets)
7 * by querying the radusergroup table.
8 * This makes it easier to do group summary reports, however note that it does add some extra
9 * database load to 50% of your SQL accounting queries. If you dont care about group summary
10 * reports then you dont need to install this.
11 *
12 */
13
14
15CREATE OR REPLACE FUNCTION upd_radgroups() RETURNS trigger AS'
16
17DECLARE
18 v_groupname varchar;
19
20BEGIN
21 SELECT INTO v_groupname GroupName FROM radusergroup WHERE CalledStationId = NEW.CalledStationId AND UserName = NEW.UserName;
22 IF FOUND THEN
23 UPDATE radacct SET GroupName = v_groupname WHERE RadAcctId = NEW.RadAcctId;
24 END IF;
25
26 RETURN NEW;
27END
28
29'LANGUAGE plpgsql;
30
31
32DROP TRIGGER upd_radgroups ON radacct;
33
34CREATE TRIGGER upd_radgroups AFTER INSERT ON radacct
35 FOR EACH ROW EXECUTE PROCEDURE upd_radgroups();
36
37