Skip to content

Commit

Permalink
finished updating permissions page
Browse files Browse the repository at this point in the history
  • Loading branch information
cofiem committed Mar 21, 2016
1 parent 8a6256e commit c49ac40
Show file tree
Hide file tree
Showing 5 changed files with 200 additions and 205 deletions.
51 changes: 46 additions & 5 deletions app/controllers/permissions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,19 @@ def index
get_project
do_authorize_instance(:update_permissions, @project)

result = update_permissions

if result === true
flash[:success] = 'Permissions successfully updated.'
elsif result === false
flash[:error] = 'There was an error updating permissions. Please try again or contact us.'
end

respond_to do |format|
format.html {
redirect_to project_permissions_path(@project) unless result.nil?
@permissions = Permission.where(project: @project)
@users = User.order(:user_name).page(params[:page])
}
format.json {
@permissions, opts = Settings.api_response.response_advanced(
Expand All @@ -29,7 +39,6 @@ def show
do_authorize_instance

respond_to do |format|
format.html
format.json { respond_show }
end
end
Expand All @@ -42,7 +51,6 @@ def new
do_authorize_instance

respond_to do |format|
format.html
format.json { respond_show }
end
end
Expand All @@ -56,10 +64,8 @@ def create

respond_to do |format|
if @permission.save
format.html { redirect_to @permission, notice: 'Permission was successfully created.' }
format.json { respond_create_success(project_permission_path(@project, @permission)) }
else
format.html { render action: 'new' }
format.json { respond_change_fail }
end
end
Expand All @@ -75,7 +81,6 @@ def destroy
@permission.destroy

respond_to do |format|
format.html { redirect_to project_permissions_path(@project) }
format.json { respond_destroy }
end
end
Expand All @@ -94,4 +99,40 @@ def permission_params
params.require(:permission).permit(:level, :project_id, :user_id)
end

def update_permissions_params
params.permit(project_wide: [:logged_in, :anonymous], per_user: [:none, :reader, :writer, :owner])
end

def update_permissions
request_params = update_permissions_params

return nil if !request_params.include?(:project_wide) && !request_params.include?(:per_user)
if request_params.include?(:project_wide) && request_params[:project_wide].include?(:logged_in)
permission = Permission.where(project: @project, user: nil, allow_logged_in: true, allow_anonymous: false).first
permission = Permission.new(project: @project, user: nil, allow_logged_in: true, allow_anonymous: false) if permission.blank?
new_level = request_params[:project_wide][:logged_in].to_s
elsif request_params.include?(:project_wide) && request_params[:project_wide].include?(:anonymous)
permission = Permission.where(project: @project, user: nil, allow_logged_in: false, allow_anonymous: true).first
permission = Permission.new(project: @project, user: nil, allow_logged_in: false, allow_anonymous: true) if permission.blank?
new_level = request_params[:project_wide][:anonymous].to_s
elsif request_params.include?(:per_user)
user_id = request_params[:per_user].values.first.to_i
permission = Permission.where(project: @project, user_id: user_id, allow_logged_in: false, allow_anonymous: false).first
permission = Permission.new(project: @project, user_id: user_id, allow_logged_in: false, allow_anonymous: false) if permission.blank?
new_level = request_params[:per_user].keys.first.to_s
else
permission = nil
new_level = nil
end

if new_level.to_s.downcase == 'none'
result = permission.destroy
else
permission.level = new_level
result = permission.save
end

result
end

end
Loading

0 comments on commit c49ac40

Please sign in to comment.