This commit is contained in:
z9hang 2014-07-16 15:16:20 +08:00
commit ab05bf6f36
7 changed files with 356 additions and 59 deletions

View File

@ -53,6 +53,7 @@ class UsersController < ApplicationController
include CustomFieldsHelper
include AvatarHelper
include WordsHelper
include GitlabHelper
# added by liuping 关注
@ -362,6 +363,10 @@ class UsersController < ApplicationController
end
def show
# 测试代码
#login_gitlab("admin@local.host","19840410")
# 测试结束
pre_count = 10 #limit
case params[:type]
when "1"

View File

@ -0,0 +1,115 @@
# Gitlab5.3 API操作接口
# Add by nwb
module GitlabHelper
# gitlab版本库数据本地保存的根目录
ROOT_PATH="/home/git/repositories/"
PROJECT_PATH_CUT = 40
# gitlab版本库所在服务器
#REPO_IP_ADDRESS = Setting.repository_domain
REPO_IP_ADDRESS = "http://192.168.137.100"
GITLAB_API = "/api/v3"
def self.gitlab_token=(token)
Thread.current[:gitlab_token] = token
end
# gitlab的登录验证信息
# add by nwb
def self.gitlab_token
Thread.current[:gitlab_token] ||= nil
end
# 登录gitlab
# add by nwb
def login_gitlab(email,password)
url = REPO_IP_ADDRESS + GITLAB_API + "/session"
uri = URI.parse(url)
data = {email:email, password:password}
begin
res = Net::HTTP.post_form(uri, data)
if res.code == '201'
temp = ActiveSupport::JSON.decode(res.body)
gitlab_token= temp['private_token']
return true
else
return false
end
rescue =>err
return false
end
end
# 创建项目
# add by nwb
def create_project(name)
end
# 为指定用户创建版本库
# name版本库名称 user:版本库创建后所属的用户
def create_project_for_user(name,user)
end
# 创建用户
# loginname登录名称 username用户姓名
def create_user (loginname,username,password,email)
end
# 删除用户
def delete_user(user_id)
end
# 给用户添加一个可操作的项目
def add_project_to_user(project_name,user)
end
def post(url, params)
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
if uri.scheme == 'https'
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.use_ssl = true
end
begin
request = Net::HTTP::Post.new(uri.request_uri)
request['Content-Type'] = 'application/json;charset=utf-8'
request['User-Agent'] = 'Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0'
request['X-ACL-TOKEN'] = 'xxx_token'
#request.set_form_data(params)
request.body = params.to_json
response = http.start { |http| http.request(request) }
puts response.body.inspect
return JSON.parse response.body
rescue =>err
return nil
end
end
def get(url, params)
uri = URI.parse(url)
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new uri.host, uri.port
if uri.scheme == 'https'
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.use_ssl = true
end
begin
request = Net::HTTP::Get.new uri.request_uri
request['Content-Type'] = 'application/json;charset=utf-8'
request['User-Agent'] = 'Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0'
request['X-ACL-TOKEN'] = 'xxx_token'
response = http.start { |http| http.request request }
puts response.body.inspect
return JSON.parse response.body
rescue =>err
return nil
end
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20140716021558) do
ActiveRecord::Schema.define(:version => 20140715015540) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@ -415,7 +415,6 @@ ActiveRecord::Schema.define(:version => 20140716021558) do
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "page_type"
t.integer "sort_type"
end
create_table "forums", :force => true do |t|

View File

@ -1,69 +1,126 @@
---
courses_006:
id: 6
tea_id: 193
name:
state: 0
courses_008:
id: 8
tea_id: 5
name: 分布式计算环境
state:
code:
time: 2013
extra: course2013-09-30_08-11-15
created_at: 2013-09-30 08:11:15.000000000 +08:00
updated_at: 2013-10-11 12:34:29.000000000 +08:00
extra: course2013-09-30_23-36-00
created_at: 2013-09-30 15:36:00.000000000 Z
updated_at: 2014-04-19 01:50:41.000000000 Z
location:
term: "秋季学期"
term: 春季学期
string:
password: '1234'
setup_time:
endup_time: '2014-04-18 00:00:00'
class_period: ''
school_id: 117
description: 介绍分布计算模型,分布计算平台,分布式软件开发环境等分布计算方向的概念、技术和环境,并通过实验提高学生的实践能力。
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_058:
id: 58
tea_id: 1168
name: 软件工程实践
state:
code:
time: 2014
extra: course2014-04-17_17-12-17
created_at: 2014-04-17 09:12:17.000000000 Z
updated_at: 2014-04-17 09:12:17.000000000 Z
location:
term: 春季学期
string:
password: SEP2014
setup_time:
endup_time:
class_period: '18'
school_id: 0
description: 国防科技大学计算机学院工程硕士专业选修课。
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_059:
id: 59
tea_id: 193
name: 软件项目管理
state:
code:
time: 2014
extra: course2014-04-18_18-10-46
created_at: 2014-04-18 10:10:46.000000000 Z
updated_at: 2014-04-18 10:10:46.000000000 Z
location:
term: 春季学期
string:
password: software
setup_time:
endup_time:
class_period:
courses_004:
id: 4
tea_id: 193
name:
state: 0
code:
time: 2013
extra: course2013-09-27_11-16-11
created_at: 2013-09-27 11:16:11.000000000 +08:00
updated_at: 2013-12-21 10:55:20.000000000 +08:00
location:
term: "秋季学期"
string:
password: '123456'
setup_time: ''
endup_time: ''
class_period: ''
courses_012:
id: 12
tea_id: 193
name:
class_period: '30'
school_id: 0
description: 面向“软件工程”专业的本科生
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_060:
id: 60
tea_id: 1179
name: android开发
state:
code:
time: 2013
extra: course2013-10-08_20-52-10
created_at: 2013-10-08 20:52:10.000000000 +08:00
updated_at: 2013-10-08 20:52:10.000000000 +08:00
time: 2014
extra: course2014-04-19_15-40-39
created_at: 2014-04-19 07:40:39.000000000 Z
updated_at: 2014-04-19 07:40:39.000000000 Z
location:
term: "秋季学期"
term: 春季学期
string:
password: software
password: trustie740208
setup_time:
endup_time:
class_period:
courses_020:
id: 20
tea_id: 193
name:
class_period: '48'
school_id: 37
description: ''
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_061:
id: 61
tea_id: 29
name: 测试课程1
state:
code:
time: 2013
extra: course2013-10-21_20-47-58
created_at: 2013-10-21 20:47:58.000000000 +08:00
updated_at: 2014-01-08 09:48:56.000000000 +08:00
time: 2014
extra: course2014-06-04_14-51-56
created_at: 2014-06-04 06:51:56.000000000 Z
updated_at: 2014-07-15 01:40:49.000000000 Z
location:
term: '秋季学期'
term: 春季学期
string:
password: multi-agent
setup_time: ''
endup_time: ''
class_period: ''
password: '1234'
setup_time:
endup_time: '2014-07-14 00:00:00'
class_period: '23'
school_id: 1579
description: '233'
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 0
inherit_members: 1

