Configuring access rights by specialization

The Access Manager lets you configure access rights by document type only (map, topic, image, and resource). You can now configure access rights according to specializations (bookmap, concept, task, etc.).

While this feature gives you a lot of flexibility when assigning access rights, it also requires a more complex configuration, since you must account for all the specializations.

For example, without this feature, to give your authors editing access rights to all the topics and maps, you simply need to specify the following conditions in the accessrights.xml file:
<condition>
   <!-- Object on which action is taken -->
    <current>
        <type name="map">
            <statuses>
                <status>Authoring:draft</status>
            </statuses>
        </type>
    </current>
    <!-- Action user must be in this list -->
    <users>
        <roles>
            <role name="Author"/>
        </roles>
    </users>
</condition>
<condition>
   <!-- Object on which action is taken -->
    <current>
        <type name="topic">
            <statuses>
                <status>Authoring:draft</status>
            </statuses>
        </type>
    </current>
    <!-- Action user must be in this list -->
    <users>
        <roles>
            <role name="Author"/>
        </roles>
    </users>
</condition>

When this feature is enabled, you need to repeat the conditions for all the topic specializations (e.g., concept, task, reference, topic, glossentry) and map specializations (e.g., map, bookmap, etc.). The <type name="topic"> no longer means all the different types of topics; it now refers specifically to a <topic> document, excluding <reference>, <concept>, <task>, etc. So before implementing this feature, make sure that you have a good use case for this level of granularity.

To configure access rights by specialization:
  • Add the use-specialization attribute to the accessrights.dtd file.
  • In the accessrights.xml file, set the use-specialization attribute to true for the appropriate <method> element.
  • Set up access right conditions.
These steps are described below.
  1. Open the TEXTML Administration perspective by clicking the TEXTML Administration shortcut on the tool bar. If the shortcut is not displayed, follow these steps:
    1. Select Window > Open Perspective > Other
    2. Click TEXTML Administration.
    3. Click OK.
  2. In the TEXTML Administration view, double-click the server. If your server is not displayed in the view, you must add it to the view.
  3. When the Connect as dialog opens, type your username and password and click OK.
  4. Double-click the name of your docbase to open a connection to the Content Store.
  5. Expand the Content Store's Repository node and browse to /system/conf to locate the accessrights.dtd file.
  6. Right-click accessrights.dtd and select Check Out.
  7. Open the file in an XML editor.
  8. Locate the <method> element and add the following line to the attribute list:
    use-specialization (true | false) "false" 
    For example:
    <!ELEMENT method (notify, conditionset)                      >
    <!ATTLIST method
              name CDATA #REQUIRED
              type (front-end | api | outputtype) #REQUIRED
              use-specialization (true | false) "false"           > 
  9. Save, close, and check in the file.
  10. Browse to /system/conf to locate the accessrights.xml file.
  11. Right-click accessrights.xml and select Check Out.
  12. Open the file in an XML editor.
  13. Locate the <method> element and set its use-specialization attribute to true.
    For example:
    <method name="Edit" type="front-end"  use-specialization="true"    > 
  14. Configure conditions as applicable to your project.
    For example, consider a specialization named apitopic, used to document the methods of an API. You want to give software developers access to these topics so that they can provide the method details, but you don't want them to update other types of topics. You would then create the following condition in the Edit method:
    <condition>
       <!-- Object on which action is taken -->
        <current>
            <type name="apitopic">
                <statuses>
                    <status>Authoring:draft</status>
                </statuses>
            </type>
        </current>
        <!-- Action user must be in this list -->
        <users>
            <roles>
                <role name="SoftwareDeveloper"/>
            </roles>
        </users>
    </condition>
  15. Save, close, and check in the file.
  16. Inform users of the changes.
    The changes will be applied automatically once users close and then reopen their . Users can also apply the changes without restarting their IXIASOFT CCMS Desktop by clicking DITA CMS > Synchronize Configuration.