public function SocialGroupInviteConfigOverride::validateInviteData in Open Social 10.1.x
Same name and namespace in other branches
- 10.3.x modules/social_features/social_group/modules/social_group_invite/src/SocialGroupInviteConfigOverride.php \Drupal\social_group_invite\SocialGroupInviteConfigOverride::validateInviteData()
- 10.2.x modules/social_features/social_group/modules/social_group_invite/src/SocialGroupInviteConfigOverride.php \Drupal\social_group_invite\SocialGroupInviteConfigOverride::validateInviteData()
Validate invite data.
Parameters
string $invitee_mail: Encoded email address of invited user.
string $destination: The url of invited group.
Return value
bool TRUE if invited data is valid.
1 call to SocialGroupInviteConfigOverride::validateInviteData()
- SocialGroupInviteConfigOverride::loadOverrides in modules/
social_features/ social_group/ modules/ social_group_invite/ src/ SocialGroupInviteConfigOverride.php - Load overrides.
File
- modules/
social_features/ social_group/ modules/ social_group_invite/ src/ SocialGroupInviteConfigOverride.php, line 119
Class
- SocialGroupInviteConfigOverride
- Provides an overridden elements.
Namespace
Drupal\social_group_inviteCode
public function validateInviteData($invitee_mail, $destination) {
if (empty($invitee_mail) || empty($destination)) {
return FALSE;
}
// Get decoded email of invited user from params.
$invitee_mail = base64_decode(str_replace([
'-',
'_',
], [
'+',
'/',
], $invitee_mail));
if (!$this->emailValidator
->isValid($invitee_mail)) {
return FALSE;
}
// Get group id to which user was invited from params.
preg_match('/\\/social-group-invite\\/(\\d+)+\\/accept/', $destination, $matches);
$entity_id = array_pop($matches);
if (empty($entity_id) || !is_numeric($entity_id)) {
return FALSE;
}
// Verify is it really was requested invite and it still is actual.
$query = $this->database
->select('group_content__invitee_mail', 'gcim');
$query
->fields('gcim', [
'entity_id',
]);
$query
->condition('gcim.invitee_mail_value', $invitee_mail);
$query
->condition('gcim.entity_id', $entity_id);
$query
->join('group_content__invitation_status', 'gcis', 'gcim.entity_id = gcis.entity_id');
$query
->condition('gcis.invitation_status_value', '0');
$invitations = $query
->execute()
->fetchField();
if (empty($invitations)) {
return FALSE;
}
else {
return TRUE;
}
}