View File

@ -1,5 +1,3 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
person_one_extra:
id: 44
user_id: 29
@ -36,4 +34,43 @@ person_mao_extra:
student_id: nil
teacher_realname: nil
student_realname: nil
location_city: nil
location_city: nil
ue_lirongzhen:
id: 587
user_id: 642
birthday:
brief_introduction:
gender: 0
location: 河南
occupation: kylinos-cloud
work_experience:
zip_code:
created_at: 2014-03-18 14:52:55.000000000 Z
updated_at: 2014-03-26 07:19:04.000000000 Z
technical_title:
identity: 1
student_id: '14066023'
teacher_realname:
student_realname:
location_city: 周口
school_id:
ue_yingang:
id: 6
user_id: 5
birthday:
brief_introduction: 现有功能的精细化!
gender: 0
location: 湖南
occupation: 国防科学技术大学计算机学院
work_experience:
zip_code:
created_at: 2013-09-24 09:36:12.000000000 Z
updated_at: 2014-04-19 08:16:55.000000000 Z
technical_title: 副教授
identity: 0
student_id: ''
teacher_realname:
student_realname:
location_city: 长沙
school_id: 117

View File

@ -72,7 +72,7 @@ users_003:
login: dlopper
type: User
users_005:
id: 5
id: 12
created_on: 2006-07-19 19:33:19 +02:00
# Locked
status: 3
@ -165,5 +165,39 @@ groups_011:
id: 11
lastname: B Team
type: Group
users_yingang_teacher:
id: 5
login: jacknudt
hashed_password: dbbd96684c9a64afe9c4935ce0b517e5e9c08064
firstname:
lastname:
mail: jack_nudt@163.com
admin: false
status: 1
last_login_on: 2014-04-27 13:49:18.000000000 Z
language: zh
auth_source_id:
created_on: 2013-06-25 05:20:59.000000000 Z
updated_on: 2014-07-16 03:37:51.000000000 Z
type: User
identity_url:
mail_notification: only_my_events
salt: 92944df2ce4dae1a4f01007263c5d8bb
users_lirongzhen_student:
id: 642
login: lirongzhen
hashed_password: 070922b015398577c3ae0d87a68d5ffa93bf82e9
firstname: 荣振
lastname:
mail: lrongzheni@gmail.com
admin: false
status: 1
last_login_on: 2014-04-16 14:06:07.000000000 Z
language: zh
auth_source_id:
created_on: 2014-03-18 14:52:55.000000000 Z
updated_on: 2014-03-26 07:19:04.000000000 Z
type: User
identity_url:
mail_notification: all
salt: dca66d84fcb88b37de04dd3058f73576

View File

@ -0,0 +1,50 @@
require File.expand_path('../../test_helper', __FILE__)
class CoursesControllerTest < ActionController::TestCase
fixtures :courses, :users, :user_extensions, :roles, :members, :member_roles, :enabled_modules, :boards, :messages
def setup
@request.session[:user_id] = nil
@request.session[:ctime] = Time.now.to_i
@request.session[:atime] = Time.now.to_i
Setting.default_language = 'en'
end
def test_index_by_anonymous_should_not_show_private_projects
get :index
assert_response :success
assert_template 'index'
courses = assigns(:courses)
assert_not_nil courses
assert courses.all?(&:is_public?)
end
test "test_create_courses_anyone_temporary" do
@request.session[:user_id] = 5
Role.find(2).add_permisstion! :add_course
get :new
assert_redirected_to new_course_path
assert_response :success
end
# test "#index by non-admin user with view_time_entries permission should show overall spent time link" do
# @request.session[:user_id] = 3
# get :index
# assert_template 'index'
# assert_select 'a[href=?]', '/time_entries'
# end
#
# test "#index by non-admin user without view_time_entries permission should not show overall spent time link" do
# Role.find(2).remove_permission! :view_time_entries
# Role.non_member.remove_permission! :view_time_entries
# Role.anonymous.remove_permission! :view_time_entries
# @request.session[:user_id] = 3
#
# get :index
# assert_template 'index'
# assert_select 'a[href=?]', '/time_entries', 0
# end
end