Skip to content

Commit

Permalink
增加用户管理,登陆认证,注册等功能
Browse files Browse the repository at this point in the history
  • Loading branch information
missall committed Aug 24, 2011
1 parent 08c02d3 commit 4919fa3
Show file tree
Hide file tree
Showing 46 changed files with 1,451 additions and 12 deletions.
1 change: 1 addition & 0 deletions Gemfile
Expand Up @@ -6,6 +6,7 @@ gem 'net-ssh', '2.2.0'
gem 'googlecharts', '1.6.7'
gem 'web-app-theme', '0.7.0'
gem 'will_paginate', '~>3.0.0'
gem 'authlogic'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

Expand Down
4 changes: 4 additions & 0 deletions Gemfile.lock
Expand Up @@ -29,6 +29,9 @@ GEM
activesupport (= 3.0.10)
activesupport (3.0.10)
arel (2.0.10)
authlogic (3.0.3)
activerecord (>= 3.0.7)
activerecord (>= 3.0.7)
builder (2.1.2)
erubis (2.6.6)
abstract (>= 1.0.0)
Expand Down Expand Up @@ -77,6 +80,7 @@ PLATFORMS
ruby

DEPENDENCIES
authlogic
googlecharts (= 1.6.7)
net-ssh (= 2.2.0)
pg (= 0.11.0)
Expand Down
25 changes: 25 additions & 0 deletions app/controllers/application_controller.rb
@@ -1,3 +1,28 @@
# coding: utf-8
class ApplicationController < ActionController::Base
protect_from_forgery
layout 'server'
filter_parameter_logging :password
helper_method :current_user

def auth_current_user
unless current_user
flash[:notice] = "你必须登陆后才能访问此页面"
redirect_to login_path
else

end
end

private

def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end

def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
end
4 changes: 3 additions & 1 deletion app/controllers/servers_controller.rb
Expand Up @@ -2,10 +2,11 @@
require 'gchart'
class ServersController < ApplicationController
layout 'server'
before_filter :auth_current_user
# GET /servers
# GET /servers.xml
def index
@servers = Server.paginate(:page => params[:page],:per_page => 10)
@servers = Server.paginate(:page => params[:page],:per_page => 10).order('id asc')
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @servers }
Expand All @@ -18,6 +19,7 @@ def show
@server = Server.find(params[:id])
ssh = Net::SSH.start(@server.ip_address,@server.login_name,
:password=> @server.password)
@server.status = 1 if ssh
ssh.exec!("export TERM=xterm-color")
output = ssh.exec!("df -h /home")
result = ssh.exec!('top -bn 1')
Expand Down
56 changes: 56 additions & 0 deletions app/controllers/user_sessions_controller.rb
@@ -0,0 +1,56 @@
# coding: utf-8
class UserSessionsController < ApplicationController
before_filter :auth_current_user,:except => [:new,:create]
def new
@user_session = UserSession.new

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user_session }
end
end

# POST /user_sessions
# POST /user_sessions.xml
def create
@user_session = UserSession.new(params[:user_session])

respond_to do |format|
if @user_session.save
format.html { redirect_to(servers_path, :notice => '登陆成功,请继续操作。。。') }
format.xml { render :xml => @user_session, :status => :created, :location => @user_session }
else
format.html { render :action => "new" }
format.xml { render :xml => @user_session.errors, :status => :unprocessable_entity }
end
end
end

# PUT /user_sessions/1
# PUT /user_sessions/1.xml
def update
@user_session = UserSession.find(params[:id])

