/** * Add user to this project * * @param User $user * @param Role $role * @param array $permissions * @return null */ function addUser($user, $role = null, $permissions = null) { $project_user = ProjectUsers::findById(array('user_id' => $user->getId(), 'project_id' => $this->getId())); if (!instance_of($project_user, 'ProjectUser')) { $project_user = new ProjectUser(); } // if $project_user->setUserId($user->getId()); $project_user->setProjectId($this->getId()); if (instance_of($role, 'Role')) { $project_user->setRoleId($role->getId()); $project_user->setPermissions(null); } else { $project_user->setRoleId(0); $project_user->setPermissions($permissions); } // if $save = $project_user->save(); if ($save && !is_error($save)) { clean_user_permissions_cache($user); event_trigger('on_project_user_added', array($this, $user, $role, $permissions)); return true; } else { return $save; } // if }