Wulf, please, can you add hook in Signage::UpdateSign method in new oxide update 17 dec ?
public void UpdateSign(BaseEntity.RPCMessage msg)
{
// ...
    if ((msg.read.Unread <= 0 ? false : msg.read.Bit()) && !msg.player.IsAdmin)
    {
        // hook checking can player upload image to sign
        // override default NULL result to ignore this lines:
        Debug.LogWarning(string.Format("{0} tried to upload a sign from a file but they aren't admin, ignoring", msg.player));
        return;
    }​
// ...
}