Project

I am creating application which requires User management of various
levels for authorization of different level of users.
I want several models:
Admin_user
Project Manager
Company
Clients
Account : have many users of all level.Every user have account.
See below the relations between our models:

  1. Admin_user : have many project managers and can give rights to
    project manager.It can add and delete Project managers.Admin can
    access or manage any level of this application i.e. Its a SUPER USER.
    2.Project manager : have many companies.It can create and delete many
    companies. Project Manager can also add new project manager if
    Admin_user give right to him to create new project manager.its all
    depends on Admin_user to give or take rights from PM.
  2. Companies : can create and delete many client_users but cannot
    create any company in th same level.Company also start or stop rights
    of client.
    4.Client :can have account login and use services provided by company
    nothing more than that.
    This is my model Association. But i m confused what can i make first
    a
    Account model or a Admin_user model.
    Thanks

On 13 February 2012 07:08, Anurag S. [email protected]
wrote:

project manager.It can add and delete Project managers.Admin can
This is my model Association. But i m confused what can i make first
a
Account model or a Admin_user model.

I think you may be going about this the wrong way. Instead of having
many different models for the user types have one model for all users
and assign roles to give them different permissions. Have a look at
the cancan gem.

Colin

CanCan would be simple to achieve what you want.Install cancan gem and
define Ability.rb in models

Sample Abillity.rb might look like this.

class Ability
include CanCan::Ability

def initialize(user)
# Define abilities for the passed in user here. For example:
#
user ||= User.new # guest user (not logged in)
if (user.role == ‘admin’)
can :manage, :all
else
can :read, :all
end
end
end

Thanks,
Siva