Namespaces for admin fucntionality, worth the effort?


#1

Hi,

I’m currently having the admin part of one of my apps accessible by pure
username and password + role management checking.

I was planning to add namespaces for it. Then I came accross this (a bit
old but still…):
http://glu.ttono.us/articles/2006/08/30/guide-things-you-shouldnt-be-doing-in-rails

"Putting Controllers in Namespaces

This is really more trouble than it’s worth. You run into all sorts of
crazy errors if you do this and you’ll be confused and frustrated.
You’ll then ask other people about it and they’ll either blow you off
for using namespaces with controllers or procede to get confused and
frustrated as well. Then you’ll say, “I with I had listened to Kevin and
Chris”. If you want /admin/some_controller as an URL that’s fine. Use
the routing that’s built into rails."

I’ve used namespaces for admin before and actually it can create
confusion. On the other hand using a common controller with some extra
is_admin? checks can be a bit ugly. I know it all depends on how
different the admin funcionality is.

But is there any opinions/experiences you could share on this issue?

Thanks.


#2

On Oct 6, 2008, at 1:31 PM, comopasta Gr wrote:

http://glu.ttono.us/articles/2006/08/30/guide-things-you-shouldnt-be-doing-in-rails
the routing that’s built into rails."

I’ve used namespaces for admin before and actually it can create
confusion. On the other hand using a common controller with some extra
is_admin? checks can be a bit ugly. I know it all depends on how
different the admin funcionality is.

But is there any opinions/experiences you could share on this issue?

I’ve done it quite a few times… rails 1.1.6, 1.2.3, and several with
whatever is current 2.1.1 (?). I haven’t had any problems…

-philip


#3

On Mon, Oct 6, 2008 at 9:31 PM, comopasta Gr
removed_email_address@domain.invalid wrote:

I’m currently having the admin part of one of my apps accessible by pure
username and password + role management checking.

I was planning to add namespaces for it. Then I came accross this (a bit
old but still…):
http://glu.ttono.us/articles/2006/08/30/guide-things-you-shouldnt-be-doing-in-rails

That article is very old. I’d recommend namespacing controllers for
something like admin panel. It has worked great for me.

Cheers!


#4

On 7 Oct 2008, at 01:49, Robby R. wrote:

(a bit
The only issue that we’ve really run into is with namespaces and model
names. Some weird stuff can happen (especially within tests) if you
have a namespace of Admin and a model named Admin. We’ve since used
Administrator to as an appropriate model name to distinguish the two.

Might that be weird stuff like it trying to resolve a constant like
Admin::SettingsController by looking inside the Admin model class ?

I’ve got apps with /admin namespaced controllers on several apps.

Fred


#5

On Mon, Oct 6, 2008 at 4:57 PM, Pratik removed_email_address@domain.invalid wrote:

That article is very old. I’d recommend namespacing controllers for
something like admin panel. It has worked great for me.

Agreed. We use an /admin namespace on several of our really large
client projects. It works quite well.

The only issue that we’ve really run into is with namespaces and model
names. Some weird stuff can happen (especially within tests) if you
have a namespace of Admin and a model named Admin. We’ve since used
Administrator to as an appropriate model name to distinguish the two.

Good luck!

Cheers,
Robby


Robby R.
Chief Evangelist, Partner

PLANET ARGON, LLC
design // development // hosting


http://www.robbyonrails.com/
aim: planetargon

+1 503 445 2457
+1 877 55 ARGON [toll free]
+1 815 642 4068 [fax]


#6

Hi,

Thanks for your comments. I decided to go for the admin namespace, I
need to have several controllers under it.

Already posted the first problem. The very first command actually :stuck_out_tongue:
Didn’t even have time to get confused :slight_smile:

http://www.ruby-forum.com/topic/167667

Cheers!


#7

I’ve never had any problems with using an admin namespace either. I
recommend doing it.

– Josh
http://iammrjoshua.com

Frederick C. wrote:

On 7 Oct 2008, at 01:49, Robby R. wrote:

(a bit
The only issue that we’ve really run into is with namespaces and model
names. Some weird stuff can happen (especially within tests) if you
have a namespace of Admin and a model named Admin. We’ve since used
Administrator to as an appropriate model name to distinguish the two.

Might that be weird stuff like it trying to resolve a constant like
Admin::SettingsController by looking inside the Admin model class ?

I’ve got apps with /admin namespaced controllers on several apps.

Fred


#8

Yes, I tend to break each major part of my app, into a namespace.
If its a “top” tab on my menu, its a namespace.
It make life so much easier. So yes, admin is almost always
in every app. Espesially when you start having dozens to hundreds of
controllers. Havent quite got to having a “model” in different
namespace yet
but got close.

On Oct 8, 5:54 am, comopasta Gr removed_email_address@domain.invalid