73 lines
2.0 KiB
Ruby
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
|