MISP/app/Model/EventDelegation.php

59 lines
1.5 KiB
PHP
Raw Normal View History

2016-01-10 19:47:21 +01:00
<?php
App::uses('AppModel', 'Model');
class EventDelegation extends AppModel {
public $actsAs = array('Containable');
2016-01-10 19:47:21 +01:00
public $validate = array(
'event_id' => array(
'valueNotEmpty' => array(
'rule' => array('valueNotEmpty'),
),
),
'org_id' => array(
'valueNotEmpty' => array(
'rule' => array('valueNotEmpty'),
),
)
);
2016-01-10 19:47:21 +01:00
public $belongsTo = array(
'Event',
2016-01-10 19:47:21 +01:00
'Org' => array(
'className' => 'Organisation',
),
2016-02-12 05:47:06 +01:00
'RequesterOrg' => array(
'className' => 'Organisation'
),
'SharingGroup'
2016-01-10 19:47:21 +01:00
);
public function attachTagToEvent($event_id, $tag_id) {
$existingAssociation = $this->find('first', array(
'recursive' => -1,
'conditions' => array(
'tag_id' => $tag_id,
'event_id' => $event_id
)
));
if (empty($existingAssociation)) {
$this->create();
if (!$this->save(array('event_id' => $event_id, 'tag_id' => $tag_id))) return false;
}
return true;
}
2016-02-12 05:47:06 +01:00
public function transferEvent($delegation, $user) {
$event = $this->Event->fetchEvent($user, array('eventid' => $delegation['EventDelegation']['event_id']));
if (empty($event)) throw new MethodNotFoundException('Invalid event.');
$event = $event[0];
2016-02-12 05:47:06 +01:00
$event['Event']['user_id'] = $user['id'];
$event['Event']['orgc_id'] = $delegation['EventDelegation']['org_id'];
$event['Event']['org_id'] = $delegation['EventDelegation']['org_id'];
$this->Event->delete($delegation['EventDelegation']['event_id']);
$event_id = $this->Event->savePreparedEvent($event);
return $event_id;
}
}