Normally, with HABTM, you'd have these tables:

users:
id
...

accounts:
id
...

accounts_users:
account_id
user_id

I don't know if this is the reason for your trouble, but it's worth
starting from what Cake expects and see if that resolves it.

On Tue, Aug 18, 2009 at 8:09 AM, Ace<[email protected]> wrote:
>
> I have my users in standard users table. There is also an account
> table. Every user can have many accounts (account is let's say a group
> of premissions, like a role) and every account can have many users so
> the relation is HABTM (there is a linking table - account_user_assoc).
> When the user is being logged in I want to know what roles does he
> have, but Account object is empty. Can anyone tell me what do I do
> wrong?
>
> Cake generates query without even mentioning the Accounts table:
>
> SELECT `User`.`user_id`, `User`.`contact_name`,
> `User`.`email_address`, `User`.`username`, `User`.`password`,
> `User`.`language`, `User`.`default_account_id`, `User`.`comments`,
> `User`.`active`, `User`.`sso_user_id`, `User`.`date_created`,
> `User`.`date_last_login`, `User`.`email_updated` FROM `ox2_users` AS
> `User` WHERE `User`.`username` = 'root' AND `User`.`password` =
> '7a89a595cfc6de85480202a143e37d2e' LIMIT 1
>
> Results:
> Array ( [User] => Array ( [user_id] => 1 [contact_name] =>
> Administrator [email_address] => [email protected] [username] => root
> [password] => 7a89a595cfc6de85480202a143e37d2e [language] => pl
> [default_account_id] => 2 [comments] => [active] => 1 [sso_user_id] =>
> [date_created] => 2009-08-13 18:45:50 [date_last_login] => 2009-08-17
> 14:33:27 [email_updated] => 2009-08-13 18:45:50 ) [Account] => Array
> ( ) )
>
> User model code:
>
> class User extends AppModel {
>    var $name = 'User';
>    var $recursive=2;
>     var $hasAndBelongsToMany = array(
>  'Account' =>
>        array(
>  'className' => 'Account',
>  'joinTable' => 'account_user_assoc',
>             'foreignKey' => 'user_id',
>  'associationForeignKey' => 'account_id',
> 'unique' => true
>        )
>    );
>    function hashPasswords($data){
>        $data['User']['password']=md5($data['User']['password']);
>        return $data;
>    }
>
> }
>
> Accounts model:
>
> class Account extends AppModel {
>    var $name = 'Account';
>    var $primaryKey = 'account_id';
> }
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to