I recently did something that sounds very similar to what you're doing. What I did was reference the sfDcPlugin as it lets you edit actor type in the same way you might want to edit an actor's role. It's a fairly involved process, but possible if you've got the time to work through it.
To add actor roles you'll want to:
1) Add an actor role taxonomy:
* Add a constant to for the new taxonony's ID in lib/model/QubitTaxonomy.php
* Add a migration in lib/task/migrate/migrations to populate the taxonomy with terms
2) Add an actor role column to the schema:
* Add the column to config/schema.yml
* Update the SQL initialization file to reflect new schema: ./symfony propel:build-sql
* Update the PHP class definitions to reflect new schema: ./symfony propel:build-model
3) Add the ability to edit the actor role in the UI:
* Add a component for editing actors, Dublin Core plugin shows example of this:
plugins/sfDcPlugin/modules/sfDcPlugin/actions/dcNamesComponent.class.php
* Make a partial template for your component, example:
plugins/sfDcPlugin/modules/sfDcPlugin/templates/_dcNames.php
* Change your plugin's edit action to use the component, example:
plugins/sfDcPlugin/modules/sfDcPlugin/actions/editAction.class.php
* Change addFile and processField to deal with the role field, example:
plugins/sfDcPlugin/modules/sfDcPlugin/actions/editAction.class.php
4) Add the ability to show the role for those viewing descriptions
* See DC view template for example: plugins/sfDcPlugin/modules/sfDcPlugin/templates/indexSuccess.php
Cheers,
Mike Cantelon
Artefactual Systems