zcore 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin_controller.rb +5 -0
- data/app/controllers/auth_controller.rb +23 -0
- data/app/controllers/groups_controller.rb +90 -0
- data/app/controllers/roles_controller.rb +57 -0
- data/app/controllers/users_controller.rb +62 -0
- data/app/helpers/accounts_helper.rb +3 -0
- data/app/helpers/application_helper.rb +4 -0
- data/app/models/group.rb +22 -0
- data/app/models/role.rb +18 -0
- data/app/models/user.rb +54 -0
- data/app/views/admin/index.html.erb +0 -0
- data/app/views/auth/login.html.erb +11 -0
- data/app/views/groups/_group.erb +19 -0
- data/app/views/groups/edit.html.erb +2 -0
- data/app/views/groups/index.html.erb +21 -0
- data/app/views/groups/new.html.erb +2 -0
- data/app/views/groups/show.html.erb +9 -0
- data/app/views/layouts/admin.html.erb +25 -0
- data/app/views/roles/index.html.erb +7 -0
- data/app/views/users/_form.erb +17 -0
- data/app/views/users/_userlist.erb +29 -0
- data/app/views/users/append.html.erb +1 -0
- data/app/views/users/edit.html.erb +1 -0
- data/app/views/users/index.html.erb +7 -0
- data/app/views/users/new.html.erb +1 -0
- data/app/views/users/search.html.erb +7 -0
- data/app/views/users/show.html.erb +20 -0
- data/config/initializers/dbinit.rb +8 -0
- data/config/routes.rb +79 -0
- data/lib/zcore.rb +8 -0
- metadata +93 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class AuthController < ApplicationController
|
3
|
+
layout nil
|
4
|
+
def login
|
5
|
+
if request.post?
|
6
|
+
if u=User.auth(params[:login],params[:password])
|
7
|
+
session[:slast_lip]=u.last_lip
|
8
|
+
session[:slast_ltime]=u.last_ltime
|
9
|
+
u.update_attributes(:last_lip=>request.remote_ip,:last_ltime=>Time.now)
|
10
|
+
session[:slname]=params[:login]
|
11
|
+
redirect_to root_path
|
12
|
+
else
|
13
|
+
flash[:error]="登录失败!"
|
14
|
+
redirect_to login_path
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
def logout
|
19
|
+
session[:slname]=nil
|
20
|
+
flash[:notice]="注销成功。"
|
21
|
+
redirect_to root_path
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class GroupsController < ApplicationController
|
3
|
+
layout "admin"
|
4
|
+
before_filter :findgroup,:only=>[:edit,:get_logo,:show,:update,:destroy]
|
5
|
+
before_filter :check_logo,:only =>[:create,:update]
|
6
|
+
|
7
|
+
def findgroup
|
8
|
+
@group=Group.find(params[:id])
|
9
|
+
end
|
10
|
+
|
11
|
+
def index
|
12
|
+
@page,@per_page=params[:page],5
|
13
|
+
@minum = @page ? @per_page*(@page.to_i-1) : 0
|
14
|
+
@groups=Group.paginate :pages=>@page,:per_page=>@per_page
|
15
|
+
end
|
16
|
+
|
17
|
+
def new
|
18
|
+
@group=Group.new
|
19
|
+
end
|
20
|
+
|
21
|
+
def edit
|
22
|
+
end
|
23
|
+
|
24
|
+
def show
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_logo
|
28
|
+
id=@group.logo["grid_id"]
|
29
|
+
if FileGrid.exist?(id)
|
30
|
+
f=FileGrid.get(id)
|
31
|
+
send_data(f.read,:type=>f.content_type)
|
32
|
+
#response.headers['Content-Type'] = f.content_type
|
33
|
+
else
|
34
|
+
render :text=>"文件不存在"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def handle_logo(logo)
|
39
|
+
filehash={}
|
40
|
+
Zbox::QmExt.resize(logo.tempfile.path,:size=>:tinylogo)
|
41
|
+
file_id=FileGrid.put(File.open(logo.tempfile.path),:filename=>logo.original_filename)
|
42
|
+
thefile=FileGrid.get(file_id)
|
43
|
+
filehash["grid_id"]=file_id
|
44
|
+
filehash["content_type"]=logo.content_type
|
45
|
+
filehash["chunk_size"]=thefile.chunk_size
|
46
|
+
filehash["filename"]=thefile.filename
|
47
|
+
return filehash
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
def check_logo
|
52
|
+
logo=params[:group][:logo]
|
53
|
+
params[:group][:logo] = logo.blank? ? nil : handle_logo(logo)
|
54
|
+
end
|
55
|
+
|
56
|
+
def create
|
57
|
+
@group=Group.new(params[:group])
|
58
|
+
|
59
|
+
if @group.save
|
60
|
+
flash[:notice]="群组创建成功"
|
61
|
+
else
|
62
|
+
flash[:error]="群组创建失败"
|
63
|
+
end
|
64
|
+
redirect_to :back and return
|
65
|
+
end
|
66
|
+
|
67
|
+
def update
|
68
|
+
logo=params[:group][:logo]
|
69
|
+
params[:group][:logo]=File.read(logo.tempfile.path)
|
70
|
+
if @group.update_attributes(params[:group])
|
71
|
+
flash[:notice]="群组更新成功"
|
72
|
+
else
|
73
|
+
flash[:error]="群组更新失败"
|
74
|
+
end
|
75
|
+
redirect_to :back and return
|
76
|
+
end
|
77
|
+
|
78
|
+
def destroy
|
79
|
+
|
80
|
+
#if @group.delete
|
81
|
+
params[:group][:enable]=false
|
82
|
+
if @group.update_attributes(params[:group])
|
83
|
+
flash[:notice]="群组删除成功"
|
84
|
+
else
|
85
|
+
flash[:error]="群组删除失败"
|
86
|
+
end
|
87
|
+
redirect_to :back and return
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class RolesController < ApplicationController
|
3
|
+
layout "admin"
|
4
|
+
before_filter :findrole,:only=>[:edit,:show,:update,:destroy]
|
5
|
+
|
6
|
+
def findrole
|
7
|
+
@role=Role.find(params[:id])
|
8
|
+
end
|
9
|
+
|
10
|
+
def index
|
11
|
+
@page,@per_page=params[:page],5
|
12
|
+
@minum = @page ? @per_page*(@page.to_i-1) : 0
|
13
|
+
@roles=Role.paginate :pages=>@page,:per_page=>@per_page
|
14
|
+
end
|
15
|
+
|
16
|
+
def new
|
17
|
+
@role=Role.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def edit
|
21
|
+
end
|
22
|
+
|
23
|
+
def show
|
24
|
+
end
|
25
|
+
|
26
|
+
def create
|
27
|
+
@role=Role.new(params[:role])
|
28
|
+
if @role.save
|
29
|
+
flash[:notice]="角色创建成功"
|
30
|
+
else
|
31
|
+
flash[:error]="角色创建失败"
|
32
|
+
end
|
33
|
+
redirect_to :back and return
|
34
|
+
end
|
35
|
+
|
36
|
+
def update
|
37
|
+
if @role.update_attributes(params[:role])
|
38
|
+
flash[:notice]="角色更新成功"
|
39
|
+
else
|
40
|
+
flash[:error]="角色更新失败"
|
41
|
+
end
|
42
|
+
redirect_to :back and return
|
43
|
+
end
|
44
|
+
|
45
|
+
def destroy
|
46
|
+
|
47
|
+
#if @role.delete
|
48
|
+
params[:role][:enable]=false
|
49
|
+
if @role.update_attributes(params[:role])
|
50
|
+
flash[:notice]="角色删除成功"
|
51
|
+
else
|
52
|
+
flash[:error]="角色删除失败"
|
53
|
+
end
|
54
|
+
redirect_to :back and return
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class UsersController < ApplicationController
|
3
|
+
layout "admin"
|
4
|
+
before_filter :finduser,:only=>[:show,:edit,:update,:destroy,:append]
|
5
|
+
before_filter :lip,:only=>[:create,:update]
|
6
|
+
def lip
|
7
|
+
request.remote_ip
|
8
|
+
end
|
9
|
+
def finduser
|
10
|
+
@user=User.find(params[:id])
|
11
|
+
end
|
12
|
+
|
13
|
+
def index
|
14
|
+
@page,@per_page=params[:page],5
|
15
|
+
@minum = @page ? @per_page*(@page.to_i-1) : 0
|
16
|
+
@users=User.paginate :page=>@page,:per_page=>@per_page,:order=>"created_at DESC"
|
17
|
+
end
|
18
|
+
def new
|
19
|
+
@user=User.new
|
20
|
+
end
|
21
|
+
def append
|
22
|
+
end
|
23
|
+
def create
|
24
|
+
@user=User.new(params[:user])
|
25
|
+
@user.last_lip=lip
|
26
|
+
#redirect_to @user.save ? users_path : new_user_path
|
27
|
+
if @user.save
|
28
|
+
redirect_to users_path
|
29
|
+
else
|
30
|
+
redirect_to new_user_path
|
31
|
+
end
|
32
|
+
end
|
33
|
+
def edit
|
34
|
+
end
|
35
|
+
|
36
|
+
def search
|
37
|
+
redirect_to users_path and return if params[:str].blank?
|
38
|
+
str=params[:str].strip
|
39
|
+
@users = ["!",">","<"].include?(str[0]) ? User.search_ltime(str) : User.search(str)
|
40
|
+
@page,@per_page=params[:page],5
|
41
|
+
@minum = @page ? @per_page*(@page.to_i-1) : 0
|
42
|
+
@users=@users.paginate :page=>@page,:per_page=>@per_page,:order=>"created_at DESC"
|
43
|
+
end
|
44
|
+
|
45
|
+
def update
|
46
|
+
params[:user][:last_ip]=lip
|
47
|
+
lpassword=params[:user][:lpassword]
|
48
|
+
params[:user][:lpassword] = lpassword.blank? ? @user.lpassword : User.encrypt(lpassword)
|
49
|
+
@user.update_attributes(params[:user])
|
50
|
+
redirect_to users_path
|
51
|
+
end
|
52
|
+
def show
|
53
|
+
end
|
54
|
+
def destroy
|
55
|
+
begin
|
56
|
+
@user.destroy
|
57
|
+
rescue
|
58
|
+
flash[:error]="删除失败!"
|
59
|
+
end
|
60
|
+
redirect_to users_path
|
61
|
+
end
|
62
|
+
end
|
data/app/models/group.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Group
|
3
|
+
include MongoMapper::Document
|
4
|
+
key :name,String,:required=>true,:unique=>true
|
5
|
+
key :creator,String
|
6
|
+
key :level,String
|
7
|
+
key :enable,Boolean
|
8
|
+
key :members,Array
|
9
|
+
key :summary,String
|
10
|
+
key :apply_pool,Array
|
11
|
+
key :options,Hash
|
12
|
+
key :logo_fileinfo,Hash
|
13
|
+
|
14
|
+
timestamps!
|
15
|
+
|
16
|
+
before_destroy :reserved_users
|
17
|
+
|
18
|
+
def reserved_users
|
19
|
+
raise "不能修改删除管理组" if ["admin"].include?(name)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/app/models/role.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Role
|
3
|
+
include MongoMapper::Document
|
4
|
+
key :name,String,:required=>true,:unique=>true
|
5
|
+
key :creator,String
|
6
|
+
key :range,Array #if it is for speciall groups role?
|
7
|
+
key :enable,Boolean
|
8
|
+
|
9
|
+
timestamps!
|
10
|
+
|
11
|
+
before_destroy :reserved_roles
|
12
|
+
|
13
|
+
|
14
|
+
def reserved_roles
|
15
|
+
raise "不能修改删除系统角色" if ["system"].include?(name)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/app/models/user.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'digest'
|
3
|
+
class User
|
4
|
+
include MongoMapper::Document
|
5
|
+
key :lname,String,:required=>true,:unique=>true
|
6
|
+
key :lpassword,String
|
7
|
+
key :ltimes,Integer
|
8
|
+
key :status,String,:default=>"正常"
|
9
|
+
key :last_ltime,Time
|
10
|
+
key :last_lip,String
|
11
|
+
timestamps!
|
12
|
+
|
13
|
+
before_create :encrypt_password
|
14
|
+
before_destroy :reserved_users
|
15
|
+
|
16
|
+
def encrypt_password
|
17
|
+
self.lpassword=encrypt(self.lpassword)
|
18
|
+
end
|
19
|
+
|
20
|
+
def search(str)
|
21
|
+
pat=/#{str}/
|
22
|
+
where("$or"=>[{:lname=>pat},{:status=>pat},{:last_lip=>pat}])
|
23
|
+
end
|
24
|
+
|
25
|
+
def search_ltime(str)
|
26
|
+
op=str[0]
|
27
|
+
str[0]=""
|
28
|
+
str=str.strip
|
29
|
+
case op
|
30
|
+
when ">"
|
31
|
+
where(:last_ltime.gt=>Time.parse(str))
|
32
|
+
when "<"
|
33
|
+
where(:last_ltime.lt=>Time.parse(str))
|
34
|
+
when "!"
|
35
|
+
stime=str.split(",")
|
36
|
+
start_at=Time.parse(stime[0])
|
37
|
+
stop_at=Time.parse(stime[1])
|
38
|
+
where(:last_ltime=>{"$gte"=>start_at,"$lte"=>stop_at})
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def encrypt(password)
|
43
|
+
Digest::SHA2.hexdigest(password)
|
44
|
+
end
|
45
|
+
|
46
|
+
def reserved_users
|
47
|
+
raise "不能修改删除根用户" if ["root"].include?(lname)
|
48
|
+
end
|
49
|
+
|
50
|
+
def auth(user,passwd)
|
51
|
+
find_by_lname_and_lpassword_and_status(user,self.encrypt(passwd),"正常")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= form_for @group,:html=>{:multipart=>true} do |f| %>
|
2
|
+
<table>
|
3
|
+
<tr>
|
4
|
+
<td> 群组名称: </td>
|
5
|
+
<td> <%= f.text_field :name %> </td>
|
6
|
+
</tr>
|
7
|
+
<tr>
|
8
|
+
<td> 群组简介: </td>
|
9
|
+
<td> <%= f.text_area :summary %> </td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<td> 群组标志: </td>
|
13
|
+
<td> <%= f.file_field :logo %> </td>
|
14
|
+
</tr>
|
15
|
+
<tr>
|
16
|
+
<td colspan=2> <%= f.submit stbname %> </td>
|
17
|
+
</tr>
|
18
|
+
</table>
|
19
|
+
<% end %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<table>
|
2
|
+
<thead>
|
3
|
+
<td>编号</td>
|
4
|
+
<td>群组名称</td>
|
5
|
+
<td>标志</td>
|
6
|
+
<td>操作 <%= link_to "增加" ,new_group_path %>
|
7
|
+
</td>
|
8
|
+
</thead>
|
9
|
+
<% @groups.each do |group| %>
|
10
|
+
<tr>
|
11
|
+
<td><%= @minum+=1 %></td>
|
12
|
+
<td><%= link_to group.name,group_path(group) %></td>
|
13
|
+
|
14
|
+
<td><% if group.logo %><img src=<%= get_logo_group_path(group) %>> <% end %></td>
|
15
|
+
<td>
|
16
|
+
<%= link_to "编辑" , edit_group_path(group) %>
|
17
|
+
<%= link_to "删除" , group_path(group),:method => "delete",:confirm= =>"真的删除吗?" %>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
<%= will_paginate @groups %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dss</title>
|
5
|
+
<%#= stylesheet_link_tag :all %>
|
6
|
+
<%#= javascript_include_tag("jquery-1.5.min","rails") %>
|
7
|
+
<%#= javascript_include_tag :defaults %>
|
8
|
+
<style type="text/css"><%= yield :stylesheets %></style>
|
9
|
+
<%= csrf_meta_tag %>
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<div>
|
13
|
+
<%= link_to "用户管理",users_path %>
|
14
|
+
<%= link_to "角色管理",roles_path %>
|
15
|
+
<%= link_to "群组管理",groups_path %>
|
16
|
+
</div>
|
17
|
+
<div>
|
18
|
+
<%= flash[:error] %>
|
19
|
+
<%= flash[:notice] %>
|
20
|
+
</div>
|
21
|
+
<div>
|
22
|
+
<%= yield %>
|
23
|
+
</div>
|
24
|
+
</body>
|
25
|
+
</html>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<table>
|
2
|
+
<%= form_for :user, @user, :url => { :action => ac },:html => { :method => mtd } do |f| %>
|
3
|
+
<tr>
|
4
|
+
<td> 登录名</td><td> <%= f.text_field :lname %></td>
|
5
|
+
</tr>
|
6
|
+
<tr>
|
7
|
+
<td> 密码</td><td> <%= f.password_field :lpassword,:value=>nil %></td>
|
8
|
+
</tr>
|
9
|
+
<tr>
|
10
|
+
<td> 状态</td><td> <%= f.select :status,options_for_select(["正常","停用"],@user.status) %></td>
|
11
|
+
</tr>
|
12
|
+
<tr>
|
13
|
+
<td colspan=2> <%= submit_tag submit %></td>
|
14
|
+
</tr>
|
15
|
+
|
16
|
+
<% end %>
|
17
|
+
</table>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<table>
|
2
|
+
<thead>
|
3
|
+
<td></td>
|
4
|
+
<td>登录名</td>
|
5
|
+
<td>状态</td>
|
6
|
+
<td>最后登录时间</td>
|
7
|
+
<td>最后登录IP</td>
|
8
|
+
<td>创建时间</td>
|
9
|
+
<td>更新时间</td>
|
10
|
+
<td colspan="3">操作
|
11
|
+
<%= link_to "增加",new_user_path %>
|
12
|
+
</td>
|
13
|
+
</thead>
|
14
|
+
<% @users.each do |u| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= @minum+=1 %></td>
|
17
|
+
<td><%= u.lname %></td>
|
18
|
+
<td><%= u.status %></td>
|
19
|
+
<td><%= u.last_ltime %></td>
|
20
|
+
<td><%= u.last_lip %></td>
|
21
|
+
<td><%= u.created_at.to_fmt1 %></td>
|
22
|
+
<td><%= u.updated_at.to_fmt1 %></td>
|
23
|
+
<td><%= link_to "用户信息",user_path(u) %></td>
|
24
|
+
<td><%= link_to "修改",edit_user_path(u) %></td>
|
25
|
+
<td><%= link_to "追加",append_user_path(u) %></td>
|
26
|
+
<td><%= link_to "删除",user_path(u),:method=>"delete",:confirm=>"#{u.lname}将被删除,确信吗?" if u.lname!="root" %></td>
|
27
|
+
</tr>
|
28
|
+
<% end %>
|
29
|
+
</table>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial=>"form",:locals=>{:ac=>"create",:submit=>"创建",:mtd=>"post"} %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial=>"form",:locals=>{:ac=>"update",:submit=>"修改",:mtd=>"put" } %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial=>"form",:locals=>{:ac=>"create",:submit=>"创建",:mtd=>"post"} %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td>登录名</td><td><%= @user.lname %></td>
|
4
|
+
</tr>
|
5
|
+
<tr>
|
6
|
+
<td>用户状态</td><td><%= @user.status %></td>
|
7
|
+
</tr>
|
8
|
+
<tr>
|
9
|
+
<td>上次登录时间</td><td><%= @user.lname==session[:slname] ? session[:slast_ltime] : @user.last_ltime %></td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<td>上次登录IP</td><td><%= @user.lname==session[:slname] ? session[:slast_lip] : @user.last_lip %></td>
|
13
|
+
</tr>
|
14
|
+
<tr>
|
15
|
+
<td>创建时间</td><td><%= @user.created_at %></td>
|
16
|
+
</tr>
|
17
|
+
<tr>
|
18
|
+
<td>更新时间</td><td><%= @user.updated_at %></td>
|
19
|
+
</tr>
|
20
|
+
</table>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
dbname=Rails.application.class.parent_name+"-"+Rails.env
|
2
|
+
MongoMapper.connection = Mongo::Connection.new
|
3
|
+
MongoMapper.database = dbname
|
4
|
+
db = Mongo::Connection.new.db(dbname)
|
5
|
+
FileGrid = Mongo::Grid.new(db)
|
6
|
+
unless User.find(:lname=>"root")
|
7
|
+
User.create(:lname=>"root",:lpassword=>"rootisadmin")
|
8
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
Rails::Application.routes.draw do
|
3
|
+
scope "/admin" do
|
4
|
+
|
5
|
+
resources :users do
|
6
|
+
get 'append', :on => :member
|
7
|
+
match 'search', :on => :collection
|
8
|
+
end
|
9
|
+
|
10
|
+
resources :roles do
|
11
|
+
end
|
12
|
+
|
13
|
+
resources :groups do
|
14
|
+
get "get_logo", :on => :member
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
match 'admin' => 'admin#index'
|
20
|
+
match 'login' => 'auth#login'
|
21
|
+
match 'logout' => 'auth#logout'
|
22
|
+
|
23
|
+
# The priority is based upon order of creation:
|
24
|
+
# first created -> highest priority.
|
25
|
+
|
26
|
+
# Sample of regular route:
|
27
|
+
# match 'products/:id' => 'catalog#view'
|
28
|
+
# Keep in mind you can assign values other than :controller and :action
|
29
|
+
|
30
|
+
# Sample of named route:
|
31
|
+
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
|
32
|
+
# This route can be invoked with purchase_url(:id => product.id)
|
33
|
+
|
34
|
+
# Sample resource route (maps HTTP verbs to controller actions automatically):
|
35
|
+
# resources :products
|
36
|
+
|
37
|
+
# Sample resource route with options:
|
38
|
+
# resources :products do
|
39
|
+
# member do
|
40
|
+
# get 'short'
|
41
|
+
# post 'toggle'
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# collection do
|
45
|
+
# get 'sold'
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
|
49
|
+
# Sample resource route with sub-resources:
|
50
|
+
# resources :products do
|
51
|
+
# resources :comments, :sales
|
52
|
+
# resource :seller
|
53
|
+
# end
|
54
|
+
|
55
|
+
# Sample resource route with more complex sub-resources
|
56
|
+
# resources :products do
|
57
|
+
# resources :comments
|
58
|
+
# resources :sales do
|
59
|
+
# get 'recent', :on => :collection
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
|
63
|
+
# Sample resource route within a namespace:
|
64
|
+
# namespace :admin do
|
65
|
+
# # Directs /admin/products/* to Admin::ProductsController
|
66
|
+
# # (app/controllers/admin/products_controller.rb)
|
67
|
+
# resources :products
|
68
|
+
# end
|
69
|
+
|
70
|
+
# You can have the root of your site routed with "root"
|
71
|
+
# just remember to delete public/index.html.
|
72
|
+
#root :to => "welcome#index"
|
73
|
+
|
74
|
+
# See how all your routes lay out with "rake routes"
|
75
|
+
|
76
|
+
# This is a legacy wild controller route that's not recommended for RESTful applications.
|
77
|
+
# Note: This route will make all actions in every controller accessible via GET requests.
|
78
|
+
# match ':controller(/:action(/:id(.:format)))'
|
79
|
+
end
|
data/lib/zcore.rb
ADDED
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zcore
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- zxy
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-04-27 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: unigems
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
description: zcore package
|
27
|
+
email: zxy@lwqzx.net
|
28
|
+
executables: []
|
29
|
+
|
30
|
+
extensions: []
|
31
|
+
|
32
|
+
extra_rdoc_files: []
|
33
|
+
|
34
|
+
files:
|
35
|
+
- app/controllers/admin_controller.rb
|
36
|
+
- app/controllers/auth_controller.rb
|
37
|
+
- app/controllers/groups_controller.rb
|
38
|
+
- app/controllers/roles_controller.rb
|
39
|
+
- app/controllers/users_controller.rb
|
40
|
+
- app/helpers/accounts_helper.rb
|
41
|
+
- app/helpers/application_helper.rb
|
42
|
+
- app/models/group.rb
|
43
|
+
- app/models/role.rb
|
44
|
+
- app/models/user.rb
|
45
|
+
- app/views/admin/index.html.erb
|
46
|
+
- app/views/auth/login.html.erb
|
47
|
+
- app/views/groups/_group.erb
|
48
|
+
- app/views/groups/edit.html.erb
|
49
|
+
- app/views/groups/index.html.erb
|
50
|
+
- app/views/groups/new.html.erb
|
51
|
+
- app/views/groups/show.html.erb
|
52
|
+
- app/views/layouts/admin.html.erb
|
53
|
+
- app/views/roles/index.html.erb
|
54
|
+
- app/views/users/_form.erb
|
55
|
+
- app/views/users/_userlist.erb
|
56
|
+
- app/views/users/append.html.erb
|
57
|
+
- app/views/users/edit.html.erb
|
58
|
+
- app/views/users/index.html.erb
|
59
|
+
- app/views/users/new.html.erb
|
60
|
+
- app/views/users/search.html.erb
|
61
|
+
- app/views/users/show.html.erb
|
62
|
+
- config/initializers/dbinit.rb
|
63
|
+
- config/routes.rb
|
64
|
+
- lib/zcore.rb
|
65
|
+
homepage: http://www.lwqzx.net
|
66
|
+
licenses: []
|
67
|
+
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "0"
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: "0"
|
85
|
+
requirements: []
|
86
|
+
|
87
|
+
rubyforge_project:
|
88
|
+
rubygems_version: 1.7.2
|
89
|
+
signing_key:
|
90
|
+
specification_version: 3
|
91
|
+
summary: zapps core engine
|
92
|
+
test_files: []
|
93
|
+
|