Hi Jason,<br><br>No I didn&#39;t even think that I could get that information that way, still very new to Catalyst/MVC/OO programing.  I will give that a try, because it is being stored into an array in your example I would still need to put it in a stash and go through it with a FOR or FOREACH loop in my view correct?<br>
<br>Also yes I do have a many_to_many relationship in my <a href="http://user.pm">user.pm</a> for roles.<br><br><div class="gmail_quote">On Tue, May 17, 2011 at 10:05 AM, Jason Galea <span dir="ltr">&lt;<a href="mailto:lists@eightdegrees.com.au">lists@eightdegrees.com.au</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi Adam,<br>
<br>
have you tried using the roles method on the other users?<br>
<div class="im"><br>
        my $user = $c-&gt;stash-&gt;{users_rs}-&gt;find({ uniqid =&gt; $uniqid });<br>
        die &quot;No such user: $uniqid\n&quot; if (!$user);<br>
</div>        my @roles = $user-&gt;roles;<br>
<br>
do you have a many_to_many defined in your user table class? eg<br>
<br>
__PACKAGE__-&gt;has_many(user2role_maps =&gt; &#39;MyApp::DB::Result::User2Role&#39;, &#39;user&#39;);<br>
__PACKAGE__-&gt;many_to_many(roles =&gt; &#39;user2role_maps&#39;, &#39;role&#39;);<br>
<br>
I&#39;m guessing you do as c.user.roles works..<br>
<br>
cheers,<br>
<br>
J<br>
<div><div></div><div class="h5"><br>
On Tue, May 17, 2011 at 11:10 AM, Adam Jimerson &lt;<a href="mailto:vendion@gmail.com">vendion@gmail.com</a>&gt; wrote:<br>
&gt; I am trying to come up with a way to manage roles for users in my Catalyst<br>
&gt; app, I have a database structure much like what is used in Chapter 5 of the<br>
&gt; Catalyst::Manual::Tutorial<br>
&gt; &lt;<a href="http://search.cpan.org/%7Ebobtfish/Catalyst-Manual-5.8007/lib/Catalyst/Manual/Tutorial/05_Authentication.pod" target="_blank">http://search.cpan.org/~bobtfish/Catalyst-Manual-5.8007/lib/Catalyst/Manual/Tutorial/05_Authentication.pod</a>&gt;<br>

&gt; where I have a user table, a role table, and and a usertorole table.  I am<br>
&gt; trying to find a way to get a list of roles for a user to be able to make<br>
&gt; changes, add new roles and/or remove roles from the user.  I have both<br>
&gt; authentication and authorization working in my app and I can fetch the roles<br>
&gt; for the user currently logged in by<br>
&gt; &lt;ul&gt;<br>
&gt; [% FOR role = c.user.roles %]&lt;li&gt;[% role %]&lt;/li&gt;[% END %]<br>
&gt; &lt;/ul&gt;<br>
&gt; But when I try to get a list from a different user it doesn&#39;t work as<br>
&gt; expected, here is what I am currently doing<br>
&gt;<br>
&gt; sub base : Chained(&#39;/&#39;): PathPart(&#39;admin&#39;) :CaptureArgs(0) {<br>
&gt;       my ( $self, $c ) = @_;<br>
&gt;<br>
&gt;       $c-&gt;stash( users_rs =&gt; $c-&gt;model(&#39;DB::User&#39;));<br>
&gt;       $c-&gt;stash( role_rs =&gt; $c-&gt;model(&#39;DB::Role&#39;));<br>
&gt;       $c-&gt;stash( usertorole_rs =&gt; $c-&gt;model(&#39;DB::Userstorole&#39;));<br>
&gt; }<br>
&gt;<br>
&gt; sub user : Chained(&#39;base&#39;): CaptureArgs(1) {<br>
&gt;       my ( $self, $c, $uniqid ) = @_;<br>
&gt;<br>
&gt;       if ( $uniqid == m/[^0-9]/ ) {<br>
&gt;               die &quot;The ID number is not numeric\n&quot;;<br>
&gt;       }<br>
&gt;       my $user = $c-&gt;stash-&gt;{users_rs}-&gt;find({ uniqid =&gt; $uniqid });<br>
&gt;       die &quot;No such user: $uniqid\n&quot; if (!$user);<br>
&gt;       my $roles = $c-&gt;stash-&gt;{usertorole_rs}-&gt;search(<br>
&gt;               undef,<br>
&gt;               {<br>
&gt;                       where =&gt; { &#39;userid&#39;, $uniqid }<br>
&gt;               },<br>
&gt;       );<br>
&gt;       warn &quot;No such role: $uniqid\n&quot; if (!$roles);<br>
&gt;       $c-&gt;stash(user =&gt; $user,<br>
&gt;               roles =&gt; $roles);<br>
&gt; }<br>
&gt;<br>
&gt; [% FOR role IN roles %]<br>
&gt;               &lt;tr&gt;&lt;td&gt;Role #:&lt;/td&gt;&lt;td&gt;Role [% role.role %] Role ID [% role.roleid %]<br>
&gt; User id [% role.userid %]&lt;/td&gt;&lt;/tr&gt;<br>
&gt; [% END %]<br>
&gt;<br>
&gt; My database schema is so<br>
&gt;<br>
&gt; CREATE TABLE roles (<br>
&gt;     uniqid integer NOT NULL,<br>
&gt;     role character varying(32) NOT NULL<br>
&gt; );<br>
&gt;<br>
&gt; CREATE TABLE users (<br>
&gt;     uniqid integer NOT NULL,<br>
&gt;     username character varying(20) NOT NULL,<br>
&gt;     password character varying(40) NOT NULL,<br>
&gt;     firstname character varying(20) NOT NULL,<br>
&gt;     lastname character varying(20) NOT NULL,<br>
&gt;     email character varying(20) NOT NULL,<br>
&gt;     active boolean DEFAULT true NOT NULL,<br>
&gt;     created timestamp without time zone DEFAULT now() NOT NULL<br>
&gt; );<br>
&gt;<br>
&gt; CREATE TABLE userstoroles (<br>
&gt;     userid integer NOT NULL,<br>
&gt;     role integer NOT NULL<br>
&gt; );<br>
&gt;<br>
&gt; Am I going about this the wrong way or is there something that I am over<br>
&gt; looking?<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; List: <a href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br>
&gt; Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>
&gt; Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>
&gt; Dev site: <a href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a><br>
&gt;<br>
&gt;<br>
<br>
_______________________________________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a><br>
</blockquote></div><br>