Orbit/lib/orbit_app/module_app_membership_tools.rb

73 lines
2.0 KiB
Ruby

module OrbitApp
module ModuleAppMembershipTools
def is_manager?(user)
if user.nil?
return false
else
m_users = managing_users
if m_users.blank?
false
else
m_users.include?(user)
end
end
end
def is_sub_manager?(user)
if user.nil?
return false
else # when user is guest
s_m_users = sub_managing_users
result = false
if s_m_users.blank?
result = false
else
result = s_m_users.include?(user)
end
result || is_manager?(user)
end
end
def managing_users
self.managers.collect{ |t| t.user }
end
def sub_managing_users
self.sub_managers.collect{ |t| t.user }
end
def assign_manager(user,assigner)
manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil
if manager.nil?
manager = self.managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil))
end
manager
end
def assign_sub_manager(user,assigner)
submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil
if submanager.nil? && !self.managing_users.include?(user)
submanager = self.sub_managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil) )
end
submanager
end
def remove_manager(user)
manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil
if manager
manager.destroy
else
false
end
end
def remove_sub_manager(user)
submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil
if submanager
submanager.destroy
else
false
end
end
end
end