Created a membership approval token repository and required token table & model

This commit is contained in:
2022-02-15 16:36:54 +00:00
parent 6039574d79
commit 8d762c5dca
5 changed files with 322 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
<?php
/*
* AVSDev UF Organisations (https://avsdev.uk)
*
* @link https://git.avsdev.uk/avsdev/sprinkle-organisations
* @license https://git.avsdev.uk/avsdev/sprinkle-organisations/blob/master/LICENSE.md (LGPL-3.0 License)
*/
namespace UserFrosting\Sprinkle\Organisations\Repository;
use UserFrosting\Sprinkle\Core\Util\ClassMapper;
/**
* Token repository organisation membership join requests.
*
* @author Craig Williams (https://avsdev.uk)
*/
class OrganisationMembershipApprovalRepository extends BasicTokenRepository
{
/**
* {@inheritdoc}
*/
protected $modelIdentifier = 'organisation_membership_approval';
/**
* {@inheritdoc}
*/
protected function updateTokenOwner($owner_id, $model, $args)
{
$memberMap = $this->classMapper->getClassMapping('organisation_member')::findUnique($owner_id, 'map_id', false);
if (!$memberMap) {
return false;
}
// If specified, recored the approver. This assumes the model has an approver_id field which it may not...
if ($args['approver_id']) {
$model->approver_id = $args['approver_id'];
}
if ($args['approved']) {
// Mark the request as approved
$memberMap->flag_approved = true;
$memberMap->save();
} else {
// Delete the request
$memberMap->delete();
}
return true;
}
}