The trigger to find eprint records that need updated when a user connects/disconnects is wrong as it will match parts of the creators ID (e.g. email address) and not the whole ID. This is a big problem if email addresses are used as creators ID as many may be for the same domain, so any eprint with a creators ID wthe an email address on the same domain will match. In fact they may even match on the parts of the domain (e.g. 'edu').
|
$search_exp->add_field( |
|
fields => [ $ds->field( $role.'_id' ) ], |
|
value => $email, |
|
); |
The search expression should use EX so it only matches exactly:
$search_exp->add_field(
fields => [ $ds->field( 'creators_id' ) ],
value => $email,
match => 'EX',
);
The trigger to find eprint records that need updated when a user connects/disconnects is wrong as it will match parts of the creators ID (e.g. email address) and not the whole ID. This is a big problem if email addresses are used as creators ID as many may be for the same domain, so any eprint with a creators ID wthe an email address on the same domain will match. In fact they may even match on the parts of the domain (e.g. 'edu').
orcid_support_advance/cfg/cfg.d/z_orcid_support_advance.pl
Lines 461 to 464 in dd18186
The search expression should use
EXso it only matches exactly: