diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index fa9dc3a28..fadeec3e0 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -55,7 +55,7 @@ class MembersController < ApplicationController user_ids.each do |user_id| members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id) ## added by nie - if params[:membership][:role_ids][0] == "3" + if(params[:membership][:role_ids] && params[:membership][:role_ids][0] == "3") project_info << ProjectInfo.new(:user_id => user_id, :project_id => @project.id) # ProjectInfo.create(:name => "test", :user_id => 123) end @@ -64,8 +64,8 @@ class MembersController < ApplicationController else members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => params[:membership][:user_id]) ## added by nie - if params[:membership][:role_ids][0] == "3" - project_info << Project_info.new(:role_ids => params[:membership][:role_ids], :user_id => params[:membership][:user_id]) + if(params[:membership][:role_ids] && params[:membership][:role_ids][0] == "3") + project_info << ProjectInfo.new(:role_ids => params[:membership][:role_ids], :user_id => params[:membership][:user_id]) end ## end end @@ -94,7 +94,7 @@ class MembersController < ApplicationController @member.role_ids = params[:membership][:role_ids] #added by nie - if params[:membership][:role_ids][0] == "3" + if(params[:membership][:role_ids] && params[:membership][:role_ids][0] == "3") @projectInfo = ProjectInfo.new(:user_id => @member.user_id, :project_id => @project.id) @projectInfo.save else diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 467b56257..babd06c28 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -484,6 +484,7 @@ class ProjectsController < ApplicationController @course_tag = params[:project][:project_type] if(@course_tag=="1") + if User.current.user_extensions.identity == 0 @course = Course.new @course.extra='course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s @course.safe_attributes = params[:project][:course] @@ -491,6 +492,7 @@ class ProjectsController < ApplicationController # added by bai @course.term = params[:term] @course.time = params[:time] + end # end # @course.save # project = ProjectInfo.create(:user_id => User.current.id, :project_id => @project.id) @@ -504,55 +506,57 @@ class ProjectsController < ApplicationController @project.identifier = @course.extra end if @course_tag == '1' - if@course.save - if validate_parent_id && @project.save - @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') - # Add current user as a project member if he is not admin - unless User.current.admin? - r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first - m = Member.new(:user => User.current, :roles => [r]) - project = ProjectInfo.new(:user_id => User.current.id, :project_id => @project.id) - if params[:project][:is_public] == '1' || @course_tag=="1" - project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0, :project_type => @course_tag) - end - @project.members << m - @project.project_infos << project - end - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_create) - if params[:continue] - attrs = {:parent_id => @project.parent_id}.reject {|k,v| v.nil?} - redirect_to new_project_path(attrs, :course => '0') - #Added by young - - elsif params[:course_continue] - redirect_to new_project_path(:course => '1') - #Ended by young - else - redirect_to settings_project_path(@project,:project_type => 1) + if User.current.user_extensions.identity == 0 + if@course.save + if validate_parent_id && @project.save + @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') + # Add current user as a project member if he is not admin + unless User.current.admin? + r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first + m = Member.new(:user => User.current, :roles => [r]) + project = ProjectInfo.new(:user_id => User.current.id, :project_id => @project.id) + if params[:project][:is_public] == '1' || @course_tag=="1" + project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0, :project_type => @course_tag) end - } - format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } - end - else - @course.destroy - respond_to do |format| - format.html { render :action => 'new', :layout => 'base'}#Added by young - format.api { render_validation_errors(@project) } - end - end - else - if validate_parent_id && @project.save - @project.delete - respond_to do |format| - format.html { render :action => 'new', :layout => 'base'}#Added by young - format.api { render_validation_errors(@project) } + @project.members << m + @project.project_infos << project + end + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_create) + if params[:continue] + attrs = {:parent_id => @project.parent_id}.reject {|k,v| v.nil?} + redirect_to new_project_path(attrs, :course => '0') + #Added by young + + elsif params[:course_continue] + redirect_to new_project_path(:course => '1') + #Ended by young + else + redirect_to settings_project_path(@project,:project_type => 1) + end + } + format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } + end + else + @course.destroy + respond_to do |format| + format.html { render :action => 'new', :layout => 'base'}#Added by young + format.api { render_validation_errors(@project) } + end end else - respond_to do |format| - format.html { render :action => 'new', :layout => 'base'}#Added by young - format.api { render_validation_errors(@project) } + if validate_parent_id && @project.save + @project.delete + respond_to do |format| + format.html { render :action => 'new', :layout => 'base'}#Added by young + format.api { render_validation_errors(@project) } + end + else + respond_to do |format| + format.html { render :action => 'new', :layout => 'base'}#Added by young + format.api { render_validation_errors(@project) } + end end end end diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index 5bf5a595b..164c31fa4 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -170,7 +170,7 @@
<%= l(:label_new_course)%> | -<%= link_to(l(:label_course_new), {:controller => 'projects', :action => 'new', :course => 1, :project_type => @project_type}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %> | ++ <% if User.current.user_extensions.identity == 0 %> + <%= link_to(l(:label_course_new), {:controller => 'projects', :action => 'new', :course => 1, :project_type => @project_type}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %> | + <% end %>
<%= text_field_tag 'name', params[:name], :size => 30 %>
diff --git a/app/views/users/_my_course.html.erb b/app/views/users/_my_course.html.erb
index eb81188b4..225ae1273 100644
--- a/app/views/users/_my_course.html.erb
+++ b/app/views/users/_my_course.html.erb
@@ -6,11 +6,11 @@
<% else %>
- <%= l(:label_project_course_unadd) %><%= link_to"#{l(:label_course_new)}",:controller=>'projects',:action=>'new', :course => 1 %> + <%= l(:label_project_course_unadd) %><%= link_to"#{l(:label_course_new)}",{:controller=>'projects',:action=>'new', :course => 1}, :class => 'icon icon-add' %> <% end %> <% else %> - <%= link_to"#{l(:label_course_new)}",:controller=>'projects',:action=>'new', :course => 1 %> + <%= link_to"#{l(:label_course_new)}",{:controller=>'projects',:action=>'new', :course => 1}, :class => 'icon icon-add' %>
|