authen
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
fn_check_permission
Parameters
Name
Type
Mode
user_id
integer
IN
prop_id
integer
IN
code
character
IN
Definition
DECLARE v_group_id int; v_group_type char(1); v_result bool = false; BEGIN SELECT g.id, g.group_type FROM users u LEFT JOIN user_group g ON g.id = u.user_group_id WHERE u.id = $1 INTO v_group_id, v_group_type; IF (v_group_type = 'S') THEN v_result := EXISTS( SELECT * FROM user_property u WHERE u.prop_id = $2 and u.user_id = $1 ) AND EXISTS( SELECT * FROM group_permission g WHERE g.group_id = v_group_id and g.code = $3 ); ELSE v_result := EXISTS( SELECT * FROM user_permission u WHERE u.prop_id = $2 and u.user_id = $1 and u.code = $3 ); END IF; RETURN v_result; END;