respond_to do |format|
if @user_session.update_attributes(params[:user_session])
format.html { redirect_to(@user_session, :notice => 'User session was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user_session.errors, :status => :unprocessable_entity }
end
end
end

# DELETE /user_sessions/1
# DELETE /user_sessions/1.xml
def destroy
@user_session = UserSession.find
@user_session.destroy

respond_to do |format|
format.html { redirect_to(new_user_session_path) }
format.xml { head :ok }
end
end
end
83 changes: 83 additions & 0 deletions app/controllers/users_controller.rb
@@ -0,0 +1,83 @@
# coding: utf-8
class UsersController < ApplicationController
layout 'server'
before_filter :auth_current_user,:except => [:new,:create]
# GET /users
# GET /users.xml
def index
@users = User.paginate(:page => params[:page],:per_page => 10)

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end

# GET /users/1
# GET /users/1.xml
def show
@user = User.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end

# GET /users/new
# GET /users/new.xml
def new
@user = User.new

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end

# GET /users/1/edit
def edit
@user = User.find(params[:id])
end

# POST /users
# POST /users.xml
def create
@user = User.new(params[:user])
if @user.save
#format.html { redirect_to(@user, :notice => 'User was successfully created.') }
flash[:notice] = "注册成功,请登陆..."
redirect_to login_path
else
render :action => "new"
end
end

# PUT /users/1
# PUT /users/1.xml
def update
@user = User.find(params[:id])

respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end

# DELETE /users/1
# DELETE /users/1.xml
def destroy
@user = User.find(params[:id])
@user.destroy

respond_to do |format|
format.html { redirect_to(users_url) }
format.xml { head :ok }
end
end
end
2 changes: 2 additions & 0 deletions app/helpers/user_sessions_helper.rb
@@ -0,0 +1,2 @@
module UserSessionsHelper
end
2 changes: 2 additions & 0 deletions app/helpers/users_helper.rb
@@ -0,0 +1,2 @@
module UsersHelper
end
3 changes: 3 additions & 0 deletions app/models/user.rb
@@ -0,0 +1,3 @@
class User < ActiveRecord::Base
acts_as_authentic
end
3 changes: 3 additions & 0 deletions app/models/user_session.rb
@@ -0,0 +1,3 @@
class UserSession < Authlogic::Session::Base
attr:login_name
end
15 changes: 11 additions & 4 deletions app/views/layouts/server.html.erb
Expand Up @@ -12,14 +12,21 @@
<h1><a href="/">服务器监控系统</a></h1>
<div id="user-navigation">
<ul class="wat-cf">
<% if current_user %>
<li class="current_user"><%= current_user.login_name %></li>
<li><%= link_to "修改密码", servers_path %></li>
<li class="logout"><%= link_to "登出", servers_path %></li>
<li class="logout"><%= link_to "登出", logout_path %></li>
<% else %>
<li class="logout"><%= link_to "注册", register_path %></li>
<li><%= link_to "", register_path %></li>
<li class="logout"><%= link_to "登陆", login_path %></li>
<% end %>
</ul>
</div>
<div id="main-navigation">
<ul class="wat-cf">
<li class="first active"><%= link_to "服务器管理", servers_path %></li>
<li><%= link_to "服务器组管理", servers_path %></li>
<li><%= link_to "服务器管理", servers_path %></li>
<li><%= link_to "用户管理", users_path %></li>
</ul>
</div>
</div>
Expand All @@ -44,7 +51,7 @@
<h3>系统导航</h3>
<ul class="navigation">
<li><%= link_to "服务器管理", servers_path %></li>
<li><%= link_to "服务器组管理", servers_path %></li>
<li><%= link_to "用户管理", users_path %></li>
</div>
</div>
</div>
Expand Down
8 changes: 4 additions & 4 deletions app/views/servers/_form.html.erb
Expand Up @@ -14,22 +14,22 @@
<div class="group">
<%= f.label :服务器名称 %><br />
<%= f.text_field :name %>
<span class="description">Ex: vod-1</span>
<span class="description">Ex: vod-1</span>
</div>
<div class="group">
<%= f.label :服务器IP地址 %><br />
<%= f.text_field :ip_address %>
<span class="description">Ex: 58.196.13.xx</span>
<span class="description">Ex: 58.196.13.xx</span>
</div>
<div class="group">
<%= f.label :服务器登陆帐号 %><br />
<%= f.text_field :login_name %>
<span class="description">Ex: root</span>
<span class="description">Ex: root</span>
</div>
<div class="group">
<%= f.label :服务器登陆密码 %><br />
<%= f.text_field :password %>
<span class="description">Ex: xxxxx</span>
<span class="description">Ex: xxxxx</span>
</div>
<div class="actions">
<%= f.submit %>
Expand Down
17 changes: 17 additions & 0 deletions app/views/user_sessions/_form.html.erb
@@ -0,0 +1,17 @@
<%= form_for(@user_session) do |f| %>
<% if @user_session.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user_session.errors.count, "error") %> prohibited this user_session from being saved:</h2>

<ul>
<% @user_session.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>

<div class="actions">
<%= f.submit %>
</div>
<% end %>
6 changes: 6 additions & 0 deletions app/views/user_sessions/edit.html.erb
@@ -0,0 +1,6 @@
<h1>Editing user_session</h1>

<%= render 'form' %>
<%= link_to 'Show', @user_session %> |
<%= link_to 'Back', user_sessions_path %>
21 changes: 21 additions & 0 deletions app/views/user_sessions/index.html.erb
@@ -0,0 +1,21 @@
<h1>Listing user_sessions</h1>

<table>
<tr>
<th></th>
<th></th>
<th></th>
</tr>

<% @user_sessions.each do |user_session| %>
<tr>
<td><%= link_to 'Show', user_session %></td>
<td><%= link_to 'Edit', edit_user_session_path(user_session) %></td>
<td><%= link_to 'Destroy', user_session, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>

<br />

<%= link_to 'New User session', new_user_session_path %>
21 changes: 21 additions & 0 deletions app/views/user_sessions/new.html.erb
@@ -0,0 +1,21 @@
<div class="block">
<div class="secondary-navigation">
</div>
<div class="content">
<h2 class="title">用户登陆</h2>
<div class="inner">
<% form_for @user_session do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :邮箱 %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :密码 %><br />
<%= f.password_field :password %>
</p>
<p><%= f.submit "登陆->" %></p>
<% end %>
</div>
</div>
</div>
5 changes: 5 additions & 0 deletions app/views/user_sessions/show.html.erb
@@ -0,0 +1,5 @@
<p id="notice"><%= notice %></p>


<%= link_to 'Edit', edit_user_session_path(@user_session) %> |
<%= link_to 'Back', user_sessions_path %>

0 comments on commit 4919fa3

Please sign in to comment.