This is simply due to an authority problem. Add the activity "43" or "*" to the authority object S_IDOCDEFT.
The transactions WE30 and WE31 check for the authority object S_IDOCDEFT. While the developper is granted the activities 01-03, he is not allowed to release them. THis is meant as a precaution to allow developers work on IDoc, while the transport and publication of the IDoc remains in the hands of the system administration. The basic idea is, that IDocs are so tightly sewed with the exterior world, that any slight inadvertent modification might bring the whole communication system down.
I think, it is a nice-to-have feature when working with a lot of junior programmers. However, I would not recommend to refuse the restrict permission to a programmer, unless you have very good reason. If you do not work on a otherwise stable system, it will simple slow-down the development work and will also refuse the developer to even test the IDoc programs.
More reading: Trace the program Module Auth_Check of program SAPMSED3.