mirror of https://github.com/MISP/MISP
chg: [user:periodicNotification] Dev cont.
parent
8db8cbd398
commit
279f33bc4a
|
@ -2806,6 +2806,12 @@ class UsersController extends AppController
|
|||
$this->set('user', $user);
|
||||
}
|
||||
|
||||
public function viewPeriodicSummary(int $user_id, string $period)
|
||||
{
|
||||
$summary = $this->User->generatePeriodicSummary($user_id, $period);
|
||||
$this->set('summary', $summary);
|
||||
}
|
||||
|
||||
private function __canChangePassword()
|
||||
{
|
||||
return $this->ACL->canUserAccess($this->Auth->user(), 'users', 'change_pw');
|
||||
|
|
|
@ -1698,4 +1698,31 @@ class User extends AppModel
|
|||
}
|
||||
return !empty($success);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @param int $user_id
|
||||
* @param string $period
|
||||
* @return string
|
||||
* @throws NotFoundException
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function generatePeriodicSummary(int $user_id, string $period): string
|
||||
{
|
||||
$existingUser = $this->find('first', [
|
||||
'recursive' => -1,
|
||||
'conditions' => ['User.id' => $user_id],
|
||||
]);
|
||||
if (empty($existingUser)) {
|
||||
throw new NotFoundException(__('Invalid user ID.'));
|
||||
}
|
||||
$allowed_periods = array_map(function($period) {
|
||||
return substr($period, strlen('notification_'));
|
||||
}, self::PERIODIC_NOTIFICATIONS);
|
||||
if (!in_array($period, $allowed_periods)) {
|
||||
throw new InvalidArgumentException(__('Invalid period. Must be one of %s', JsonTool::encode(self::PERIODIC_NOTIFICATIONS)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
<?php
|
||||
debug($summary);
|
Loading…
Reference in New Issue