Created a membership approval token repository and required token table & model
This commit is contained in:
53
src/Repository/OrganisationMembershipApprovalRepository.php
Normal file
53
src/Repository/OrganisationMembershipApprovalRepository.php
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user