LP#1427287: update fm_IDL.xml add ADMIN_TAG_TABLE permission
authorGalen Charlton <gmc@esilibrary.com>
Mon, 2 Mar 2015 21:00:18 +0000 (21:00 +0000)
committerMike Rylander <mrylander@gmail.com>
Wed, 8 Jul 2015 18:12:00 +0000 (14:12 -0400)
A question: should cataloging administrators get
system-level ADMIN_TAG_TABLE by default?

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Open-ILS/examples/fm_IDL.xml
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/ZZZZ.data.tag-table-permissions.sql [new file with mode: 0644]

index b847d16..b7a26b0 100644 (file)
@@ -781,6 +781,77 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
         </permacrud>
        </class>
 
+       <class id="cmrcfmt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::marc_format" oils_persist:tablename="config.marc_format" reporter:label="MARC Formats" oils_persist:field_safe="true">
+               <fields oils_persist:primary="id">
+                       <field reporter:label="ID"   name="id" reporter:datatype="id"/>
+                       <field reporter:label="Code" name="code" reporter:datatype="text"/>
+                       <field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+        </fields>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_TAG_TABLE" global_required="true"/>
+                <retrieve/>
+                <update permission="ADMIN_TAG_TABLE" global_required="true"/>
+                <delete permission="ADMIN_TAG_TABLE" global_required="true"/>
+            </actions>
+        </permacrud>
+       </class>
+
+       <class id="cmrcfld" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::marc_field" oils_persist:tablename="config.marc_field" reporter:label="MARC Fields" oils_persist:field_safe="true">
+               <fields oils_persist:primary="id">
+                       <field reporter:label="ID"   name="id" reporter:datatype="id"/>
+                       <field reporter:label="MARC Format" name="marc_format" reporter:datatype="link" />
+                       <field reporter:label="MARC Record Type" name="marc_record_type" reporter:datatype="text" />
+                       <field reporter:label="MARC Tag" name="tag" reporter:datatype="text" />
+                       <field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+                       <field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+                       <field reporter:label="Fixed Field?" name="fixed_field" reporter:datatype="bool"/>
+                       <field reporter:label="Repeatabl?" name="repeatable" reporter:datatype="bool"/>
+                       <field reporter:label="Mandatory?" name="mandatory" reporter:datatype="bool"/>
+                       <field reporter:label="Hidden?" name="hidden" reporter:datatype="bool"/>
+                       <field reporter:label="Owner" name="owner" reporter:datatype="link"/>
+        </fields>
+               <links>
+                       <link field="marc_format" reltype="has_a" key="id" map="" class="cmrcfmt"/>
+                       <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+        </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_TAG_TABLE" context_field="owner"/>
+                <retrieve/>
+                <update permission="ADMIN_TAG_TABLE" context_field="owner"/>
+                <delete permission="ADMIN_TAG_TABLE" context_field="owner"/>
+            </actions>
+        </permacrud>
+       </class>
+
+       <class id="cmrcsubfld" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::marc_subfield" oils_persist:tablename="config.marc_subfield" reporter:label="MARC Subfields" oils_persist:subfield_safe="true">
+               <fields oils_persist:primary="id">
+                       <field reporter:label="ID"   name="id" reporter:datatype="id"/>
+                       <field reporter:label="MARC Format" name="marc_format" reporter:datatype="link" />
+                       <field reporter:label="MARC Record Type" name="marc_record_type" reporter:datatype="text" />
+                       <field reporter:label="MARC Tag" name="tag" reporter:datatype="text" />
+                       <field reporter:label="MARC Subfield" name="code" reporter:datatype="text" />
+                       <field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+                       <field reporter:label="Repeatable?" name="repeatable" reporter:datatype="bool"/>
+                       <field reporter:label="Mandatory?" name="mandatory" reporter:datatype="bool"/>
+                       <field reporter:label="Hidden?" name="hidden" reporter:datatype="bool"/>
+                       <field reporter:label="Owner" name="owner" reporter:datatype="link"/>
+        </fields>
+               <links>
+                       <link field="marc_format" reltype="has_a" key="id" map="" class="cmrcfmt"/>
+                       <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
+        </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_TAG_TABLE" context_field="owner"/>
+                <retrieve/>
+                <update permission="ADMIN_TAG_TABLE" context_field="owner"/>
+                <delete permission="ADMIN_TAG_TABLE" context_field="owner"/>
+            </actions>
+        </permacrud>
+       </class>
+
        <class id="crad" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::record_attr_definition" oils_persist:tablename="config.record_attr_definition" reporter:label="SVF Record Attribute Defintion" oils_persist:field_safe="true">
                <fields oils_persist:primary="name">
                        <field reporter:label="Name" name="name" reporter:datatype="id" reporter:selector="label"  oils_obj:required="true"/>
index bac8cfc..1c55481 100644 (file)
@@ -1594,7 +1594,9 @@ INSERT INTO permission.perm_list ( id, code, description ) VALUES
  (  560, 'TOTAL_HOLD_COPY_RATIO_EXCEEDED.override', oils_i18n_gettext( 560,
     'Override the TOTAL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description')),
  (  561, 'AVAIL_HOLD_COPY_RATIO_EXCEEDED.override', oils_i18n_gettext( 561,
-    'Override the AVAIL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description'))
+    'Override the AVAIL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description')),
+ ( 562, 'ADMIN_TAG_TABLE', oils_i18n_gettext( 562, 
+    'Allow administration of MARC tag tables', 'ppl', 'description' ))
 ;
 
 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
diff --git a/Open-ILS/src/sql/Pg/upgrade/ZZZZ.data.tag-table-permissions.sql b/Open-ILS/src/sql/Pg/upgrade/ZZZZ.data.tag-table-permissions.sql
new file mode 100644 (file)
index 0000000..b841299
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('ZZZZ', :eg_version);
+
+INSERT INTO permission.perm_list ( code, description ) VALUES
+ ( 'ADMIN_TAG_TABLE', oils_i18n_gettext( '',
+    'Allow administration of MARC tag tables', 'ppl', 'description'
+ ));
+
+COMMIT;