Sha256: d98d22ca65288d7695451455caba08df12d155637cd3f726e17cd54559507a2d

Contents?: true

Size: 1.63 KB

Versions: 4

Compression:

Stored size: 1.63 KB

Contents

class SuperAuth::User < Sequel::Model(:users)
  one_to_many :edges

  dataset_module do
    def with_edges
      join(:edges, user_id: :id).select_all(:users)
    end

    def with_groups
      with_edges.join(Group.from(Group.trees).as(:groups), id: :group_id).select(
        Sequel[:users][:id].as(:id),
        Sequel[:users][:id].as(:user_id),
        Sequel[:groups][:id].as(:group_id),
        Sequel[:users][:name].as(:user_name),
        Sequel[:groups][:name].as(:group_name),
        Sequel[:edges][:id].as(:edge_id),
        Sequel[:edges][:permission_id].as(:edge_permission_id),
        Sequel[:edges][:group_id].as(:edge_group_id),
        Sequel[:edges][:user_id].as(:edge_user_id),
        Sequel[:edges][:role_id].as(:edge_role_id),
        Sequel[:groups][:group_path],
        Sequel[:groups][:group_name_path],
        Sequel[:groups][:parent_id]
      )
    end

    def with_roles
      with_edges.join(Role.from(Role.trees).as(:roles), id: :role_id).select(
        Sequel[:users][:id].as(:id),
        Sequel[:users][:id].as(:user_id),
        Sequel[:roles][:id].as(:role_id),
        Sequel[:users][:name].as(:user_name),
        Sequel[:roles][:name].as(:role_name),
        Sequel[:edges][:id].as(:edge_id),
        Sequel[:edges][:permission_id].as(:edge_permission_id),
        Sequel[:edges][:group_id].as(:edge_group_id),
        Sequel[:edges][:user_id].as(:edge_user_id),
        Sequel[:edges][:role_id].as(:edge_role_id),
        Sequel[:roles][:role_path],
        Sequel[:roles][:role_name_path],
        Sequel[:roles][:parent_id]
      )
    end

    def with_roles_with_groups
      with_groups_with_roles
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
super_auth-0.1.3 lib/super_auth/user.rb
super_auth-0.1.2 lib/super_auth/user.rb
super_auth-0.1.1 lib/super_auth/user.rb
super_auth-0.1.0 lib/super_auth/user.rb