]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/t/lp1480432_test_func.permissions.usr_perms_depth_sort.pg
LP2045292 Color contrast for AngularJS patron bills
[working/Evergreen.git] / Open-ILS / src / sql / Pg / t / lp1480432_test_func.permissions.usr_perms_depth_sort.pg
1 BEGIN;
2
3 SELECT plan(3);
4
5 --------------------
6 --
7 -- Setup test environment and data
8 --
9 --------------------
10
11 -- create mock permission
12 INSERT INTO permission.perm_list (id, code, description)
13     VALUES (1999, 'ALTER_MATRIX_VIA_HACK','Allows a user to change something in the Matrix');
14
15 -- create mock profile group
16 INSERT INTO permission.grp_tree (id, name, parent, usergroup, perm_interval, description, application_perm, hold_priority)
17     VALUES (9999, 'Agent', 3, 't','3 years'::INTERVAL, 'Agent of the Matrix', 'group_application.user.staff.agent', 0);
18 -- create mock profile subgroup
19 INSERT INTO permission.grp_tree (id, name, parent, usergroup, perm_interval, description, application_perm, hold_priority)
20     VALUES (10000, 'Smith', 9999, 't','3 years'::INTERVAL, 'WannaCry of the Matrix', 'group_application.user.staff.smith', 0);
21 -- and another independent profile
22 INSERT INTO permission.grp_tree (id, name, parent, usergroup, perm_interval, description, application_perm, hold_priority)
23     VALUES (10001, 'Neo', 3, 't','3 years'::INTERVAL, 'Ye olde chosen one', 'group_application.user.staff.agent', 0);
24
25 -- Insert new permission-group map into grp_perm_map
26 INSERT INTO permission.grp_perm_map (id, grp, perm, depth, grantable) VALUES (887, 9999, 1999, 2, 't');
27 INSERT INTO permission.grp_perm_map (id, grp, perm, depth, grantable) VALUES (888, 10001,1999, 2, 't');
28
29 -- significance of the 889 ID is that it was added /after/ the rest
30 INSERT INTO permission.grp_perm_map (id, grp, perm, depth, grantable) VALUES (889, 10000,1999, 1, 't');
31
32 -- Create fake user
33 INSERT INTO actor.usr (id, profile, ident_type, usrname, home_ou, family_name, passwd, first_given_name, expire_date, dob, suffix)
34                VALUES (7357,10000, 1, 'TEST_USER', 1, 'FAMILYNAME', 'TEST1234', 'TEST',NOW() + '3 years'::INTERVAL, NULL, NULL);
35
36 Insert into actor.card (usr, barcode) VALUES (7357, 'sdvsdas456');
37
38 UPDATE actor.usr SET card = CURRVAL('actor.card_id_seq') WHERE id =7357;
39
40 --------------------
41 --
42 -- Test permission.usr_perms()
43 --
44 --------------------
45
46 SELECT results_eq(
47     'SELECT depth FROM permission.usr_perms(7357) where perm = 1999',
48     ARRAY[1],
49     'LP#1480432: permission.usr_perms(7357) should return depth 1 permission first'
50 );
51
52 DELETE FROM permission.grp_perm_map WHERE id = 887;
53 INSERT INTO permission.usr_perm_map (usr, perm, depth) VALUES (7357, 1999, 2);
54
55 SELECT results_eq(
56     'SELECT depth FROM permission.usr_perms(7357) where perm = 1999',
57     ARRAY[1],
58     'LP#1480432: permission.usr_perms(7357) should return depth 1 permission first'
59 );
60
61 DELETE FROM permission.usr_perm_map WHERE usr = 7357 AND perm = 1999;
62 INSERT INTO permission.usr_grp_map (usr, grp) VALUES (7357, 10001);
63
64 SELECT results_eq(
65     'SELECT depth FROM permission.usr_perms(7357) where perm = 1999',
66     ARRAY[1],
67     'LP#1480432: permission.usr_perms(7357) should return depth 1 permission first'
68 );
69
70 ROLLBACK;
71