Log message #114206

# At Username Text
# Aug 9th 2008, 18:07 TommyO jezek: yes. like: if ($this->params['admin'])
# Aug 9th 2008, 18:07 jezek well i have quite a few functions
# Aug 9th 2008, 18:07 jaredhoyt jezek: is that all you're doing, there's probalby a simpler way than this =P
# Aug 9th 2008, 18:07 jezek i want to be able to protect my admin area
# Aug 9th 2008, 18:06 jaredhoyt in a component, but the method in the component that uses the model is called from AppController's beforeFilter
# Aug 9th 2008, 18:06 TommyO this is in a component or beforeFilter?
# Aug 9th 2008, 18:06 jaredhoyt it's warned against in the manual, but shows you how
# Aug 9th 2008, 18:06 jaredhoyt dunno, he's wanting to use a model in a component
# Aug 9th 2008, 18:06 TommyO sounds like a design flaw
# Aug 9th 2008, 18:06 jaredhoyt components don't normal hold models, so i didn't see the harm :)
# Aug 9th 2008, 18:05 TommyO why? what's the purpose?
# Aug 9th 2008, 18:05 TommyO that is dangerous
# Aug 9th 2008, 18:05 TommyO and use it right away
# Aug 9th 2008, 18:05 jaredhoyt TommyO: he's wanting to be able to use it class-wide though w/o having to instantiate it everytime
# Aug 9th 2008, 18:05 TommyO $User = instead of $this->User =
# Aug 9th 2008, 18:05 TommyO don't assign it to a class value like that as it will interfere with the controller's expectation of that member
# Aug 9th 2008, 18:04 jaredhoyt i haven't tried calling the method from a normal controller's beforeFilter... just a controller's method
# Aug 9th 2008, 18:04 jaredhoyt well actually i take that back
# Aug 9th 2008, 18:04 jezek mm
# Aug 9th 2008, 18:04 jaredhoyt if you do it in a normal controller's beforeFilter(), it is
# Aug 9th 2008, 18:04 jaredhoyt TommyO: right, his problem is... if you do $this->User = ClassRegistry::init('User'); in Component::startup() and call the method that uses $this->User in AppController::beforeFilter ... the User model isn't loaded
# Aug 9th 2008, 18:03 TommyO jezek: ^^ this applies to you too :)
# Aug 9th 2008, 18:03 TommyO or to turn it off, like $this->Component->enabled = false;
# Aug 9th 2008, 18:02 TommyO *you do
# Aug 9th 2008, 18:02 TommyO that way beforeFilter can be used to give the component settings, like yo udo for Auth
# Aug 9th 2008, 18:02 TommyO jaredhoyt: the process is: Component::initialize(); Controller::beforeFilter(); Component::startup(); Controller::action(); Controller::beforeRender();
# Aug 9th 2008, 17:58 jezek oh
# Aug 9th 2008, 17:58 jaredhoyt i don't know why though because i don't know enough about the class registry =P
# Aug 9th 2008, 17:58 jaredhoyt i just tried an arbitrary example and it fails from beforeFilter() but works from beforeRender()
# Aug 9th 2008, 17:58 jezek hmm
# Aug 9th 2008, 17:57 jaredhoyt hmm, you're right, it does make a different if the component's method is being called from app controller's beforeFilter()
# Aug 9th 2008, 17:53 jezek i copied and psted what you wrote
# Aug 9th 2008, 17:53 jezek Call to a member function findById() on a non-object
# Aug 9th 2008, 17:52 jaredhoyt i don't think it would make a difference
# Aug 9th 2008, 17:51 jezek if it makes any difference, i'm including the component in app_controller
# Aug 9th 2008, 17:51 jaredhoyt i added $this->User = ClassRegistry::init('User'); to a component startup and pr($this->User->findById(1)); to the method, and it worked just fine
# Aug 9th 2008, 17:51 jezek mm
# Aug 9th 2008, 17:51 jezek really
# Aug 9th 2008, 17:50 jaredhoyt clear your cache maybe
# Aug 9th 2008, 17:50 jaredhoyt hmm, works fine for me
# Aug 9th 2008, 17:48 jezek null