<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi David,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Excellent!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">I had a bit of a look at this last night - and was trying to get my head round what was newer code, what was older code, and whether
 anything needed to be elevated into the handler / new methods. It looks like what you've got is all good!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">One thought about the mediation (with a bit of a GDPR / allow the minimum access needed to do what needs to be done hat on), would
 it make sense to allow a finer-grained mediate rule e.g. <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&#43;user/mediate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #allow mediation of any user<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&#43;user/mediate/bob&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #allow mediation of user 'bob'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Or possibly<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&#43;user/mediate/username/bob&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #allow mediation of user 'bob'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&#43;user/mediate/usertype/editor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #allow mediation of editor users<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">I haven't read the SWORD specs on a while - and don't know whether this is allowed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">I think this is an extension of the current functionality - and possibly should be treated as an enhancement.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">John<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk]
<b>On Behalf Of </b>Newman D.R. via Eprints-tech<br>
<b>Sent:</b> 07 January 2019 17:36<br>
<b>To:</b> eprints-tech@ecs.soton.ac.uk; John Salter &lt;J.Salter@leeds.ac.uk&gt;; Fran Callaghan &lt;fran.callaghan@dcu.ie&gt;<br>
<b>Subject:</b> Re: [EP-tech] Error whilst depositing via SWORD<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">Hi John / Fran,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">I believe I have made the appropriate tweaks needed in EPrints 3.4's perl_lib/EPrints/Apache/CRUD.pm and this seems to fix the issue from my testing. &nbsp;You will need to set an extra role for the user that is going to submit &quot;on behalf of&quot;
 other users. &nbsp;This permission is:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;user/mediate<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">I will endeavour to post the updated version to GitHub soon, assuming it is not too different to the version I was working against. &nbsp;However, if you want to make the changes yourself, there are only three places in CRUD.pm that need fixed
 (see below). &nbsp;I am assuming this is on a development instance you are working on, as I would not be 100% confident this will not have any side effects. &nbsp;John thoughts?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Regards<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">David Newman<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"># 1.&nbsp;sub&nbsp;handler<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>my( $rc, $owner ) = on_behalf_of( $repo, $r, $user );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>my( $rc, $owner ) = $self-&gt;on_behalf_of( $user );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"># 2. sub on_behalf_of<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>my( $repo, $r, $user ) = @_;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>my( $self, $user ) = @_;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>my $err = {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>status =&gt; HTTP_FORBIDDEN,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>href =&gt; &quot;<a href="https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpurl.org%2Fnet%2Fsword%2Ferror%2FTargetOwnerUnknown&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=C%2B%2BIx5CuqvgkNoSTj3cro5gfo5YMKmtCdK9OtchMwcc%3D&amp;reserved=0" originalSrc="http://purl.org/net/sword/error/TargetOwnerUnknown" shash="OCCYiT9XZdM0ZpKdjkCBJOA6EIrLnRBtl7gyf4DF8aQRK/Z/EHDRRMcn8vNTpWfvhiT0nFOpLuyX7JrJC7nPJhdLXQnk5Ennn0bGpC602RTIfyH0iIKsT/4o6QYZwU/M1J2Z5FpdnzFUYLCOafb6Hypk2PZOO4lwWDwcCVpuZsk=">http://purl.org/net/sword/error/TargetOwnerUnknown</a>&quot;,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>summary =&gt; &quot;Target user unknown or no permission to act on-behalf-of&quot;,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>};<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>my $r = $self-&gt;request;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43; &nbsp; &nbsp; &nbsp; my $repo = $self-&gt;repository;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>my $on_behalf_of =<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>$r-&gt;headers_in-&gt;{'On-Behalf-Of'} || # SWORD 2.0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">$r-&gt;headers_in-&gt;{'X-On-Behalf-Of'}; # SWORD 1.3<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return( OK, $user ) if !$on_behalf_of;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>my $owner = $repo-&gt;user_by_username( $on_behalf_of );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>return sword_error($repo, $r, %$err )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>return ( HTTP_FORBIDDEN, undef )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>if !defined $owner;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>return sword_error($repo, $r, %$err )&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>return ( HTTP_FORBIDDEN, undef )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>if !$user-&gt;allow( &quot;user/mediate&quot;, $owner );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>return( OK, $owner );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"># 3. sub servicedocument<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>my $user = $repo-&gt;current_user;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>EPrints-&gt;abort( &quot;unprotected&quot; ) if !defined $user; # Rewrite foobar<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>my $on_behalf_of = on_behalf_of( $repo, $r, $user );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>if( $on_behalf_of-&gt;{status} != OK )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>my ( $status, $on_behalf_of ) = $self-&gt;on_behalf_of( $user );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>if( $status != OK )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>{<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>return sword_error( $repo, $r, %$on_behalf_of );<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>return $self-&gt;sword_error(&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>status =&gt; HTTP_FORBIDDEN,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>href =&gt; &quot;<a href="https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpurl.org%2Fnet%2Fsword%2Ferror%2FTargetOwnerUnknown&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=C%2B%2BIx5CuqvgkNoSTj3cro5gfo5YMKmtCdK9OtchMwcc%3D&amp;reserved=0" originalSrc="http://purl.org/net/sword/error/TargetOwnerUnknown" shash="OCCYiT9XZdM0ZpKdjkCBJOA6EIrLnRBtl7gyf4DF8aQRK/Z/EHDRRMcn8vNTpWfvhiT0nFOpLuyX7JrJC7nPJhdLXQnk5Ennn0bGpC602RTIfyH0iIKsT/4o6QYZwU/M1J2Z5FpdnzFUYLCOafb6Hypk2PZOO4lwWDwcCVpuZsk=">http://purl.org/net/sword/error/TargetOwnerUnknown</a>&quot;,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;summary =&gt; &quot;Target user unknown or no permission to act on-behalf-of&quot;,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&#43;<span class="apple-tab-span"> </span>);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<span class="apple-tab-span"> </span>}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-<span class="apple-tab-span"> </span>$on_behalf_of = $on_behalf_of-&gt;{on_behalf_of};<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">On Mon, 2019-01-07 at 16:30 &#43;0000, John Salter via Eprints-tech wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Hi Fran,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">It would depend on the CRIS system, and local policy: is knowing who the depositing author is from within EPrints important?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">You could create a 'CRIS' account - and all deposits would be made by this account (if the CRIS system allows this).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I think both the Pure and the Symplectic connectors can do something similar to this - so it might be worth pursuing.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">If I get a chance I'll take a look at the module tonight.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Would you be in a position to test a proposed update to the file this week?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">John<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">From: <a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">
