You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/Models/Group.php
+8-34Lines changed: 8 additions & 34 deletions
Original file line number
Diff line number
Diff line change
@@ -99,61 +99,35 @@ public function syncModulePermissions($id_module, $permessi)
99
99
$default_views = $database->fetchArray('SELECT `id` FROM `zz_views` WHERE `id_module`='.prepare($id_module).' AND `default` = 1');
100
100
101
101
foreach ($default_viewsas$view) {
102
-
// Controlla se il gruppo ha già accesso a questa vista specifica
103
-
$has_view_access = $database->fetchArray('SELECT COUNT(*) as cont FROM `zz_group_view` WHERE `id_gruppo` = '.prepare($this->id).' AND `id_vista` = '.prepare($view['id']))['cont'];
104
-
105
-
if ($has_view_access == 0) {
106
-
$database->insert('zz_group_view', [
107
-
'id_gruppo' => $this->id,
108
-
'id_vista' => $view['id'],
109
-
]);
110
-
}
102
+
// Usa INSERT IGNORE per evitare errori di duplicazione
103
+
$database->query('INSERT IGNORE INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES ('.prepare($this->id).', '.prepare($view['id']).')');
111
104
}
112
105
113
106
// Se non ci sono viste predefinite, aggiungi il gruppo a tutte le viste del modulo
114
107
if (empty($default_views)) {
115
108
$all_views = $database->fetchArray('SELECT `id` FROM `zz_views` WHERE `id_module`='.prepare($id_module).' ORDER BY `order` ASC');
116
109
117
110
foreach ($all_viewsas$view) {
118
-
$has_view_access = $database->fetchArray('SELECT COUNT(*) as cont FROM `zz_group_view` WHERE `id_gruppo` = '.prepare($this->id).' AND `id_vista` = '.prepare($view['id']))['cont'];
119
-
120
-
if ($has_view_access == 0) {
121
-
$database->insert('zz_group_view', [
122
-
'id_gruppo' => $this->id,
123
-
'id_vista' => $view['id'],
124
-
]);
125
-
}
111
+
// Usa INSERT IGNORE per evitare errori di duplicazione
112
+
$database->query('INSERT IGNORE INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES ('.prepare($this->id).', '.prepare($view['id']).')');
126
113
}
127
114
}
128
115
129
116
// Aggiungi accesso ai segmenti predefiniti se non ce l'ha già
130
117
$default_segments = $database->fetchArray('SELECT `id` FROM `zz_segments` WHERE `id_module`='.prepare($id_module).' AND `predefined` = 1');
131
118
132
119
foreach ($default_segmentsas$segment) {
133
-
// Controlla se il gruppo ha già accesso a questo segmento specifico
134
-
$has_segment_access = $database->fetchArray('SELECT COUNT(*) as cont FROM `zz_group_segment` WHERE `id_gruppo` = '.prepare($this->id).' AND `id_segment` = '.prepare($segment['id']))['cont'];
135
-
136
-
if ($has_segment_access == 0) {
137
-
$database->insert('zz_group_segment', [
138
-
'id_gruppo' => $this->id,
139
-
'id_segment' => $segment['id'],
140
-
]);
141
-
}
120
+
// Usa INSERT IGNORE per evitare errori di duplicazione
121
+
$database->query('INSERT IGNORE INTO `zz_group_segment` (`id_gruppo`, `id_segment`) VALUES ('.prepare($this->id).', '.prepare($segment['id']).')');
142
122
}
143
123
144
124
// Se non ci sono segmenti predefiniti, aggiungi il gruppo ad almeno un segmento (il primo disponibile)
145
125
if (empty($default_segments)) {
146
126
$first_segment = $database->fetchArray('SELECT `id` FROM `zz_segments` WHERE `id_module`='.prepare($id_module).' ORDER BY `id` ASC LIMIT 1');
147
127
148
128
if (!empty($first_segment)) {
149
-
$has_segment_access = $database->fetchArray('SELECT COUNT(*) as cont FROM `zz_group_segment` WHERE `id_gruppo` = '.prepare($this->id).' AND `id_segment` = '.prepare($first_segment[0]['id']))['cont'];
150
-
151
-
if ($has_segment_access == 0) {
152
-
$database->insert('zz_group_segment', [
153
-
'id_gruppo' => $this->id,
154
-
'id_segment' => $first_segment[0]['id'],
155
-
]);
156
-
}
129
+
// Usa INSERT IGNORE per evitare errori di duplicazione
130
+
$database->query('INSERT IGNORE INTO `zz_group_segment` (`id_gruppo`, `id_segment`) VALUES ('.prepare($this->id).', '.prepare($first_segment[0]['id']).')');
0 commit comments