summaryrefslogtreecommitdiff
path: root/app/controllers/admin
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-10-09 00:36:38 +0300
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-10-09 00:36:38 +0300
commite98c77857f9f765d1854b92c2dc33049504a596d (patch)
tree52fbfc1cdb55df21843965479c97be0c91121a9a /app/controllers/admin
parent0f43e98ef8c2da8908b1107f75b67cda2572c2c4 (diff)
downloadgitlab-ce-0.9.4.tar.gz
init commitv0.9.4
Diffstat (limited to 'app/controllers/admin')
-rw-r--r--app/controllers/admin/mailer_controller.rb44
-rw-r--r--app/controllers/admin/projects_controller.rb73
-rw-r--r--app/controllers/admin/team_members_controller.rb75
-rw-r--r--app/controllers/admin/users_controller.rb84
4 files changed, 276 insertions, 0 deletions
diff --git a/app/controllers/admin/mailer_controller.rb b/app/controllers/admin/mailer_controller.rb
new file mode 100644
index 00000000000..05ad267fad5
--- /dev/null
+++ b/app/controllers/admin/mailer_controller.rb
@@ -0,0 +1,44 @@
+class Admin::MailerController < ApplicationController
+ before_filter :authenticate_user!
+ before_filter :authenticate_admin!
+
+ def preview
+
+ end
+
+ def preview_note
+ @note = Note.first
+ @user = @note.author
+ @project = @note.project
+ case params[:type]
+ when "Commit" then
+ @commit = @project.commit
+ render :file => 'notify/note_commit_email.html.haml', :layout => 'notify'
+ when "Issue" then
+ @issue = Issue.first
+ render :file => 'notify/note_issue_email.html.haml', :layout => 'notify'
+ else
+ render :file => 'notify/note_wall_email.html.haml', :layout => 'notify'
+ end
+ rescue
+ render :text => "Preview not avaialble"
+ end
+
+ def preview_user_new
+ @user = User.first
+ @password = "DHasJKDHAS!"
+
+ render :file => 'notify/new_user_email.html.haml', :layout => 'notify'
+ rescue
+ render :text => "Preview not avaialble"
+ end
+
+ def preview_issue_new
+ @issue = Issue.first
+ @user = @issue.assignee
+ @project = @issue.project
+ render :file => 'notify/new_issue_email.html.haml', :layout => 'notify'
+ rescue
+ render :text => "Preview not avaialble"
+ end
+end
diff --git a/app/controllers/admin/projects_controller.rb b/app/controllers/admin/projects_controller.rb
new file mode 100644
index 00000000000..fe5ada8f1cb
--- /dev/null
+++ b/app/controllers/admin/projects_controller.rb
@@ -0,0 +1,73 @@
+class Admin::ProjectsController < ApplicationController
+ before_filter :authenticate_user!
+ before_filter :authenticate_admin!
+
+ def index
+ @admin_projects = Project.page(params[:page])
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @admin_projects }
+ end
+ end
+
+ def show
+ @admin_project = Project.find_by_code(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.json { render json: @admin_project }
+ end
+ end
+
+ def new
+ @admin_project = Project.new
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.json { render json: @admin_project }
+ end
+ end
+
+ def edit
+ @admin_project = Project.find_by_code(params[:id])
+ end
+
+ def create
+ @admin_project = Project.new(params[:project])
+
+ respond_to do |format|
+ if @admin_project.save
+ format.html { redirect_to [:admin, @admin_project], notice: 'Project was successfully created.' }
+ format.json { render json: @admin_project, status: :created, location: @admin_project }
+ else
+ format.html { render action: "new" }
+ format.json { render json: @admin_project.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def update
+ @admin_project = Project.find_by_code(params[:id])
+
+ respond_to do |format|
+ if @admin_project.update_attributes(params[:project])
+ format.html { redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.' }
+ format.json { head :ok }
+ else
+ format.html { render action: "edit" }
+ format.json { render json: @admin_project.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def destroy
+ @admin_project = Project.find_by_code(params[:id])
+ @admin_project.destroy
+
+ respond_to do |format|
+ format.html { redirect_to admin_projects_url }
+ format.json { head :ok }
+ end
+ end
+end
diff --git a/app/controllers/admin/team_members_controller.rb b/app/controllers/admin/team_members_controller.rb
new file mode 100644
index 00000000000..bca9bfebbfd
--- /dev/null
+++ b/app/controllers/admin/team_members_controller.rb
@@ -0,0 +1,75 @@
+class Admin::TeamMembersController < ApplicationController
+ before_filter :authenticate_user!
+ before_filter :authenticate_admin!
+
+ def index
+ @admin_team_members = UsersProject.page(params[:page]).per(100).order("project_id DESC")
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @admin_team_members }
+ end
+ end
+
+ def show
+ @admin_team_member = UsersProject.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.json { render json: @admin_team_member }
+ end
+ end
+
+ def new
+ @admin_team_member = UsersProject.new(params[:team_member])
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.json { render json: @admin_team_member }
+ end
+ end
+
+ def edit
+ @admin_team_member = UsersProject.find(params[:id])
+ end
+
+ def create
+ @admin_team_member = UsersProject.new(params[:team_member])
+ @admin_team_member.project_id = params[:team_member][:project_id]
+
+ respond_to do |format|
+ if @admin_team_member.save
+ format.html { redirect_to admin_team_member_path(@admin_team_member), notice: 'UsersProject was successfully created.' }
+ format.json { render json: @admin_team_member, status: :created, location: @team_member }
+ else
+ format.html { render action: "new" }
+ format.json { render json: @admin_team_member.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def update
+ @admin_team_member = UsersProject.find(params[:id])
+ @admin_team_member.project_id = params[:team_member][:project_id]
+
+ respond_to do |format|
+ if @admin_team_member.update_attributes(params[:team_member])
+ format.html { redirect_to admin_team_member_path(@admin_team_member), notice: 'UsersProject was successfully updated.' }
+ format.json { head :ok }
+ else
+ format.html { render action: "edit" }
+ format.json { render json: @admin_team_member.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def destroy
+ @admin_team_member = UsersProject.find(params[:id])
+ @admin_team_member.destroy
+
+ respond_to do |format|
+ format.html { redirect_to admin_team_members_url }
+ format.json { head :ok }
+ end
+ end
+end
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
new file mode 100644
index 00000000000..5190dd06a8d
--- /dev/null
+++ b/app/controllers/admin/users_controller.rb
@@ -0,0 +1,84 @@
+class Admin::UsersController < ApplicationController
+ before_filter :authenticate_user!
+ before_filter :authenticate_admin!
+
+ def index
+ @admin_users = User.page(params[:page])
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @admin_users }
+ end
+ end
+
+ def show
+ @admin_user = User.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.json { render json: @admin_user }
+ end
+ end
+
+ def new
+ @admin_user = User.new
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.json { render json: @admin_user }
+ end
+ end
+
+ def edit
+ @admin_user = User.find(params[:id])
+ end
+
+ def create
+ admin = params[:user].delete("admin")
+
+ @admin_user = User.new(params[:user])
+ @admin_user.admin = (admin && admin.to_i > 0)
+
+ respond_to do |format|
+ if @admin_user.save
+ Notify.new_user_email(@admin_user, params[:user][:password]).deliver
+ format.html { redirect_to [:admin, @admin_user], notice: 'User was successfully created.' }
+ format.json { render json: @admin_user, status: :created, location: @admin_user }
+ else
+ format.html { render action: "new" }
+ format.json { render json: @admin_user.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def update
+ admin = params[:user].delete("admin")
+ if params[:user][:password].empty?
+ params[:user].delete(:password)
+ params[:user].delete(:password_confirmation)
+ end
+
+ @admin_user = User.find(params[:id])
+ @admin_user.admin = (admin && admin.to_i > 0)
+
+ respond_to do |format|
+ if @admin_user.update_attributes(params[:user])
+ format.html { redirect_to [:admin, @admin_user], notice: 'User was successfully updated.' }
+ format.json { head :ok }
+ else
+ format.html { render action: "edit" }
+ format.json { render json: @admin_user.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def destroy
+ @admin_user = User.find(params[:id])
+ @admin_user.destroy
+
+ respond_to do |format|
+ format.html { redirect_to admin_users_url }
+ format.json { head :ok }
+ end
+ end
+end