keepemailunverified parameter: email is passed even if unverified

This commit is contained in:
Alexei Karpenko
2025-11-07 00:51:07 +01:00
parent 1ac9c9b6cb
commit 5678c18619
4 changed files with 53 additions and 17 deletions
@@ -111,16 +111,28 @@ class Student extends FHCAPI_Controller
if (defined('ACTIVE_ADDONS') && strpos(ACTIVE_ADDONS, 'bewerbung') !== false) { if (defined('ACTIVE_ADDONS') && strpos(ACTIVE_ADDONS, 'bewerbung') !== false) {
$this->PrestudentModel->addSelect( $this->PrestudentModel->addSelect(
"( "(
SELECT kontakt SELECT kontakt
FROM public.tbl_kontakt FROM public.tbl_kontakt
WHERE kontakttyp='email' WHERE kontakttyp='email'
AND person_id=p.person_id AND person_id=p.person_id
AND zustellung AND zustellung
ORDER BY kontakt_id ORDER BY kontakt_id
LIMIT 1 LIMIT 1
) AS email_privat", ) AS email_privat",
false false
); );
$this->PrestudentModel->addSelect(
"(
SELECT kontakt
FROM public.tbl_kontakt
WHERE kontakttyp='email_unverifiziert'
AND person_id=p.person_id
AND zustellung
ORDER BY kontakt_id
LIMIT 1
) AS email_privat_unverified",
false
);
} }
$this->PrestudentModel->addSelect( $this->PrestudentModel->addSelect(
"( "(
@@ -106,6 +106,7 @@
<tbody> <tbody>
<?php <?php
$lastMailAdress = ''; $lastMailAdress = '';
$lastUnverifiedMailAdress = '';
foreach ($stammdaten->kontakte as $kontakt): ?> foreach ($stammdaten->kontakte as $kontakt): ?>
<tr> <tr>
<?php if ($kontakt->kontakttyp === 'email'): ?> <?php if ($kontakt->kontakttyp === 'email'): ?>
@@ -119,14 +120,16 @@
<?php echo '<span class="kontakt '.$kontakt->kontakttyp.'" data-id="'. $kontakt->kontakt_id .'" data-value="' . $kontakt->kontakt .'">';?> <?php echo '<span class="kontakt '.$kontakt->kontakttyp.'" data-id="'. $kontakt->kontakt_id .'" data-value="' . $kontakt->kontakt .'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?> <?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top"> <a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php $lastMailAdress = $kontakt->kontakt; <?php $lastMailAdress = $kontakt->kontakt; ?>
<?php elseif ($kontakt->kontakttyp === 'email_unverifiziert'): ?>
<?php $lastUnverifiedMailAdress = $kontakt->kontakt;
endif; endif;
echo $kontakt->kontakt; echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'): if ($kontakt->kontakttyp === 'email'):
?> ?>
</a> </a>
<?php endif; ?> <?php endif; ?>
<?php echo '</span>'?> <?php echo '</span>'?>
</td> </td>
<td><?php echo $kontakt->anmerkung; ?></td> <td><?php echo $kontakt->anmerkung; ?></td>
</tr> </tr>
@@ -140,9 +143,9 @@
<?php if (isset($adresse)): ?> <?php if (isset($adresse)): ?>
<div class="row adresse col-sm-12" data-id="<?php echo $adresse->adresse_id ?>"> <div class="row adresse col-sm-12" data-id="<?php echo $adresse->adresse_id ?>">
<div class="float-left" data-value="<?php echo $adresse->strasse ?>" data-type="strasse"><?php echo $adresse->strasse ?></div> <div class="float-left" data-value="<?php echo $adresse->strasse ?>" data-type="strasse"><?php echo $adresse->strasse ?></div>
<div class="float-left" data-value="<?php echo $adresse->plz ?>" data-type="plz"><?php echo $adresse->plz ?></div> <div class="float-left" data-value="<?php echo $adresse->plz ?>" data-type="plz"><?php echo $adresse->plz ?></div>
<div class="float-left" data-value="<?php echo $adresse->ort ?>" data-type="ort"><?php echo $adresse->ort ?></div> <div class="float-left" data-value="<?php echo $adresse->ort ?>" data-type="ort"><?php echo $adresse->ort ?></div>
<?php if (isset($adresse->nationkurztext)): ?> <?php if (isset($adresse->nationkurztext)): ?>
@@ -182,7 +185,8 @@
</div> </div>
<?php if (isset($stammdaten->zugangscode)): ?> <?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-xs-6 text-right"> <div class="col-xs-6 text-right">
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode).'&emailAdresse='.$lastMailAdress.'&keepEmailUnverified=true' ?>" <a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)
.'&emailAdresse='.(isEmptyString($lastMailAdress)?$lastUnverifiedMailAdress:$lastMailAdress).'&keepEmailUnverified=true' ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;<?php echo $this->p->t('infocenter','zugangBewerbung') ?></a> target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;<?php echo $this->p->t('infocenter','zugangBewerbung') ?></a>
</div> </div>
<?php endif; ?> <?php endif; ?>
@@ -186,7 +186,7 @@ export default {
<label>{{$p.t('global', 'zugangscode')}}</label> <label>{{$p.t('global', 'zugangscode')}}</label>
<div class="align-self-center"> <div class="align-self-center">
<span class="form-text"> <span class="form-text">
<a :href="cisRoot + 'addons/bewerbung/cis/registration.php?code=' + data.zugangscode + '&emailAdresse=' + data.email_privat + '&keepEmailUnverified=true'" target="_blank">{{data.zugangscode}}</a> <a :href="cisRoot + 'addons/bewerbung/cis/registration.php?code=' + data.zugangscode + '&emailAdresse=' + (data.email_privat == null ? data.email_privat_unverified : data.email_privat) + '&keepEmailUnverified=true'" target="_blank">{{data.zugangscode}}</a>
</span> </span>
</div> </div>
</div> </div>
+23 -3
View File
@@ -279,12 +279,32 @@ function draw_content($row)
$status=''; $status='';
$mail_privat = ''; $mail_privat = '';
$qry_mail = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=".$db->db_add_param($row->person_id)." AND zustellung=true ORDER BY kontakt_id DESC LIMIT 1"; $mail_unverifiziert = '';
$qry_mail = "
SELECT
DISTINCT ON (kontakttyp) kontakt, kontakttyp
FROM
public.tbl_kontakt
WHERE
zustellung=TRUE
AND kontakttyp IN ('email', 'email_unverifiziert')
AND person_id = ".$db->db_add_param($row->person_id)."
ORDER BY
kontakttyp, kontakt_id DESC";
if($db->db_query($qry_mail)) if($db->db_query($qry_mail))
{ {
if($row_mail = $db->db_fetch_object()) if($row_mail = $db->db_fetch_object())
{ {
$mail_privat = $row_mail->kontakt; if ($row_mail->kontakttyp == 'email')
{
$mail_privat = $row_mail->kontakt;
}
elseif ($row_mail->kontakttyp == 'email_unverifiziert')
{
$mail_unverifiziert = $row_mail->kontakt;
}
} }
} }
@@ -366,7 +386,7 @@ function draw_content($row)
<STUDENT:mail_privat><![CDATA['.$mail_privat.']]></STUDENT:mail_privat> <STUDENT:mail_privat><![CDATA['.$mail_privat.']]></STUDENT:mail_privat>
<STUDENT:mail_intern><![CDATA['.(isset($row->uid)?$row->uid.'@'.DOMAIN:'').']]></STUDENT:mail_intern> <STUDENT:mail_intern><![CDATA['.(isset($row->uid)?$row->uid.'@'.DOMAIN:'').']]></STUDENT:mail_intern>
<STUDENT:zugangscode><![CDATA['.$row->zugangscode.']]></STUDENT:zugangscode> <STUDENT:zugangscode><![CDATA['.$row->zugangscode.']]></STUDENT:zugangscode>
<STUDENT:link_bewerbungstool><![CDATA['.CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.$row->zugangscode.'&emailAdresse='.$mail_privat.'&keepEmailUnverified=true]]></STUDENT:link_bewerbungstool> <STUDENT:link_bewerbungstool><![CDATA['.CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.$row->zugangscode.'&emailAdresse='.($mail_privat == '' ? $mail_unverifiziert : $mail_privat).'&keepEmailUnverified=true]]></STUDENT:link_bewerbungstool>
<STUDENT:bpk><![CDATA['.$row->bpk.']]></STUDENT:bpk> <STUDENT:bpk><![CDATA['.$row->bpk.']]></STUDENT:bpk>
<STUDENT:aktiv><![CDATA['.$aktiv.']]></STUDENT:aktiv> <STUDENT:aktiv><![CDATA['.$aktiv.']]></STUDENT:aktiv>