I added a custom action to set the value of a custom property "contact person". Now I need a form control that let's the user choose an existing user. I tried authority.ftl, but that way it is possible to select groups as well as single users.
This is part of my share-config-custom.xml:
<!-- Actions -->
<config evaluator="string-compare" condition="DocLibActions">
<actions>
<action id="assign-contact-person" type="javascript" label="actions.assign-cp" icon="assign-cp">
<param name="function">onActionFormDialog</param>
<param name="itemKind">action</param>
<param name="itemId">assign-cp</param>
<param name="mode">create</param>
<param name="destination">{node.nodeRef}</param>
<param name="successMessage">message.assign-cp.success</param>
<param name="failureMessage">message.assign-cp.failure</param>
<permissions>
<permission allow="true">Write</permission>
</permissions>
</action>
</actions>
<actionGroups>
<actionGroup id="document-browse">
<action index="500" id="assign-contact-person" />
</actionGroup>
<actionGroup id="document-details">
<action index="500" id="assign-contact-person" />
</actionGroup>
</actionGroups>
</config>
<config evaluator="string-compare" condition="assign-cp">
<forms>
<form>
<field-visibility>
<show id="contactPerson"/>
</field-visibility>
<appearance>
<field id="contactPerson" label="Contact Person">
<control template="/org/alfresco/components/form/controls/authority.ftl"/>
</field>
</appearance>
</form>
</forms>
</config>
I would also follow a different approach, allowing end users to edit the custom property via "Edit Properties" - then I would need a custom constraint that makes sure that only existing user names can be selected. Is there any way to achieve this?