#-------------------------------------------------------------------------------
# setup part
#-------------------------------------------------------------------------------
+my @perms = sort { $a->code cmp $b->code } permission::perm_list->retrieve_all;
-my %org_cols = ( qw/id GroupID name Name parent ParentGroup description Description/ );
+my %org_cols = ( qw/id GroupID name Name parent ParentGroup description Description application_perm ApplicationPermission/ );
-my @col_display_order = ( qw/id name parent description/ );
+my @col_display_order = ( qw/id name parent description application_perm/ );
if (my $action = $cgi->param('action')) {
if ( $action eq 'Update' ) {
} elsif ( $action eq 'Set Permissions' ) {
my $grp = permission::grp_tree->retrieve($cgi->param('perms'));
my @ids = $cgi->param('permission');
- for my $perm ( permission::perm_list->retrieve_all ) {
+ for my $perm ( @perms ) {
if (my $id = $cgi->param('permission_'.$perm->id) ) {
my $p = permission::grp_perm_map->search({perm=>$id,grp=>$grp->id})->next;
my $d = $cgi->param("depth_$id");
th($org_cols{description}),
td("<input type='text' name='description_$node' value=\"". $node->description() ."\">"),
);
+ print Tr(
+ th($org_cols{application_perm}),
+ "<td>".do {
+ my $out = '<select name="application_perm_'.$node.'"><option value="">-- Select One --</option>';
+ $out .= '<option'.do{
+ " selected='selected'" if ($_->code eq $node->application_perm);
+ }.'>'. $_->code .'</option>' for ( sort {$a->code cmp $b->code} @perms );
+ $out .= '</select>';
+ $out;
+ }."</td>"
+ );
print Tr( "<td colspan='2'><input type='submit' name='action' value='Update'/></td>" );
"<table class='table_class'>\n".
"<tr class='header_class'><th>Permission</th><th>Select</th><th>At Depth</th><th>Grantable</th></tr>";
- for my $perm ( sort {$a->code cmp $b->code} permission::perm_list->retrieve_all ) {
+ for my $perm ( sort {$a->code cmp $b->code} @perms ) {
my $grp = $node;
my $out = '<select name="depth_'.$perm->id.'"><option value="">-- Select One --</option>';
for my $outype ( actor::org_unit_type->retrieve_all ) {
);
CREATE INDEX perm_list_code_idx ON permission.perm_list (code);
+/*
INSERT INTO permission.perm_list VALUES (-1, 'EVERYTHING', NULL);
INSERT INTO permission.perm_list VALUES (2, 'OPAC_LOGIN', NULL);
INSERT INTO permission.perm_list VALUES (4, 'STAFF_LOGIN', NULL);
INSERT INTO permission.perm_list VALUES (104, 'COPY_IS_REFERENCE.override', 'Allows a user to override the copy_is_reference event');
SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 105);
+*/
CREATE TABLE permission.grp_tree (
- id SERIAL PRIMARY KEY,
- name TEXT NOT NULL UNIQUE,
- parent INT REFERENCES permission.grp_tree (id) ON DELETE RESTRICT,
- description TEXT,
- perm_interval INTERVAL DEFAULT '3 years'::interval NOT NULL
+ id SERIAL PRIMARY KEY,
+ name TEXT NOT NULL UNIQUE,
+ parent INT REFERENCES permission.grp_tree (id) ON DELETE RESTRICT,
+ perm_interval INTERVAL DEFAULT '3 years'::interval NOT NULL,
+ description TEXT,
+ application_perm TEXT
);
CREATE INDEX grp_tree_parent_idx ON permission.grp_tree (parent);
+/*
INSERT INTO permission.grp_tree VALUES (1, 'Users', NULL, NULL, '3 years');
INSERT INTO permission.grp_tree VALUES (2, 'Patrons', 1, NULL, '3 years');
INSERT INTO permission.grp_tree VALUES (3, 'Staff', 1, NULL, '3 years');
INSERT INTO permission.grp_tree VALUES (10, 'Local System Administrator', 3, 'System maintenance, configuration, etc.', '3 years');
SELECT SETVAL('permission.grp_tree_id_seq'::TEXT, 11);
+*/
CREATE TABLE permission.grp_perm_map (
id SERIAL PRIMARY KEY,
CONSTRAINT perm_grp_once UNIQUE (grp,perm)
);
+/*
INSERT INTO permission.grp_perm_map VALUES (57, 2, 15, 0, false);
INSERT INTO permission.grp_perm_map VALUES (109, 2, 95, 0, false);
INSERT INTO permission.grp_perm_map VALUES (1, 1, 2, 0, false);
INSERT INTO permission.grp_perm_map VALUES (138, 5, 104, 1, false);
SELECT SETVAL('permission.grp_perm_map_id_seq'::TEXT, 139);
-
+*/
CREATE TABLE permission.usr_perm_map (
id SERIAL PRIMARY KEY,