Brak opisu

forms.py 9.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. # IRIS Source Code
  2. # Copyright (C) 2021 - Airbus CyberSecurity (SAS)
  3. # ir@cyberactionlab.net
  4. #
  5. # This program is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 3 of the License, or (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # Lesser General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public License
  16. # along with this program; if not, write to the Free Software Foundation,
  17. # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. from flask_wtf import FlaskForm
  19. from wtforms import BooleanField
  20. from wtforms import PasswordField
  21. from wtforms import SelectField
  22. from wtforms import SelectMultipleField
  23. from wtforms import StringField
  24. from wtforms import TextAreaField
  25. from wtforms import widgets
  26. from wtforms.fields.simple import SubmitField
  27. from wtforms.validators import DataRequired
  28. from wtforms.validators import Email
  29. from wtforms.validators import InputRequired
  30. class LoginForm(FlaskForm):
  31. username = StringField(u'Username', validators=[DataRequired()])
  32. password = PasswordField(u'Password', validators=[DataRequired()])
  33. class MFASetupForm(FlaskForm):
  34. token = StringField('Token', validators=[DataRequired()])
  35. mfa_secret = StringField('MFA Secret')
  36. user_password = PasswordField('Password', validators=[DataRequired()])
  37. submit = SubmitField('Verify')
  38. class RegisterForm(FlaskForm):
  39. name = StringField(u'Name', validators=[DataRequired()])
  40. username = StringField(u'Username', validators=[DataRequired()])
  41. password = PasswordField(u'Password', validators=[DataRequired()])
  42. email = StringField(u'Email', validators=[DataRequired(), Email()])
  43. class SearchForm(FlaskForm):
  44. search_type = StringField(u'Search Type', validators=[DataRequired()])
  45. search_value = StringField(u'Search Value', validators=[DataRequired()])
  46. class AddCustomerForm(FlaskForm):
  47. customer_name = StringField(u'Customer name', validators=[DataRequired()])
  48. customer_description = TextAreaField(u'Customer description', validators=[DataRequired()])
  49. customer_sla = TextAreaField(u'Customer SLAs', validators=[DataRequired()])
  50. class MultiCheckboxField(SelectMultipleField):
  51. widget = widgets.ListWidget(prefix_label=False)
  52. option_widget = widgets.CheckboxInput()
  53. class AddAssetForm(FlaskForm):
  54. asset_name = StringField(u'Asset name', validators=[DataRequired()])
  55. asset_description = StringField(u'Asset description', validators=[DataRequired()])
  56. asset_icon_compromised = StringField(u'Asset icon compromised name', default="ioc_question-mark.png")
  57. asset_icon_not_compromised = StringField(u'Asset icon not compromised name', default="question-mark.png")
  58. class AttributeForm(FlaskForm):
  59. attribute_content = TextAreaField(u'Attribute content', validators=[DataRequired()])
  60. class AddIocTypeForm(FlaskForm):
  61. type_name = StringField(u'Type name', validators=[DataRequired()])
  62. type_description = StringField(u'Type description', validators=[DataRequired()])
  63. type_taxonomy = TextAreaField(u'Type taxonomy')
  64. type_validation_regex = StringField(u'Type validation regex')
  65. type_validation_expect = StringField(u'Type validation expectation')
  66. class CaseClassificationForm(FlaskForm):
  67. name = StringField(u'Case classification name', validators=[DataRequired()])
  68. name_expanded = StringField(u'Case classification name expanded', validators=[DataRequired()])
  69. description = StringField(u'Case classification description', validators=[DataRequired()])
  70. class EvidenceTypeForm(FlaskForm):
  71. name = StringField(u'Evidence type name', validators=[DataRequired()])
  72. description = StringField(u'Evidence type description', validators=[DataRequired()])
  73. class CaseStateForm(FlaskForm):
  74. state_name = StringField(u'Case state name', validators=[DataRequired()])
  75. state_description = StringField(u'Case state description', validators=[DataRequired()])
  76. class AddReportTemplateForm(FlaskForm):
  77. report_name = StringField(u'Report name', validators=[DataRequired()])
  78. report_description = StringField(u'Report description', validators=[DataRequired()])
  79. report_name_format = StringField(u'Report name formating', validators=[DataRequired()])
  80. report_language = SelectField(u'Language', validators=[DataRequired()])
  81. report_type = SelectField(u'Report Type', validators=[DataRequired()])
  82. class CaseTemplateForm(FlaskForm):
  83. case_template_json = TextAreaField(u'Case Template JSON', validators=[DataRequired()])
  84. class AddUserForm(FlaskForm):
  85. user_login = StringField(u'Name', validators=[DataRequired()])
  86. user_name = StringField(u'Username', validators=[DataRequired()])
  87. user_password = PasswordField(u'Password', validators=[DataRequired()])
  88. user_email = StringField(u'Email', validators=[DataRequired(), Email()])
  89. user_is_service_account = BooleanField(u'Use as service account')
  90. class AddGroupForm(FlaskForm):
  91. group_name = StringField(u'Group name', validators=[DataRequired()])
  92. group_description = StringField(u'Group description', validators=[DataRequired()])
  93. class AddOrganisationForm(FlaskForm):
  94. org_name = StringField(u'Organisation name', validators=[DataRequired()])
  95. org_description = StringField(u'Organisation description', validators=[DataRequired()])
  96. org_url = StringField(u'Organisation url', validators=[DataRequired()])
  97. org_logo = StringField(u'Organisation logo', validators=[DataRequired()])
  98. org_email = StringField(u'Organisation email', validators=[DataRequired()])
  99. org_nationality = StringField(u'Organisation nationality', validators=[DataRequired()])
  100. org_sector = StringField(u'Organisation nationality', validators=[DataRequired()])
  101. org_type = StringField(u'Organisation type', validators=[DataRequired()])
  102. class ModalAddCaseAssetForm(FlaskForm):
  103. asset_id = SelectField(u'Asset type', validators=[DataRequired()])
  104. class AddCaseForm(FlaskForm):
  105. case_name = StringField(u'Case name', validators=[InputRequired()])
  106. case_description = StringField(u'Case description', validators=[InputRequired()])
  107. case_soc_id = StringField(u'SOC Ticket')
  108. case_customer = SelectField(u'Customer', validators=[InputRequired()])
  109. case_organisations = SelectMultipleField(u'Organisations')
  110. classification_id = SelectField(u'Classification')
  111. case_template_id = SelectField(u'Case Template')
  112. class ContactForm(FlaskForm):
  113. contact_name = StringField(u'Contact name', validators=[DataRequired()])
  114. contact_role = StringField(u'Contact role', validators=[DataRequired()])
  115. contact_email = StringField(u'Contact email', validators=[DataRequired(), Email()])
  116. contact_work_phone = StringField(u'Work phone', validators=[DataRequired()])
  117. contact_mobile_phone = StringField(u'Mobile phone', validators=[DataRequired()])
  118. contact_note = TextAreaField(u'Contact description', validators=[DataRequired()])
  119. class PipelinesCaseForm(FlaskForm):
  120. pipeline = SelectField(u'Processing pipeline')
  121. class AssetBasicForm(FlaskForm):
  122. asset_name = StringField(u'Name', validators=[DataRequired()])
  123. asset_description = TextAreaField(u'Description')
  124. asset_domain = StringField(u'Domain')
  125. asset_ip = StringField(u'Domain')
  126. asset_info = TextAreaField(u'Asset Info')
  127. asset_compromise_status_id = SelectField(u'Compromise Status')
  128. asset_type_id = SelectField(u'Asset Type', validators=[DataRequired()])
  129. analysis_status_id = SelectField(u'Analysis Status', validators=[DataRequired()])
  130. asset_tags = StringField(u'Asset Tags')
  131. class CaseEventForm(FlaskForm):
  132. event_title = StringField(u'Event Title', validators=[DataRequired()])
  133. event_source = StringField(u'Event Source')
  134. event_content = TextAreaField(u'Event Description')
  135. event_raw = TextAreaField(u'Event Raw data')
  136. event_assets = SelectField(u'Event Asset')
  137. event_category_id = SelectField(u'Event Category')
  138. event_tz = StringField(u'Event Timezone', validators=[DataRequired()])
  139. event_in_summary = BooleanField(u'Add to summary')
  140. event_tags = StringField(u'Event Tags')
  141. event_in_graph = BooleanField(u'Display in graph')
  142. class CaseTaskForm(FlaskForm):
  143. task_title = StringField(u'Task Title', validators=[DataRequired()])
  144. task_description = TextAreaField(u'Task description')
  145. task_status_id = SelectField(u'Task status', validators=[DataRequired()])
  146. task_assignees_id = SelectMultipleField(u'Assignee(s)')
  147. task_tags = StringField(u'Task Tags')
  148. class CaseGlobalTaskForm(FlaskForm):
  149. task_title = StringField(u'Task Title')
  150. task_description = TextAreaField(u'Task description')
  151. task_assignee_id = SelectField(u'Task assignee')
  152. task_status_id = SelectField(u'Task status')
  153. task_tags = StringField(u'Task Tags')
  154. class ModalAddCaseIOCForm(FlaskForm):
  155. ioc_tags = StringField(u'IOC Tags')
  156. ioc_value = TextAreaField(u'IOC Value', validators=[DataRequired()])
  157. ioc_description = TextAreaField(u'IOC Description')
  158. ioc_type_id = SelectField(u'IOC Type', validators=[DataRequired()])
  159. ioc_tlp_id = SelectField(u'IOC TLP', validators=[DataRequired()])
  160. class ModalDSFileForm(FlaskForm):
  161. file_original_name = StringField(u'Filename', validators=[DataRequired()])
  162. file_description = TextAreaField(u'file_description')
  163. file_password = StringField(u'File password')
  164. file_is_ioc = BooleanField(u'File is IOC')
  165. file_is_evidence = BooleanField(u'File is Evidence')
  166. class CaseNoteForm(FlaskForm):
  167. note_title = StringField(u'Note title', validators=[DataRequired()])
  168. note_content = StringField(u'Note content')
  169. class AddModuleForm(FlaskForm):
  170. module_name = StringField(u'Module name', validators=[DataRequired()])
  171. class UpdateModuleParameterForm(FlaskForm):
  172. module_name = StringField(u'Module name', validators=[DataRequired()])