Skip to content

Commit

Permalink
Fix #587 and Fix #594
Browse files Browse the repository at this point in the history
  • Loading branch information
failys committed Dec 14, 2020
1 parent 8de46a8 commit db6adc3
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
4 changes: 2 additions & 2 deletions cairis/data/DimensionDAO.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __init__(self, session_id):

def get_objects_by_names(self,table,id):
try:
permissableDimensions = ['access_right', 'architectural_pattern', 'component_view','asset', 'asset_reference', 'asset_type','attacker','attacker_reference', 'behavioural_variable', 'capability','characteristic_synopsis', 'component', 'concept_reference','connector', 'countermeasure','countermeasure_reference', 'countermeasure_value', 'datastore', 'detection_mechanism', 'dfd_filter', 'document_reference', 'domainproperty','domainproperty_reference', 'entity','environment', 'environment_reference','external_document', 'goal', 'goal_reference','goal_category_type','goal_satisfaction','interface','likelihood','locations','misusability_case','misusecase','misusecase_reference','motivation','obstacle','obstacle_category_type','obstacle_reference','persona','persona_characteristic','persona_characteristic_synopsis','persona_implied_process','persona_reference','persona_type','priority_type', 'privilege', 'process','protocol', 'reference_synopsis','requirement', 'requirement_reference', 'requirement_type','response', 'response_reference', 'risk', 'risk_class','risk_reference','role', 'role_reference', 'role_type', 'securitypattern','severity', 'surface_type', 'task', 'task_characteristic', 'task_reference','template_asset', 'template_goal', 'template_requirement','trace_dimension','threat', 'threat_reference','threat_type', 'threat_value', 'ugm_filter', 'usecase', 'vulnerability','vulnerability_reference', 'vulnerability_type', 'document_reference_synopsis','persona_characteristic_synopsis','user_goal']
permissableDimensions = ['access_right', 'architectural_pattern', 'component_view','asset', 'asset_reference', 'asset_type','attacker','attacker_reference', 'behavioural_variable', 'capability','characteristic_synopsis', 'component', 'concept_reference','connector', 'countermeasure','countermeasure_reference', 'countermeasure_value', 'datastore', 'detection_mechanism', 'dfd_filter', 'document_reference', 'domainproperty','domainproperty_reference', 'entity','environment', 'environment_reference','external_document', 'goal', 'goal_reference','goal_category_type','goal_satisfaction','interface','likelihood','locations','misusability_case','misusecase','misusecase_reference','motivation','noncomposite_environment','obstacle','obstacle_category_type','obstacle_reference','persona','persona_characteristic','persona_characteristic_synopsis','persona_implied_process','persona_reference','persona_type','priority_type', 'privilege', 'process','protocol', 'reference_synopsis','requirement', 'requirement_reference', 'requirement_type','response', 'response_reference', 'risk', 'risk_class','risk_reference','role', 'role_reference', 'role_type', 'securitypattern','severity', 'surface_type', 'task', 'task_characteristic', 'task_reference','template_asset', 'template_goal', 'template_requirement','trace_dimension','threat', 'threat_reference','threat_type', 'threat_value', 'ugm_filter', 'usecase', 'vulnerability','vulnerability_reference', 'vulnerability_type', 'document_reference_synopsis','persona_characteristic_synopsis','user_goal']
if (table not in permissableDimensions):
raise CairisHTTPError(BAD_REQUEST,'Invalid dimension',table + ' is not a permissable dimension')
if (table == 'persona_characteristic_synopsis' or table == 'document_reference_synopsis' or table == 'user_goal'):
Expand All @@ -45,7 +45,7 @@ def get_objects_by_names(self,table,id):

def get_objects_by_2parameters(self,table,environment):
try:
permissableDimensions = ['asset','asset_value','attacker','control','countermeasure','datastore','detection_mechanism','diagramDatastore','diagramEntity','diagramProcess','domainproperty','dfd_filter','entity','goal','misusecase','obstacle','persona', 'process', 'requirement','response','risk','role','task','task_characteristic', 'threat', 'ugm_filter','usecase', 'unconnected_vulnerability','unconnected_threat','vulnerability','component']
permissableDimensions = ['asset','asset_value','attacker','control','countermeasure','datastore','detection_mechanism','diagramDatastore','diagramEntity','diagramProcess','domainproperty','dfd_filter','entity','goal','information_asset','misusecase','obstacle','persona', 'process', 'requirement','response','risk','role','task','task_characteristic', 'threat', 'ugm_filter','usecase', 'unconnected_vulnerability','unconnected_threat','vulnerability','component']
if (table not in permissableDimensions):
raise CairisHTTPError(BAD_REQUEST,'Invalid dimension',table + ' is not a permissable dimension when specifying environment')
if (self.db_proxy.nameExists(environment,'environment') == False):
Expand Down
12 changes: 12 additions & 0 deletions cairis/sql/procs.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1038,6 +1038,7 @@ drop procedure if exists invalidObjectNames;
drop procedure if exists reservedCharacterCheck;
drop procedure if exists unconnected_vulnerabilityNames;
drop procedure if exists unconnected_threatNames;
drop procedure if exists information_assetNames;


delimiter //
Expand Down Expand Up @@ -8608,6 +8609,9 @@ begin
elseif dimensionTable = 'requirement' and constraintId = -1
then
set dimSql = 'select o.id,o.name from requirement o where o.version = (select max(i.version) from requirement i where i.id = o.id)';
elseif dimensionTable = 'noncomposite_environment'
then
set dimSql = 'select id, name from environment where id not in (select composite_environment_id from composite_environment) order by 1';
else
if dimensionTable = 'persona_characteristic'
then
Expand Down Expand Up @@ -31744,4 +31748,12 @@ begin
end
//

create procedure information_assetNames(in environmentName text)
begin
declare environmentId int;
select id into environmentId from environment where name = environmentName limit 1;
select a.name from asset a, asset_type at, environment_asset ea where ea.environment_id = environmentId and ea.asset_id = a.id and a.asset_type_id = at.id and at.name = 'Information' order by 1;
end
//

delimiter ;

0 comments on commit db6adc3

Please sign in to comment.