Skip to content

Commit 4a676c4

Browse files
Add project member relationship and fallback model.
1 parent 4c44241 commit 4a676c4

3 files changed

Lines changed: 32 additions & 0 deletions

File tree

‎ProcessMaker/Models/EmpyModel.php‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace ProcessMaker\Models;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
7+
class EmpyModel extends Model
8+
{
9+
// This model doesn't have any specific properties or table associated with it.
10+
}

‎ProcessMaker/Models/Group.php‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace ProcessMaker\Models;
44

55
use Illuminate\Validation\Rule;
6+
use ProcessMaker\Models\EmptyModel;
67
use ProcessMaker\Query\Traits\PMQL;
78
use ProcessMaker\Traits\Exportable;
89
use ProcessMaker\Traits\SerializeToIso8601;
@@ -98,6 +99,16 @@ public function manager()
9899
return $this->belongsTo(User::class, 'manager_id');
99100
}
100101

102+
public function projectMembers()
103+
{
104+
if (class_exists('ProcessMaker\Package\Projects\Models\ProjectMember')) {
105+
return $this->hasMany('ProcessMaker\Package\Projects\Models\ProjectMember', 'member_id', 'id')->where('member_type', self::class);
106+
} else {
107+
// Handle the case where the ProjectMember class doesn't exist.
108+
return $this->hasMany(EmptyModel::class);
109+
}
110+
}
111+
101112
public function getRecursiveUsersAttribute(self $parent = null)
102113
{
103114
// Parent is used to determine the top level group in order to prevent

‎ProcessMaker/Models/User.php‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Notifications\Notifiable;
99
use Illuminate\Validation\Rule;
1010
use Laravel\Passport\HasApiTokens;
11+
use ProcessMaker\Models\EmptyModel;
1112
use ProcessMaker\Notifications\ResetPassword as ResetPasswordNotification;
1213
use ProcessMaker\Query\Traits\PMQL;
1314
use ProcessMaker\Rules\StringHasAtLeastOneUpperCaseCharacter;
@@ -255,6 +256,16 @@ public function groups()
255256
return $this->morphToMany('ProcessMaker\Models\Group', 'member', 'group_members');
256257
}
257258

259+
public function projectMembers()
260+
{
261+
if (class_exists('ProcessMaker\Package\Projects\Models\ProjectMember')) {
262+
return $this->hasMany('ProcessMaker\Package\Projects\Models\ProjectMember', 'member_id', 'id')->where('member_type', self::class);
263+
} else {
264+
// Handle the case where the ProjectMember class doesn't exist.
265+
return $this->hasMany(EmptyModel::class);
266+
}
267+
}
268+
258269
public function permissions()
259270
{
260271
return $this->morphToMany('ProcessMaker\Models\Permission', 'assignable');

0 commit comments

Comments
 (0)