MITRECND/crits_services — pull request #2 by slsnow (2014-07-21 16:52:12+00:00)
Title: Taxii service expansion

*These changes are intended in conjunction with pull requests I have (or am about to) issue to `crits/crits` and `crits/crits_dependencies` with identical branch names.*

This PR contains modifications to the TAXII service. The goal is to increase usability, and also to increase the amount of CRITs data which can be shared, while also improving upon the quality of the data that is produced.

Highlights:
- Users can share any of: `Event`, `Domain`, `Email`, `Indicator`, `IP`, `PCAP`, and `Sample`
- These changes are intended to make sharing new object types easy to implement (and I may in fact add support for `certificate` and `raw_data`, if time permits)
- On the detail page for any items of said types, a "TAXII Service" tab can be made available
- A form is contained within the TAXII Service tab for building a TAXII message.
- The contents are dynamically generated based on the contextual crits item
- CRITs objects related to the context item are available for selection in multselect widgets
- Destination feeds (recipients) are available for selection in multiselect widget
- The user can configure a TAXII message by selecting various desired options, then clicking a submit button
- Server does validation to ensure that only items originally displayed within the form are included in submitted form
- If there are releasability conflicts, the user is prompted to explicitly confirm those changes before the message can be sent
- If the user accepts responsibility for these changes, releasability will be updated for items that are successfully delivered via TAXII
- If the user cancels, no changes are made
- The user is notified of the success/failure status of the message to each recipient
- If some form of processing error occurs, the user is notified so the user can rectify the issue, if possible, or else seek assistance

**The 'Build TAXII Message' form**
![buildtaxii](https://cloud.githubusercontent.com/assets/1915706/3333186/d0bb1aa0-f7ef-11e3-9f4b-271428bfb71d.png)

**The 'Problems' display**
![problemstaxii](https://cloud.githubusercontent.com/assets/1915706/3333187/d0c8580a-f7ef-11e3-92b9-32580cf12e34.png)

**The 'Confirm Releasability Updates' view**
![confirmtaxii](https://cloud.githubusercontent.com/assets/1915706/3333188/d0c89e8c-f7ef-11e3-82f5-0cd0bef362c8.png)

**The 'TAXII Message Results' page**
![taxiiresults](https://cloud.githubusercontent.com/assets/1915706/3333189/d0ca020e-f7ef-11e3-9dcc-0aab11ef94a0.png)