eprints-tech-bounces@ecs.soton.ac.uk</a> [<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">mailto:eprints-tech-bounces@ecs.soton.ac.uk</a>] On Behalf Of Fran Callaghan via Eprints-tech<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Sent: 07 January 2019 16:08<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">To: <a href="mailto:eprints-tech@ecs.soton.ac.uk">eprints-tech@ecs.soton.ac.uk</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Subject: Re: [EP-tech] Error whilst depositing via SWORD<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hi John,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">The depositing system is our CRIS. Would this make sense in so far as it would be making deposits &quot;on behalf of&quot; genuine researchers? Does the depositing system need to make this explicit in the first place? Can't it just deposit with a
 different author name?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Fran Callaghan<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">On Mon, 7 Jan 2019 at 15:38, John Salter &lt;<a href="mailto:J.Salter@leeds.ac.uk">J.Salter@leeds.ac.uk</a>&gt; wrote:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hi Fran,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Taking a quick look at the code, I think the issue is that in the CRUD module, there are a couple of instances where the 'sword_error' is called as a raw function , rather than an object method e.g.:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Normal working:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprints%2Feprints%2Fblob%2F3.3%2Fperl_lib%2FEPrints%2FApache%2FCRUD.pm%23L432-L436&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=07umxh%2BlWvGE32mK%2FvdMS6AYaFtCAXVfwCXgPBYADgM%3D&amp;reserved=0" originalSrc="https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L432-L436" shash="bGTONieGhAIWCksXqtGN66cs+l2il08HssOzVEZgc77xBLDlR1QWNJt9ZoEzbhhuthjzfKMEnOfjhg4WJ/O9NyDFnQhQPAU7ObJDFKmK6ISz/FQZX9Z+EAUFdLvDs2vYQdFgiGV2z7hr3E4eiW/51dH9lUrgZQURBBDwlN8lgdU=">https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L432-L436</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Function call in servicedocument function:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprints%2Feprints%2Fblob%2F3.3%2Fperl_lib%2FEPrints%2FApache%2FCRUD.pm%23L1742-L1745&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=wUHog6%2BYmOybqzBr9fO3WHgGsB2vJ%2BRIU4zYrF7LnH8%3D&amp;reserved=0" originalSrc="https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L1742-L1745" shash="P/Lx32u05DNAVpbmm+jEK0yRd+R8ezhAuZU8O61zaDVRdpPk+ZX3k4WQFLtWMoUzLkKrUWZuubEqHFvnASh8S3QphdXu19aVbr6KZbFS1lb82qmBpuVbIvT2siIQ7kblFs4O4IMydtHaiahaovWmQBMepsLjG9E3O1rOaM0ipZU=">https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L1742-L1745</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">and 'on_behalf_of' function:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprints%2Feprints%2Fblob%2F3.3%2Fperl_lib%2FEPrints%2FApache%2FCRUD.pm%23L1838-L1862&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=TV5nmDhCbgaUqzilsT28CkXA3I5iYaq8m6sD0cQWzYQ%3D&amp;reserved=0" originalSrc="https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L1838-L1862" shash="GF2UYawI7UzQMtKrKxBv1Mu5BRDB3zEdgN5JHR2IeBR76235kyflNuQ69BNDgMkrhskxaUpr8psoBiRQEhzHPLcy3LqADgfjOrwe+qz/h6Pw/OS9OITj+kl8YuR8ssiugb09JwSST2OfK1ZhpSyn9WSowZ0agY0U30+8llN92wY=">https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Apache/CRUD.pm#L1838-L1862</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">This issue will only become apparent when you're doing a SWORD deposit using the 'on-behalf-of' header.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I think it may have been present for ~7 years, when the first line of the sword_error function was changed from<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">my( $repo, $r, %opts ) = @_;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">to<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">my( $self, %opts ) = @_;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I think it's more than a 5-minute job to fix properly - I need to get into the code a bit more to understand what was changed - and how to resolve it.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I'll log it in GitHub and let you know try and come up with a solution - unless anyone else fancies having a&nbsp; go..?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">John<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">From: <a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">
eprints-tech-bounces@ecs.soton.ac.uk</a> [<a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk">mailto:eprints-tech-bounces@ecs.soton.ac.uk</a>] On Behalf Of Fran Callaghan via Eprints-tech<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Sent: 07 January 2019 14:50<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">To: <a href="mailto:eprints-tech@ecs.soton.ac.uk">eprints-tech@ecs.soton.ac.uk</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Subject: [EP-tech] Error whilst depositing via SWORD<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hi All,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">We have a third party depositing via SWORD. They're getting a generic 500 message back but when I lookup the error_log corresponding to the time of the test I can see this message...<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">[Mon Jan 07 13:46:18.179171 2019] [perl:error] [pid 10713] [client X.X.X.X] Can't locate object method &quot;repository&quot; via package &quot;EPrints::Repository&quot; at /opt/eprints3/perl_lib/EPrints/Apache/CRUD.pm line 1977.\n<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Any ideas what's wrong with CRUD.pm? Or is it a problem with the syntax of the deposit? I had expected SWORD to be pretty much plug and play (actually not even 'plug' since the documentation says it is configured by default).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">**NOTE: I have X'd out the client IP address, it's a genuine IP in the original message<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Fran Callaghan<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Séanadh Ríomhphoist/Email Disclaimer<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Tá an ríomhphost seo agus aon chomhad a sheoltar leis faoi rún agus is lena úsáid ag an seolaí agus sin amháin é. Is féidir tuilleadh a léamh anseo.&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">This e-mail and any files transmitted with it are confidential and are intended solely for use by the addressee. Read more here.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Séanadh Ríomhphoist/Email Disclaimer<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Tá an ríomhphost seo agus aon chomhad a sheoltar leis faoi rún agus is lena úsáid ag an seolaí agus sin amháin é. Is féidir tuilleadh a léamh anseo.&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">This e-mail and any files transmitted with it are confidential and are intended solely for use by the addressee. Read more here.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech">
http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">*** Archive: <a href="https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.eprints.org%2Ftech.php%2F&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=sIIs39rwum1No5w6O80e%2BXt95fUBvOieueG2Lcc%2FJFE%3D&amp;reserved=0" originalSrc="http://www.eprints.org/tech.php/" shash="gH1y7dmmGa16GIuCcpChSnum4Lga4u7maP+T0ppfKM5EyTBXelaeCge6y7WGuIudE9iNiIdRcz3Vp1SOZSy20JkKKJI1xUJEBAcGbHEWRSrBiBATXLFd8PV/PJI2JC5FPO81AAszF+annJbRMPkSoszjc8zpumENd5ie/bkVznI=">
http://www.eprints.org/tech.php/</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">*** EPrints community wiki: <a href="https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki.eprints.org%2F&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=aaUoRvGK9JP0JNOZ%2FNnFPbNyya4UvE%2BcxMF5xTL6L0o%3D&amp;reserved=0" originalSrc="http://wiki.eprints.org/" shash="EXALNu8/ugemHTeRDrmN99M107h7UvSdveWEIuSejkOM73jjA4Y+HpnXOgIE2wGaSVZlaY8q83keuWSg+ww7o9/7baLrsoDWJXlamsdwyfOnFlXEGz8DvN+TWUy1dwEronNmFhYUqf9tTw+2zHb3URk9Jjb2xpMQoEctbO36A94=">
http://wiki.eprints.org/</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">*** EPrints developers Forum: <a href="https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fforum.eprints.org%2F&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C365a7adae77f489602ec08d67550bc86%7C4a5378f929f44d3ebe89669d03ada9d8%7C1&amp;sdata=xWvIN5iczjXDgbJahTAQLUDk%2B3xZydxIGC3GU0QxH2w%3D&amp;reserved=0" originalSrc="http://forum.eprints.org/" shash="c8eYGeQDxC0Z+kIl9WTQ33NGOZNIoJ4A6BwP2tQIz0kbVqTYuWiZXGxYYDGV/KRosDpbwihy5s55LrU05xWhK4NEdSfcsU/LoRmjQvH660ZDe3TX4glN387Zb/XlS2qSHvCvlV2ZE1hWmdjzd1R31OPmvXYWd7BQYNLFNyhe8F8=">
http://forum.eprints.org/</a><o:p></o:p></p>
</div>
</blockquote>
</div>
</body>
</html>