Sha256: d4f55eb961c8c2597842d278e83530ee3e86827b57648eda718bd540d19d38e9
Contents?: true
Size: 789 Bytes
Versions: 1
Compression:
Stored size: 789 Bytes
Contents
# frozen_string_literal: true require 'ditty/policies/application_policy' module Ditty class UserLoginTraitPolicy < ApplicationPolicy def create? user&.super_admin? end def list? !!user end def read? user && (record.user_id || user.super_admin?) end def update? user&.super_admin? end def delete? user&.super_admin? end def permitted_attributes attribs = %i[ip_address os browser] attribs << :user_id if user.super_admin? attribs end class Scope < ApplicationPolicy::Scope def resolve if user&.super_admin? scope elsif user scope.where(user_id: user.id) else scope.where(id: -1) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ditty-0.8.0 | lib/ditty/policies/user_login_trait_policy.rb |