# encoding: utf-8 class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendController before_filter :authenticate_user! before_filter :is_admin? include AdminHelper # layout 'admin' def preview_and_approve @bulletin = Bulletin.find params[:bulletin_id] end def approve notice = "" @bulletin = Bulletin.find params[:bulletin_id] @bulletin.proc_check(params[:bulletin][:is_checked],params[:bulletin][:not_checked_reason]) @bulletin.de_pending if @bulletin.save if @bulletin.email_sent == true && @bulletin.is_checked == true && !@bulletin.is_rejected send_email_data(@bulletin) @bulletin.email_sent = false @bulletin.save end notice = t('announcement.approve_bulletin_success') else notice = t('announcement.approve_bulletin_fail') end redirect_to(panel_announcement_back_end_bulletins_url,:notice => notice) end def setting @sys_users = User.all(conditions: {admin: false}).includes(:avatar).not_guest_user @bulletin_categorys = BulletinCategory.all @options_from_collection_for_select_bulletin_categorys = @bulletin_categorys.collect{|bc| [bc.title,bc.id] } if params.has_key? :category @bulletin_category = BulletinCategory.find params[:category][:id] else @bulletin_category = @bulletin_categorys.first end preload_object_auth = @bulletin_category.get_object_auth_by_title('fact_check') @users_array = preload_object_auth.privilege_users rescue [] respond_to do |format| format.html format.js end end def update_setting object_auth = update_setting_by_params if object_auth.save! flash[:notice] = t('update.success_') else flash[:notice] = t('update.fail') end end def user_list @bulletin_category = BulletinCategory.find params[:category][:id] end protected def update_setting_by_params category = BulletinCategory.find params[:category][:id] privilege_users = params[:users].collect{|key,value| User.find key } rescue [] object_auth_ary = category.object_auths.where(title: 'fact_check') || (category.object_auths.create :title=> 'fact_check') object_auth = object_auth_ary.first object_auth.privilege_users = privilege_users object_auth end def send_email_data(bulletin) @site = Site.first @user = User.find(bulletin.create_user_id) @host = request.host_with_port @group_mail = MailCron.get_send_group_mail( bulletin.email_user_ids , bulletin.other_mailaddress ) if !@group_mail.join.blank? @mail_content = { "host" => @host, "lang" => I18n.locale, "site_title" => @site.title, "title" => bulletin.title, "template" => 'announcement_mailer/cron_mail', "url" => "http://#{@host}#{panel_announcement_front_end_bulletin_path(bulletin, :category_id => bulletin.category.id)}" } @mail_cron = { :mail_from_app => 'announcement', # :mail_from => @user.email, # :mail_reply_to => @user.email, :mail_subject => "#{t("announcement.mail_subject",:site_title => @site.title)}:#{bulletin.title}", :mail_to => @group_mail.join(','), :mail_content => @mail_content , :mail_sentdate => bulletin.email_sentdate, :create_user_id => bulletin.create_user_id, :update_user_id => bulletin.create_user_id } @mail_cron = MailCron.new(@mail_cron) @mail_cron.save end end end