From 0da8dd533e63ffc0495ed1254987a758894827ce Mon Sep 17 00:00:00 2001 From: miker Date: Thu, 7 Feb 2008 19:48:17 +0000 Subject: [PATCH] adding index for object perms, and re-tabbing a bit git-svn-id: svn://svn.open-ils.org/ILS/trunk@8690 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/sql/Pg/006.schema.permissions.sql | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Open-ILS/src/sql/Pg/006.schema.permissions.sql b/Open-ILS/src/sql/Pg/006.schema.permissions.sql index b8b42eb387..eb6d448df5 100644 --- a/Open-ILS/src/sql/Pg/006.schema.permissions.sql +++ b/Open-ILS/src/sql/Pg/006.schema.permissions.sql @@ -49,6 +49,8 @@ CREATE TABLE permission.usr_object_perm_map ( CONSTRAINT perm_usr_obj_once UNIQUE (usr,perm,object_type,object_id) ); +CREATE INDEX uopm_usr_idx ON permission.usr_object_perm_map (usr); + CREATE TABLE permission.usr_grp_map ( id SERIAL PRIMARY KEY, usr INT NOT NULL REFERENCES actor.usr (id) ON DELETE CASCADE, @@ -221,7 +223,7 @@ $$ LANGUAGE PLPGSQL; CREATE OR REPLACE FUNCTION permission.usr_has_object_perm ( iuser INT, tperm TEXT, obj_type TEXT, obj_id TEXT, target_ou INT ) RETURNS BOOL AS $$ DECLARE r_usr actor.usr%ROWTYPE; - res BOOL; + res BOOL; BEGIN SELECT * INTO r_usr FROM actor.usr WHERE id = iuser; @@ -234,17 +236,17 @@ BEGIN RETURN TRUE; END IF; - SELECT TRUE INTO res FROM permission.usr_object_perm_map WHERE usr = r_usr.id AND object_type = obj_type AND object_id = obj_id; + SELECT TRUE INTO res FROM permission.usr_object_perm_map WHERE usr = r_usr.id AND object_type = obj_type AND object_id = obj_id; - IF FOUND THEN - RETURN TRUE; - END IF; + IF FOUND THEN + RETURN TRUE; + END IF; - IF target_ou > -1 THEN - RETURN permission.usr_has_perm( iuser, tperm, target_ou); + IF target_ou > -1 THEN + RETURN permission.usr_has_perm( iuser, tperm, target_ou); END IF; - RETURN FALSE; + RETURN FALSE; END; $$ LANGUAGE PLPGSQL; -- 2.43.2