<?xml version="1.0" encoding="UTF-8"?>
<ticket>
  <assigned-user-id type="integer">15049</assigned-user-id>
  <attachments-count type="integer">0</attachments-count>
  <closed type="boolean">false</closed>
  <created-at type="datetime">2008-07-17T00:52:23-04:00</created-at>
  <creator-id type="integer">26398</creator-id>
  <milestone-due-on type="datetime" nil="true"></milestone-due-on>
  <milestone-id type="integer">13708</milestone-id>
  <number type="integer">21</number>
  <permalink>support-for-non-admin-users-roles</permalink>
  <priority type="integer">1</priority>
  <project-id type="integer">10532</project-id>
  <raw-data type="binary" nil="true" encoding="base64"></raw-data>
  <state>new</state>
  <tag>model plugins users</tag>
  <title>Support for non-admin users (roles)</title>
  <updated-at type="datetime">2008-07-20T09:12:57-04:00</updated-at>
  <user-id type="integer">887</user-id>
  <user-name>Alexander Flatter</user-name>
  <creator-name>Daniel Bond</creator-name>
  <assigned-user-name>Michael Leung</assigned-user-name>
  <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
  <milestone-title>0.5</milestone-title>
  <original-body>Feather owners might want to require users to login before writing a comment, or doing other cool stuff. Feather has a User-model, and a authentication-system that works great, so why reinvent the wheel?

This could help creating plugins like OpenID provider/consumer, and other goodies.

A approach is to implement a &quot;role&quot;-field to the User-model, and create some new methods and checks, for separating admins and users.

There would have to be in place proper checks, so only admin can modify Admin-related functions, and some plugins might require modification. Users should perhaps have some kind of User-dashboard, which plugins could extend.

Anyway, I forked the Feather-project on Github, and created a working concept of my thoughts: 

http://github.com/bond/feather/commit/6ce3a667d8add88cca0457300dbbcf3e13be29c5</original-body>
  <latest-body>Feather owners might want to require users to login before writing a comment, or doing other cool stuff. Feather has a User-model, and a authentication-system that works great, so why reinvent the wheel?

This could help creating plugins like OpenID provider/consumer, and other goodies.

A approach is to implement a &quot;role&quot;-field to the User-model, and create some new methods and checks, for separating admins and users.

There would have to be in place proper checks, so only admin can modify Admin-related functions, and some plugins might require modification. Users should perhaps have some kind of User-dashboard, which plugins could extend.

Anyway, I forked the Feather-project on Github, and created a working concept of my thoughts: 

http://github.com/bond/feather/commit/6ce3a667d8add88cca0457300dbbcf3e13be29c5</latest-body>
  <original-body-html>&lt;div&gt;&lt;p&gt;
Feather owners might want to require users to login before writing a comment, or doing other cool stuff. Feather has a User-model, and a authentication-system that works great, so why reinvent the wheel?
&lt;/p&gt;&lt;p&gt;
This could help creating plugins like OpenID provider/consumer, and other goodies.
&lt;/p&gt;&lt;p&gt;
A approach is to implement a &quot;role&quot;-field to the User-model, and create some new methods and checks, for separating admins and users.
&lt;/p&gt;&lt;p&gt;
There would have to be in place proper checks, so only admin can modify Admin-related functions, and some plugins might require modification. Users should perhaps have some kind of User-dashboard, which plugins could extend.
&lt;/p&gt;&lt;p&gt;
Anyway, I forked the Feather-project on Github, and created a working concept of my thoughts:
&lt;/p&gt;&lt;p&gt;
&lt;a href=&quot;http://github.com/bond/feather/commit/6ce3a667d8add88cca0457300dbbcf3e13be29c5&quot;&gt;http://github.com/bond/feather/c...&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</original-body-html>
  <versions type="array">
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Feather owners might want to require users to login before writing a comment, or doing other cool stuff. Feather has a User-model, and a authentication-system that works great, so why reinvent the wheel?

This could help creating plugins like OpenID provider/consumer, and other goodies.

A approach is to implement a &quot;role&quot;-field to the User-model, and create some new methods and checks, for separating admins and users.

There would have to be in place proper checks, so only admin can modify Admin-related functions, and some plugins might require modification. Users should perhaps have some kind of User-dashboard, which plugins could extend.

Anyway, I forked the Feather-project on Github, and created a working concept of my thoughts: 

http://github.com/bond/feather/commit/6ce3a667d8add88cca0457300dbbcf3e13be29c5</body>
      <body-html>&lt;div&gt;&lt;p&gt;
Feather owners might want to require users to login before writing a comment, or doing other cool stuff. Feather has a User-model, and a authentication-system that works great, so why reinvent the wheel?
&lt;/p&gt;&lt;p&gt;
This could help creating plugins like OpenID provider/consumer, and other goodies.
&lt;/p&gt;&lt;p&gt;
A approach is to implement a &quot;role&quot;-field to the User-model, and create some new methods and checks, for separating admins and users.
&lt;/p&gt;&lt;p&gt;
There would have to be in place proper checks, so only admin can modify Admin-related functions, and some plugins might require modification. Users should perhaps have some kind of User-dashboard, which plugins could extend.
&lt;/p&gt;&lt;p&gt;
Anyway, I forked the Feather-project on Github, and created a working concept of my thoughts:
&lt;/p&gt;&lt;p&gt;
&lt;a href=&quot;http://github.com/bond/feather/commit/6ce3a667d8add88cca0457300dbbcf3e13be29c5&quot;&gt;http://github.com/bond/feather/c...&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-17T00:52:23-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-17T00:52:23-04:00</updated-at>
      <user-id type="integer">26398</user-id>
      <user-name>Daniel Bond</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name nil="true"></assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title nil="true"></milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Hi there,

