mirror of https://github.com/MISP/MISP
chg: [internal] Move method for fetching tags to one place
parent
cf710f796a
commit
11e8b09d6f
|
@ -2673,16 +2673,11 @@ class AttributesController extends AppController
|
|||
}
|
||||
}
|
||||
} else {
|
||||
$conditions = array('LOWER(Tag.name)' => strtolower(trim($tag_id)));
|
||||
if (!$this->_isSiteAdmin()) {
|
||||
$conditions['Tag.org_id'] = array('0', $this->Auth->user('org_id'));
|
||||
$conditions['Tag.user_id'] = array('0', $this->Auth->user('id'));
|
||||
}
|
||||
$tag = $this->Attribute->AttributeTag->Tag->find('first', array('recursive' => -1, 'conditions' => $conditions));
|
||||
if (empty($tag)) {
|
||||
$tagId = $this->Attribute->AttributeTag->Tag->lookupTagIdForUser($this->Auth->user(), trim($tag_id));
|
||||
if (empty($tagId)) {
|
||||
return new CakeResponse(array('body'=> json_encode(array('saved' => false, 'errors' => 'Invalid Tag.')), 'status'=>200, 'type' => 'json'));
|
||||
}
|
||||
$tag_id = $tag['Tag']['id'];
|
||||
$tag_id = $tagId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3462,16 +3462,11 @@ class EventsController extends AppController
|
|||
}
|
||||
}
|
||||
} else {
|
||||
$conditions = array('LOWER(Tag.name)' => strtolower(trim($tag_id)));
|
||||
if (!$this->_isSiteAdmin()) {
|
||||
$conditions['Tag.org_id'] = array('0', $this->Auth->user('org_id'));
|
||||
$conditions['Tag.user_id'] = array('0', $this->Auth->user('id'));
|
||||
}
|
||||
$tag = $this->Event->EventTag->Tag->find('first', array('recursive' => -1, 'conditions' => $conditions));
|
||||
if (empty($tag)) {
|
||||
$tagId = $this->Event->EventTag->Tag->lookupTagIdForUser($this->Auth->user(), trim($tag_id));
|
||||
if (empty($tagId)) {
|
||||
return new CakeResponse(array('body'=> json_encode(array('saved' => false, 'errors' => 'Invalid Tag.')), 'status'=>200, 'type' => 'json'));
|
||||
}
|
||||
$tag_id = $tag['Tag']['id'];
|
||||
$tag_id = $tagId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,10 +159,38 @@ class Tag extends AppModel
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $user
|
||||
* @param string $tagName
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function lookupTagIdForUser(array $user, $tagName)
|
||||
{
|
||||
$conditions = ['LOWER(Tag.name)' => mb_strtolower($tagName)];
|
||||
if (!$user['Role']['perm_site_admin']) {
|
||||
$conditions['Tag.org_id'] = [0, $user['org_id']];
|
||||
$conditions['Tag.user_id'] = [0, $user['id']];
|
||||
}
|
||||
$tagId = $this->find('first', array(
|
||||
'conditions' => $conditions,
|
||||
'recursive' => -1,
|
||||
'fields' => array('Tag.id'),
|
||||
'callbacks' => false,
|
||||
));
|
||||
if (empty($tagId)) {
|
||||
return null;
|
||||
}
|
||||
return $tagId['Tag']['id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $tagName
|
||||
* @return int|mixed
|
||||
*/
|
||||
public function lookupTagIdFromName($tagName)
|
||||
{
|
||||
$tagId = $this->find('first', array(
|
||||
'conditions' => array('LOWER(Tag.name)' => strtolower($tagName)),
|
||||
'conditions' => array('LOWER(Tag.name)' => mb_strtolower($tagName)),
|
||||
'recursive' => -1,
|
||||
'fields' => array('Tag.id'),
|
||||
'callbacks' => false,
|
||||
|
|
Loading…
Reference in New Issue