|
10 | 10 | use App\Models\Location; |
11 | 11 | use App\Models\AssetModel; |
12 | 12 | use Illuminate\Database\Eloquent\Collection; |
| 13 | +use Illuminate\Contracts\Encryption\DecryptException; |
| 14 | +use Illuminate\Support\Facades\Crypt; |
13 | 15 |
|
14 | 16 | class ActionlogsTransformer |
15 | 17 | { |
@@ -69,9 +71,36 @@ public function transformActionlog (Actionlog $actionlog, $settings = null) |
69 | 71 |
|
70 | 72 | if ($custom_field->db_column == $fieldname) { |
71 | 73 |
|
72 | | - if ($custom_field->field_encrypted == '1') { |
73 | | - $clean_meta[$fieldname]['old'] = "************"; |
74 | | - $clean_meta[$fieldname]['new'] = "************"; |
| 74 | + if ($custom_field->field_encrypted == '1') { |
| 75 | + |
| 76 | + // Unset these fields. We need to decrypt them, since even if the decrypted value |
| 77 | + // didn't change, their value in the DB will, so we have to compare the unencrypted version |
| 78 | + // to see if the values actually did change |
| 79 | + unset($clean_meta[$fieldname]); |
| 80 | + unset($clean_meta[$fieldname]); |
| 81 | + |
| 82 | + $enc_old = ''; |
| 83 | + $enc_new = ''; |
| 84 | + |
| 85 | + try { |
| 86 | + $enc_old = \Crypt::decryptString($this->clean_field($fieldata->old)); |
| 87 | + } catch (\Exception $e) { |
| 88 | + \Log::debug('Could not decrypt field - maybe the key changed?'); |
| 89 | + } |
| 90 | + |
| 91 | + try { |
| 92 | + $enc_new = \Crypt::decryptString($this->clean_field($fieldata->new)); |
| 93 | + } catch (\Exception $e) { |
| 94 | + \Log::debug('Could not decrypt field - maybe the key changed?'); |
| 95 | + } |
| 96 | + |
| 97 | + if ($enc_old != $enc_new) { |
| 98 | + \Log::debug('custom fields do not match'); |
| 99 | + $clean_meta[$fieldname]['old'] = "************"; |
| 100 | + $clean_meta[$fieldname]['new'] = "************"; |
| 101 | + } |
| 102 | + |
| 103 | + |
75 | 104 | } |
76 | 105 |
|
77 | 106 | } |
@@ -178,15 +207,31 @@ public function changedInfo(array $clean_meta) |
178 | 207 |
|
179 | 208 |
|
180 | 209 | if(array_key_exists('rtd_location_id',$clean_meta)) { |
181 | | - $clean_meta['rtd_location_id']['old'] = $clean_meta['rtd_location_id']['old'] ? "[id: ".$clean_meta['rtd_location_id']['old']."] ". e($location->find($clean_meta['rtd_location_id']['old'])->name) : trans('general.unassigned'); |
182 | | - $clean_meta['rtd_location_id']['new'] = $clean_meta['rtd_location_id']['new'] ? "[id: ".$clean_meta['rtd_location_id']['new']."] ". e($location->find($clean_meta['rtd_location_id']['new'])->name) : trans('general.unassigned'); |
| 210 | + |
| 211 | + $oldRtd = $location->find($clean_meta['rtd_location_id']['old']); |
| 212 | + $oldRtdName = $oldRtd ? e($oldRtd->name) : trans('general.deleted'); |
| 213 | + |
| 214 | + $newRtd = $location->find($clean_meta['rtd_location_id']['new']); |
| 215 | + $newRtdName = $newRtd ? e($newRtd->name) : trans('general.deleted'); |
| 216 | + |
| 217 | + $clean_meta['rtd_location_id']['old'] = $clean_meta['rtd_location_id']['old'] ? "[id: ".$clean_meta['rtd_location_id']['old']."] ". $oldRtdName : 'foo'; |
| 218 | + $clean_meta['rtd_location_id']['new'] = $clean_meta['rtd_location_id']['new'] ? "[id: ".$clean_meta['rtd_location_id']['new']."] ". $newRtdName : trans('general.unassigned'); |
183 | 219 | $clean_meta['Default Location'] = $clean_meta['rtd_location_id']; |
184 | 220 | unset($clean_meta['rtd_location_id']); |
185 | 221 | } |
186 | 222 |
|
| 223 | + |
187 | 224 | if (array_key_exists('location_id', $clean_meta)) { |
188 | | - $clean_meta['location_id']['old'] = $clean_meta['location_id']['old'] ? "[id: ".$clean_meta['location_id']['old']."] ".e($location->find($clean_meta['location_id']['old'])->name): trans('general.unassigned'); |
189 | | - $clean_meta['location_id']['new'] = $clean_meta['location_id']['new'] ? "[id: ".$clean_meta['location_id']['new']."] ".e($location->find($clean_meta['location_id']['new'])->name) : trans('general.unassigned'); |
| 225 | + |
| 226 | + $oldLocation = $location->find($clean_meta['location_id']['old']); |
| 227 | + $oldLocationName = $oldLocation ? e($oldLocation->name) : trans('general.deleted'); |
| 228 | + |
| 229 | + $newLocation = $location->find($clean_meta['location_id']['new']); |
| 230 | + $newLocationName = $newLocation ? e($newLocation->name) : trans('general.deleted'); |
| 231 | + |
| 232 | + |
| 233 | + $clean_meta['location_id']['old'] = $clean_meta['location_id']['old'] ? "[id: ".$clean_meta['location_id']['old']."] ". $oldLocationName : trans('general.deleted'); |
| 234 | + $clean_meta['location_id']['new'] = $clean_meta['location_id']['new'] ? "[id: ".$clean_meta['location_id']['new']."] ". $newLocationName : trans('general.unassigned'); |
190 | 235 | $clean_meta['Current Location'] = $clean_meta['location_id']; |
191 | 236 | unset($clean_meta['location_id']); |
192 | 237 | } |
|
0 commit comments