Your fork seems to be empty?</body>
      <body-html>&lt;div&gt;&lt;p&gt;
Hi there,
&lt;/p&gt;&lt;p&gt;
Your fork seems to be empty?
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-17T19:25:09-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-17T19:25:09-04:00</updated-at>
      <user-id type="integer">887</user-id>
      <user-name>Alexander Flatter</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name nil="true"></assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title nil="true"></milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer" nil="true"></assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Sorry about that, something was wrong with github, so I deleted/recreated the repo and pushed my changes to it.</body>
      <body-html>&lt;div&gt;&lt;p&gt;
Sorry about that, something was wrong with github, so I deleted/recreated the repo and pushed my changes to it.
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-17T21:19:43-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-17T21:19:43-04:00</updated-at>
      <user-id type="integer">26398</user-id>
      <user-name>Daniel Bond</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name nil="true"></assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title nil="true"></milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">15049</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Looks good, I like it. More fine-grained permission checks could be implemented later.
Michael, what do you think?</body>
      <body-html>&lt;div&gt;&lt;p&gt;
Looks good, I like it. More fine-grained permission checks could be implemented later.
&lt;/p&gt;&lt;p&gt;
Michael, what do you think?
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-18T06:35:13-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- 
:assigned_user: 
</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-18T06:35:13-04:00</updated-at>
      <user-id type="integer">887</user-id>
      <user-name>Alexander Flatter</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name>Michael Leung</assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title nil="true"></milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">15049</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I think this is something we should look to wrap up and stabilize as part of 0.5, I like it and think it'll be very useful. We are continuing to discuss this in IRC, and we'll roll it in as and when Daniel thinks he has something that is ready to go.

Incidentally, I've created &quot;edge&quot; branches in both core and plugins, so we should probably try to sync up this code with that, as this will probably be best running off of the merb-auth slice that TheWordNerd implemented. That currently only runs on Merb edge (until 0.9.4 hits which includes merb-slices).</body>
      <body-html>&lt;div&gt;&lt;p&gt;
I think this is something we should look to wrap up and stabilize as part of 0.5, I like it and think it'll be very useful. We are continuing to discuss this in IRC, and we'll roll it in as and when Daniel thinks he has something that is ready to go.
&lt;/p&gt;&lt;p&gt;
Incidentally, I've created &quot;edge&quot; branches in both core and plugins, so we should probably try to sync up this code with that, as this will probably be best running off of the merb-auth slice that TheWordNerd implemented. That currently only runs on Merb edge (until 0.9.4 hits which includes merb-slices).
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-18T17:37:07-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- 
:milestone: 
</diffable-attributes>
      <milestone-id type="integer">13708</milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-18T17:37:07-04:00</updated-at>
      <user-id type="integer">18455</user-id>
      <user-name>Elliott Draper</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name>Michael Leung</assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title>0.5</milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">15049</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I created a branch of your &quot;edge&quot; branch, called &quot;edge-db&quot;, which I've based the same implementation on: http://github.com/bond/feather/commit/0339af9ebe48627e950962ed6af1fded70f76bd4

Since merb-auth is a seperate project under feather, I've forked it too, and sent a pull-request: http://github.com/bond/merb-auth/commit/22381302ea7b1ca783f7c6509ee2024af0782f80

We still need to create some kind of dashboard for the users to set properties and hook plugin-stuff in, but we'll discuss that further if the merb-auth stuff goes through.</body>
      <body-html>&lt;div&gt;&lt;p&gt;
I created a branch of your &quot;edge&quot; branch, called &quot;edge-db&quot;, which I've based the same implementation on: &lt;a href=&quot;http://github.com/bond/feather/commit/0339af9ebe48627e950962ed6af1fded70f76bd4&quot;&gt;http://github.com/bond/feather/c...&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Since merb-auth is a seperate project under feather, I've forked it too, and sent a pull-request: &lt;a href=&quot;http://github.com/bond/merb-auth/commit/22381302ea7b1ca783f7c6509ee2024af0782f80&quot;&gt;http://github.com/bond/merb-auth...&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
We still need to create some kind of dashboard for the users to set properties and hook plugin-stuff in, but we'll discuss that further if the merb-auth stuff goes through.
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-19T22:24:52-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer">13708</milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-19T22:24:52-04:00</updated-at>
      <user-id type="integer">26398</user-id>
      <user-name>Daniel Bond</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name>Michael Leung</assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title>0.5</milestone-title>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">15049</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>AFAIK slices are thought to be extended in their host application, so that there is no need to modify merb-auth.
merb-auth is a gem that you can install. You can then override gem files in your app-root/app/slices directory.</body>
      <body-html>&lt;div&gt;&lt;p&gt;
AFAIK slices are thought to be extended in their host application, so that there is no need to modify merb-auth.
&lt;/p&gt;&lt;p&gt;
merb-auth is a gem that you can install. You can then override gem files in your app-root/app/slices directory.
&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-07-20T09:12:57-04:00</created-at>
      <creator-id type="integer">26398</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer">13708</milestone-id>
      <number type="integer">21</number>
      <permalink>support-for-non-admin-users-roles</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">10532</project-id>
      <state>new</state>
      <tag>model plugins users</tag>
      <title>Support for non-admin users (roles)</title>
      <updated-at type="datetime">2008-07-20T09:12:57-04:00</updated-at>
      <user-id type="integer">887</user-id>
      <user-name>Alexander Flatter</user-name>
      <creator-name>Daniel Bond</creator-name>
      <assigned-user-name>Michael Leung</assigned-user-name>
      <url>http://feather.lighthouseapp.com/projects/10532/tickets/21</url>
      <milestone-title>0.5</milestone-title>
    </version>
  </versions>
</ticket>
