# File lib/declarative_authorization/development_support/change_supporter.rb, line 364 def apply (candidate) if candidate.engine.roles_with_hierarchy_for(@user).include?(@role) false else # beware of shallow copies! cloned_user = @user.clone user_index = candidate.users.index(@user) raise "Cannot find #{@user.inspect} in users array" unless user_index candidate.users[user_index] = cloned_user # possible on real user objects? cloned_user.role_symbols << @role raise "User#role_symbols immutable or user only shallowly cloned!" if cloned_user.role_symbols == @user.role_symbols true end end