Configure access rights by specialization

The Access Manager lets you configure access rights by document type only (map, topic, image, and resource). You can also 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.

Note: You should make these configuration changes in the Test environment and test them before copying them to the Production environment. In a dedicated SaaS deployment, after testing the changes, ask IXIASOFT Customer Support to copy the changes to the Production environment.
  1. In the TEXTML Administration perspective, connect to your server.
  2. Expand the Content Store's Repository node and browse to /system/conf to locate the accessrights.dtd file.
  3. Right-click accessrights.dtd and select Check Out.
  4. Open the file in an XML editor.
  5. 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"           > 
  6. Save, close, and check in the file.
  7. Browse to /system/conf to locate the accessrights.xml file.
  8. Right-click accessrights.xml and select Check Out.
  9. Open the file in an XML editor.
  10. Locate the <method> element and set its use-specialization attribute to true.
    For example:
    <method name="Edit" type="front-end"  use-specialization="true"    > 
  11. 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>
  12. Save, close, and check in the file.
  13. Inform users of the changes.
    The changes will be applied automatically once users close and then reopen their CCMS Desktop. Users can also apply the changes without restarting their CCMS Desktop by clicking IXIASOFT CCMS > Synchronize Configuration. Additionally, refresh IXIASOFT CCMS Web so that users will see the change reflected there.