I think it depends on why you want to do this:
If you want to keep users and admins as separate code in the news gem - then you probably want to isolate 2 namespaces, and then mount each of those - which might involve having them as separate engines themselves.
If what you want is (and this is what I think you mean?) is to have the code shared in the news engine, but accessed at 2 different url's in the main application based on whether the user is a plain user or an admin? What I would do in that case is something like this:
in the main application
Rails.application.routes.draw do
mount Jnews::Engine => "/app"
end
in the engine routes
Jnews::Engine.routes.draw do
match "/news", :to => "some_controller#some_action"
match "/admin/news", :to => "some_controller#some_action"
end
And then in the main application, based on what the user is (user or admin) you can redirect to either app/news
or app/admin/news
I hope that helps, I am not really sure about doing conditional routing.
However, here is a really good guide for routing: http://guides.rubyonrails.org/routing.html
You could perhaps try something along the lines of mounting an engine with dynamic routing?
mount Jnews::Engine => ":user_id/news"
where you end up with Jnew::Engine routed at either user/news
and admin/news
? I have never actually done that, so I don't know if it's possible, however... maybe?
Let me know if any of this helps :)
Cheers