# require 'spec_helper' # require 'ruby-debug' # describe AppAuth do # before do # User.all.destroy # Role.all.destroy # SubRole.all.destroy # AppAuth.all.destroy # ModuleApp.all.destroy # #Create some fixtures of Main Role # main_role_key = ["Stud","Teacher","Staff"] # @new_main_role_list = main_role_key.each do |role| # new_role = Role.new :key => role # new_role.save # end # #Create Some SubRoles # sub_role_key = ["graduated_school","undergraduated_school","TA","Senior"] # @new_main_role_list = sub_role_key.each do |role| # new_role = SubRole.new :key => role # new_role.save # end # #Create some users of User # user_emails = ["a_good_ug_stud_1","a_good_ug_stud_2","a_bad_ug_stud","a_good_g_stud","a_bad_g_stud","a_teacher","a_staff"] # user_emails.each do |user_email| # email=user_email+"@rulingcom.com" # new_user = User.new :email=> email # new_user.save # end # #MRK = Member Role Key SRK=Sub Role Key # @stud_MRK = Role.first(conditions:{key:"Stud"}) # @teacher_MRK = Role.first(conditions:{key:"Teacher"}) # @staff_MRK = Role.first(conditions:{key:"Staff"}) # @graduated_SRK = SubRole.first(conditions:{key:"graduated_school"}) # @under_graduated_SRK = SubRole.first(conditions:{key:"undergraduated_school"}) # @ta_SRK = SubRole.first(conditions:{key:"TA"}) # @senior_SRK = SubRole.first(conditions:{key:"Senior"}) # @stud_MRK.sub_roles += [@graduated,@under_graduated,@ta] # @stud_MRK.save! # @teacher_MRK.sub_roles = [@senior] # @teacher_MRK.save! # @good_ug_stu_1 = User.first(conditions:{email:"a_good_ug_stud_1@rulingcom.com"}) # @good_ug_stu_2 = User.first(conditions:{email:"a_good_ug_stud_2@rulingcom.com"}) # @bad_ug_stu = User.first(conditions:{email:"a_bad_ug_stud@rulingcom.com"}) # @good_g_stu = User.first(conditions:{email:"a_good_g_stud@rulingcom.com"}) # @bad_g_stu = User.first(conditions:{email:"a_bad_g_stud@rulingcom.com"}) # @teacher = User.first(conditions:{email:"a_teacher@rulingcom.com"}) # @staff = User.first(conditions:{email:"a_staff@rulingcom.com"}) # #setting Roles for users # @good_g_stu.role = @stud_MRK # @bad_g_stu.role = @stud_MRK # @good_ug_stu_1.role = @stud_MRK # @good_ug_stu_2.role = @stud_MRK # @bad_ug_stu.role = @stud_MRK # @good_g_stu.sub_roles = [@graduated_SRK,@ta_SRK] # @bad_g_stu.sub_roles << @graduated_SRK # @good_ug_stu_1.sub_roles << @under_graduated_SRK # @good_ug_stu_2.sub_roles << @under_graduated_SRK # @bad_ug_stu.sub_roles << @under_graduated_SRK # @teacher.role = @teacher_MRK # @staff.role = @staff_MRK # @good_g_stu.save! # @bad_g_stu.save! # @good_ug_stu_1.save! # @good_ug_stu_2.save! # @bad_ug_stu.save! # @teacher.save! # @staff.save! # end # describe "Starting a ClassBulletin Auth for teacher , staff and ta" do # before do # @bulletin_app_auth = AppAuth.new() # #all teacher and staff has access right # @bulletin_app_auth.roles = [@teacher_MRK,@staff_MRK] # #all person with TA sub_role has access right # @bulletin_app_auth.sub_roles << @ta_SRK # #a_bad_ug_stud add to block to bulletin_app_auth # #@bulletin_app_auth.blocked_users << @bad_ug_stu # #all teacher has access right # # @bulletin_app_auth.roles << @teacher_MRK # # @bulletin_app_auth.privilege_users << @staff # @bulletin_app_auth.save! # end # context "Should just initialize all obj that is needed" do # it "Testing @bulletin_app_auth init result" do # @bulletin_app_auth.roles.should have(2).item #teacher staff # @bulletin_app_auth.sub_roles.should have(1).item #ta # end # it "@bulletin_app_auth should have Roles: Staff , Teacher " do # key_ary = @bulletin_app_auth.roles.collect do |role| # role.key # end # key_ary.sort.should == ["Staff","Teacher"].sort # end # it "bulletin_app_auth should have 3 auth users" do # user_ary = [@teacher,@staff,@good_g_stu] # @bulletin_app_auth.auth_users.sort.should == user_ary.sort # check_user_has_app user_ary # end # it "Adding a undergraduate stud into app_auth by privilege list" do # user_ary = [@teacher,@staff,@good_g_stu,@good_ug_stu_1] # @bulletin_app_auth.add_user_to_privilege_list @good_ug_stu_1 # @bulletin_app_auth.auth_users.sort.should == user_ary.sort # check_user_has_app user_ary # end # it "Adding all graudated-stud into app_auth" do # user_ary = [@teacher,@staff,@good_g_stu,@bad_g_stu] # @bulletin_app_auth.add_sub_role @graduated_SRK # @bulletin_app_auth.auth_users.sort.should == user_ary.sort # check_user_has_app user_ary # end # it "Blocking bad-graduate student" do # user_ary =[@teacher,@staff,@good_g_stu] # @bulletin_app_auth.add_sub_role @graduated_SRK # @bulletin_app_auth.add_user_to_black_list @bad_g_stu # @bulletin_app_auth.auth_users_after_block_list.sort.should == user_ary.sort # check_user_has_app user_ary # end # it "Removing all graudated-stud from app_auth" do # user_ary =[@teacher,@staff,@good_g_stu] # @bulletin_app_auth.add_sub_role @graduated_SRK # @bulletin_app_auth.remove_sub_role @graduated_SRK # @bulletin_app_auth.auth_users.sort.should == user_ary.sort # check_user_has_app user_ary # end # # it "@bulletin_app_auth should have one Privialage user which is belongs to Staff" do # # p_user_ary = @bulletin_app_auth.privilege_users.collect do |p_user| # # p_user.roles.key # # end # # p_user_ary.should include("Staff") # # end # # it "@bulletin_app_auth should have one student listed at blocklist" do # # @bad_stu = User.first(conditions:{email:"a_bad_g_stud@rulingcom.com"}) # # @bulletin_app_auth.blocked_users.should have(1).item # # @bulletin_app_auth.blocked_users.should include(@bad_stu) # # end # # it "[Development #1]-1.Authorizing roles: roles + blocklist" do # # @good_stu = User.first(conditions:{email:"a_good_g_stud@rulingcom.com"}) # # @teacher = User.first(conditions:{email:"a_teacher@rulingcom.com"}) # # @staff = User.first(conditions:{email:"a_staff@rulingcom.com"}) # # ary = [@good_stu,@teacher,@staff] # # @bulletin_app_auth.auth_users_after_block_list.should == ary # # end # # # # it "[Development #1]-2.Authorizing single users: list of users [new_user1~2]" do # # user_emails = ["new_user1","new_user2","new_user3","new_user4"] # # user_emails.each do |user_email| # # email=user_email+"@rulingcom.com" # # new_user = User.new :email=> email # # new_user.save # # end # # user1= User.first(conditions:{email:"new_user1@rulingcom.com"}) # # user2= User.first(conditions:{email:"new_user2@rulingcom.com"}) # # user3= User.first(conditions:{email:"new_user3@rulingcom.com"}) # # user4= User.first(conditions:{email:"new_user4@rulingcom.com"}) # # # # @bulletin_app_auth.privilege_users << user1 # # @bulletin_app_auth.privilege_users << user2 # # # # @bulletin_app_auth.auth_users_after_block_list.should include(user1,user2) # # @bulletin_app_auth.auth_users_after_block_list.should_not include(user3,user4) # # # # end # # # # it "[Development #1]-3.Authorizing roles and single users: roles + blocklist + list of users" do # # @bulletin_app_auth.auth_users.should have(7).item # # end # # # # it "[Development #1]-4.Authorizing all: blocklist" do # # @bad_stu = User.first(conditions:{email:"a_bad_g_stud@rulingcom.com"}) # # @new_bulletin_app_auth = (AppAuth.new :all => true) # # @new_bulletin_app_auth.blocked_users << @bad_stu # # # # @new_bulletin_app_auth.auth_users.should == User.all.entries # # @new_bulletin_app_auth.auth_users_after_block_list.should_not include(@bad_stu) # # @new_bulletin_app_auth.save! # # end # def check_user_has_app(user_ary) # user_ary.each do |user| # user.avb_apps.should include(@bulletin_app_auth) # end # end # end # end # end