setup_controller.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:1k
源码类别:

Ajax

开发平台:

Others

  1. class SetupController < ApplicationController
  2.   before_filter :check_config, :only => 'index'
  3.   layout 'setup'
  4.   
  5.   def index
  6.     if request.post?
  7.       Blog.transaction do
  8.         this_blog.blog_name = params[:setting][:blog_name]  
  9.         this_blog.base_url = blog_base_url
  10.         this_blog.save    
  11.       end
  12.       
  13.       @user = User.new(:login => 'admin', :email => params[:setting][:email])
  14.         @user.password = generate_password
  15.         session[:tmppass] = @user.password
  16.         @user.name = @user.login
  17.         if @user.save
  18.           self.current_user = @user
  19.           session[:user_id] = @user.id
  20.           # Crappy hack : by default, the auto generated post is user_id less and it makes Typo crash
  21.           if User.count == 1
  22.             art = Article.find(:first)
  23.             art.user_id = @user.id
  24.             art.save
  25.           end
  26.         end
  27.       redirect_to :action => 'confirm'
  28.     end
  29.   end
  30.   private
  31.   def generate_password
  32.     chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
  33.     newpass = ""
  34.     1.upto(7) { |i| newpass << chars[rand(chars.size-1)] }
  35.     return newpass
  36.   end
  37.   
  38.   def check_config
  39.     return unless this_blog.configured?
  40.     redirect_to :controller => 'articles', :action => 'index'
  41.   end
  42. end