Encryption is optional (but on by default) and a command to switch from one to the other

This commit is contained in:
James Cole
2017-01-14 17:13:57 +01:00
parent 30bc4ccfa7
commit 5bbaaece38
10 changed files with 94 additions and 19 deletions

View File

@@ -85,7 +85,7 @@ class Account extends Model
foreach ($search as $name => $value) {
$query->where($name, $value);
}
$set = $query->get(['accounts.*']);
$set = $query->get(['accounts.*']);
// account must have a name. If not set, use IBAN.
if (!isset($fields['name'])) {
@@ -93,7 +93,6 @@ class Account extends Model
}
/** @var Account $account */
foreach ($set as $account) {
if ($account->name == $fields['name']) {
@@ -316,8 +315,9 @@ class Account extends Model
*/
public function setNameAttribute($value)
{
$this->attributes['name'] = $value;
$this->attributes['encrypted'] = false;
$encrypt = config('firefly.encryption');
$this->attributes['name'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['encrypted'] = $encrypt;
}
/**

View File

@@ -35,7 +35,7 @@ class Bill extends Model
* @var array
*/
protected $casts
= [
= [
'created_at' => 'date',
'updated_at' => 'date',
'deleted_at' => 'date',
@@ -47,7 +47,7 @@ class Bill extends Model
'match_encrypted' => 'boolean',
];
/** @var array */
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
protected $fillable
= ['name', 'match', 'amount_min', 'match_encrypted', 'name_encrypted', 'user_id', 'amount_max', 'date', 'repeat_freq', 'skip',
'automatch', 'active',];
@@ -120,8 +120,9 @@ class Bill extends Model
*/
public function setMatchAttribute($value)
{
$this->attributes['match'] = Crypt::encrypt($value);
$this->attributes['match_encrypted'] = true;
$encrypt = config('firefly.encryption');
$this->attributes['match'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['match_encrypted'] = $encrypt;
}
/**
@@ -129,8 +130,9 @@ class Bill extends Model
*/
public function setNameAttribute($value)
{
$this->attributes['name'] = Crypt::encrypt($value);
$this->attributes['name_encrypted'] = true;
$encrypt = config('firefly.encryption');
$this->attributes['name'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['name_encrypted'] = $encrypt;
}
/**

View File

@@ -121,8 +121,9 @@ class Budget extends Model
*/
public function setNameAttribute($value)
{
$this->attributes['name'] = $value;
$this->attributes['encrypted'] = false;
$encrypt = config('firefly.encryption');
$this->attributes['name'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['encrypted'] = $encrypt;
}
/**

View File

@@ -115,8 +115,9 @@ class Category extends Model
*/
public function setNameAttribute($value)
{
$this->attributes['name'] = $value;
$this->attributes['encrypted'] = false;
$encrypt = config('firefly.encryption');
$this->attributes['name'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['encrypted'] = $encrypt;
}
/**

View File

@@ -159,8 +159,9 @@ class PiggyBank extends Model
*/
public function setNameAttribute($value)
{
$this->attributes['name'] = $value;
$this->attributes['encrypted'] = false;
$encrypt = config('firefly.encryption');
$this->attributes['name'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['encrypted'] = $encrypt;
}
/**

View File

@@ -371,8 +371,9 @@ class TransactionJournal extends TransactionJournalSupport
*/
public function setDescriptionAttribute($value)
{
$this->attributes['description'] = $value;
$this->attributes['encrypted'] = false;
$encrypt = config('firefly.encryption');
$this->attributes['description'] = $encrypt ? Crypt::encrypt($value) : $value;
$this->attributes['encrypted'] = $encrypt;
}
/**