Sha256: 2390a48a16a5a22537eee11ded60921c975fe95a4c78d4a60ee6e62a525cf69c
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
class Card module Auth # singleton permission methods module Permissions # user has "root" permissions # @return [true/false] def always_ok? case as_id when WagnBotID then true # cannot disable when nil then false else always_ok_cached? end end # list of names of cardtype cards that current user has perms to create # @return [Array of strings] def createable_types type_names = Auth.as_bot do Card.search( { type: Card::CardtypeID, return: :name, not: { codename: ["in"] + Set.basket[:non_createable_types] } }, "find createable types" ) end type_names.select do |name| Card.new(type: name).ok? :create end.sort end # test whether user is an administrator # @param user_mark [Cardish] # @return [true/false] def admin? user_mark=nil (user_mark || as_id).card&.admin? end def update_always_cache value always = always_cache always = always.dup if always.frozen? always[as_id] = value Card.cache.write "ALWAYS", always value end private # specified user has root permission # @return [true/false] def always_ok_cached? always = always_cache if always[as_id].nil? update_always_cache admin? else always[as_id] end end def always_cache Card.cache.read("ALWAYS") || {} end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
card-1.108.1 | lib/card/auth/permissions.rb |
card-1.108.0 | lib/card/auth/permissions.rb |
card-1.107.0 | lib/card/auth/permissions.rb |