Fix bad unique constraints in Mysql table user_has_notifications

This commit is contained in:
Frederic Guillot
2016-03-27 15:32:29 -04:00
parent 9ba44a01db
commit f11fccd0d7
6 changed files with 30 additions and 19 deletions

View File

@@ -117,23 +117,20 @@ class UserNotification extends Base
*/
public function saveSettings($user_id, array $values)
{
$this->db->startTransaction();
$types = empty($values['notification_types']) ? array() : array_keys($values['notification_types']);
if (isset($values['notifications_enabled']) && $values['notifications_enabled'] == 1) {
if (! empty($types)) {
$this->enableNotification($user_id);
$filter = empty($values['notifications_filter']) ? UserNotificationFilter::FILTER_BOTH : $values['notifications_filter'];
$projects = empty($values['notification_projects']) ? array() : array_keys($values['notification_projects']);
$types = empty($values['notification_types']) ? array() : array_keys($values['notification_types']);
$this->userNotificationFilter->saveFilter($user_id, $filter);
$this->userNotificationFilter->saveSelectedProjects($user_id, $projects);
$this->userNotificationType->saveSelectedTypes($user_id, $types);
} else {
$this->disableNotification($user_id);
}
$this->db->closeTransaction();
$filter = empty($values['notifications_filter']) ? UserNotificationFilter::FILTER_BOTH : $values['notifications_filter'];
$project_ids = empty($values['notification_projects']) ? array() : array_keys($values['notification_projects']);
$this->userNotificationFilter->saveFilter($user_id, $filter);
$this->userNotificationFilter->saveSelectedProjects($user_id, $project_ids);
$this->userNotificationType->saveSelectedTypes($user_id, $types);
}
/**