module Card::Auth::Permissions
singleton permission methods
Public Instance Methods
Source
# File lib/card/auth/permissions.rb, line 36 def admin? user_mark=nil (user_mark || as_id).card&.admin? end
test whether user is an administrator @param user_mark [Cardish] @return [true/false]
Source
# File lib/card/auth/permissions.rb, line 7 def always_ok? case as_id when WagnBotID then true # cannot disable when nil then false else always_ok_cached? end end
user has “root” permissions @return [true/false]
Source
# File lib/card/auth/permissions.rb, line 18 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
list of names of cardtype cards that current user has perms to create @return [Array of strings]
Source
# File lib/card/auth/permissions.rb, line 40 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 Instance Methods
Source
# File lib/card/auth/permissions.rb, line 61 def always_cache Card.cache.read("ALWAYS") || {} end
Source
# File lib/card/auth/permissions.rb, line 52 def always_ok_cached? always = always_cache if always[as_id].nil? update_always_cache admin? else always[as_id] end end
specified user has root permission @return [true/false]