Esto lo puede hacer,
ya es mayor de edad. = He may do
it he is already of age. Esto no lo puede
hacer. = This he can't do it. / He
may not do it.
If you want to deny something to somebody in past
tense then you do it according to the English model.
We do not say He might not have
been there, when meaning that he was not allowed
to be there. Then we would say he
should not have been there (or he was not allowed
to be there, but this is another construction). So do
also the Spanish:
= He should not do it. (He was not allowed
to do it)
The logic is the same as discussed before. There was
actually no high degree of choice but he used just this
to do diffrerently than he should have done.
decírselo. = He should not have told
it to her. No debió gastar
tanto dinero. = He should not have
spent so much money.