namespace :nccu do
  task :copy_news_object_auth_to_all_of_news_cate => :environment do
    # users = user_data.collect do |login_uid|
    #   nccu_id = get_nccu_id_from_mid_site(login_uid)
    #   resource =  nccu_id.nil? ? nil : (User.first(conditions:{ nccu_ldap_uid: nccu_id }))
    # end


    nbc = NewsBulletinCategory.first({conditions: "administration"})
    users_ary = Array.new(ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: nbc.id}}).privilege_user_ids)
    to_nbcs = NewsBulletinCategory.where(:key.ne=> 'administration')
    to_nbcs.each do |cate|
      oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: cate.id}})
      oa.privilege_user_ids = users_ary
      oa.save
    end
  end

    task :apply_180_news_cate_auth_to_171 => :environment do
      ldap_id_data = [3603,100212, 8151, 3471, 145232, 133380, 133222, 127983, 127977, 127692, 123617, 123566, 58483, 48234, 29237, 9253, 8948, 8703, 8251, 7336, 7242, 7220, 6912, 6603, 6459, 5475, 3643, 3641,  3559, 3310, 3248, 2672, 2531, 1633, 1521, 1516, 145571, 20610, 123604, 100211, 39571, 29479, 8013, 6968, 5868, 5724, 5401, 4369, 3573, 3377, 2918, 2822, 2309, 2134, 1731, 1527] 
      users_ary = Array.new(User.where(:nccu_ldap_uid.in => ldap_id_data ))
      NewsBulletinCategory.all.each do |cate|
        oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: cate.id}})
        oa.privilege_users = users_ary
        oa.save
      end      
    end

    task :remove_3603 => :environment do
      user_email = 'tu65@nccu.edu.tw'
      user = User.first({conditions:{email: user_email}})
      NewsBulletinCategory.all.each do |cate|
        oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: cate.id}})
        oa.privilege_users.delete_if{|t| t == user}
        oa.save
      end

      key = 'Announcement'
      bc = BulletinCategory.first({conditions:{key: key}})
      oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "BulletinCategory",obj_authable_id: bc.id}})
      oa.privilege_users.delete_if{|t| t == user}
      oa.save
    end

    task  :add_nccu_account_1008 => :environment do
      a = ['yjlin3@nccu.edu.tw','liwen@nccu.edu.tw','yhc@nccu.edu.tw','kenliu@nccu.edu.tw','cfc@nccu.edu.tw','jasper@nccu.edu.tw','donghe@nccu.edu.tw','frees712@nccu.edu.tw','jeanch@nccu.edu.tw','posty@nccu.edu.tw','yiting@nccu.edu.tw','frank997@nccu.edu.tw']
      users_ary = User.any_in(email: a)
      NewsBulletinCategory.all.each do |cate|
        oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: cate.id}})
        oa.privilege_users = oa.privilege_users + users_ary 
        oa.save
      end

      key = 'Announcement'
      bc = BulletinCategory.first({conditions:{key: key}})
      oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "BulletinCategory",obj_authable_id: bc.id}})
      oa.privilege_users = oa.privilege_users + users_ary
      oa.save

    end

    task  :add_nccu_account_1009 => :environment do
      a = ["blannytg@nccu.edu.tw","yucca@nccu.edu.tw","fish14@nccu.edu.tw","amanda13@nccu.edu.tw"]
      users_ary = User.any_in(email: a)
      NewsBulletinCategory.all.each do |cate|
        oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: cate.id}})
        oa.privilege_users = oa.privilege_users + users_ary 
        oa.save
      end

      a=["annieayu@nccu.edu.tw","blannytg@nccu.edu.tw","yucca@nccu.edu.tw","amanda13@nccu.edu.tw"]
      users_ary = User.any_in(email: a)
      key = 'Announcement'
      bc = BulletinCategory.first({conditions:{key: key}})
      oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "BulletinCategory",obj_authable_id: bc.id}})
      oa.privilege_users = oa.privilege_users + users_ary
      oa.save

    end

    task  :add_nccu_account_1016 => :environment do
      a = ["waynedd@nccu.edu.tw","sfchang@nccu.edu.tw","kyokolin@nccu.edu.tw","sfaylin@nccu.edu.tw","jinyulin@nccu.edu.tw"]
      users_ary = User.any_in(email: a)
      NewsBulletinCategory.all.each do |cate|
        oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "NewsBulletinCategory",obj_authable_id: cate.id}})
        oa.privilege_users = oa.privilege_users + users_ary 
        oa.save
      end

      users_ary = User.any_in(email: a)
      key = 'Announcement'
      bc = BulletinCategory.first({conditions:{key: key}})
      oa = ObjectAuth.first({conditions:{title: "submit",obj_authable_type: "BulletinCategory",obj_authable_id: bc.id}})
      oa.privilege_users = oa.privilege_users + users_ary
      oa.save

    end


    task :consolidate_object_auth => :environment do
      ObjectAuth.all.each{|t| t.save}
    end
end