diff --git a/app/controllers/admin/members_controller.rb b/app/controllers/admin/members_controller.rb
index 11fdc2a..13eac42 100644
--- a/app/controllers/admin/members_controller.rb
+++ b/app/controllers/admin/members_controller.rb
@@ -92,19 +92,27 @@ class Admin::MembersController < OrbitMemberController
end
def new
- @member = MemberProfile.new
- get_info_and_roles
- @user = User.new
- @form_index = 0
+ if has_access?
+ @member = MemberProfile.new
+ get_info_and_roles
+ @user = User.new
+ @form_index = 0
+ else
+ render_401
+ end
end
def edit
- @form_index = 0
- get_info_and_roles
- if @member.user.present?
- @user = @member.user
+ if has_access?
+ @form_index = 0
+ get_info_and_roles
+ if @member.user.present?
+ @user = @member.user
+ else
+ @user = User.new(member_profile_id: @member.id)
+ end
else
- @user = User.new(member_profile_id: @member.id)
+ render_401
end
end
@@ -218,17 +226,19 @@ class Admin::MembersController < OrbitMemberController
end
def edit_passwd
- @user = @member.user
- unless current_user.id == @user.id or current_user.is_admin?
- redirect_to :action => :index
+ if has_access?
+ @user = @member.user
+ else
+ render_401
end
end
def edit_privilege
- @user = @member.user
- @workgroup = Workgroup.find_by(key: 'admin')
- if current_user.id == @user.id
- redirect_to :action => :index
+ if has_access?
+ @user = @member.user
+ @workgroup = Workgroup.find_by(key: 'admin')
+ else
+ render_401
end
end
diff --git a/app/controllers/orbit_member_controller.rb b/app/controllers/orbit_member_controller.rb
index a536d3b..986e7a4 100644
--- a/app/controllers/orbit_member_controller.rb
+++ b/app/controllers/orbit_member_controller.rb
@@ -1,13 +1,26 @@
class OrbitMemberController < ApplicationController
include OrbitBackendHelper
- before_action :authenticate_user, :check_admin
+ before_action :authenticate_user, :check_aceess_rights, :set_module_app
layout "member"
- def check_admin
+ def check_aceess_rights
+ @user_has_privileges = false
if current_user.is_admin?
+ @user_has_privileges = true
else
- render "public/404"
- end
+ visited_user = MemberProfile.find_by(:uid => params[:id].split("-").last).user.id rescue nil
+ visited_user = MemberProfile.find_by(:uid => params[:uid]).user.id if visited_user.nil? rescue nil
+ visited_user = MemberProfile.find(params[:member_profile_id]).user.id if visited_user.nil? rescue nil
+ if current_user.id == visited_user
+ @user_has_privileges = true
+ else
+ @user_has_privileges = false
+ end
+ end
+ end
+
+ def set_module_app
+ @module_app = ModuleApp.find_by_key("member")
end
end
diff --git a/app/helpers/orbit_backend_helper.rb b/app/helpers/orbit_backend_helper.rb
index 4768501..2cd225d 100644
--- a/app/helpers/orbit_backend_helper.rb
+++ b/app/helpers/orbit_backend_helper.rb
@@ -137,6 +137,9 @@ module OrbitBackendHelper
end
end
+ def has_access? #@user_has_privileges comes from orbit_member_controller.. used just in members
+ @user_has_privileges
+ end
def render_401
render "public/401"
diff --git a/app/views/admin/member_infos/edit.html.erb b/app/views/admin/member_infos/edit.html.erb
index 0ea5976..a7112b7 100644
--- a/app/views/admin/member_infos/edit.html.erb
+++ b/app/views/admin/member_infos/edit.html.erb
@@ -1,7 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
-
<% content_for :page_specific_css do -%>
<%= stylesheet_link_tag "lib/wrap-nav.css" %>
<%= stylesheet_link_tag "lib/pageslide.css" %>
diff --git a/app/views/admin/member_infos/index.html.erb b/app/views/admin/member_infos/index.html.erb
index f12d476..b08bf2c 100644
--- a/app/views/admin/member_infos/index.html.erb
+++ b/app/views/admin/member_infos/index.html.erb
@@ -1,7 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
-
<%= link_to content_tag(:i,t("new.attribute"),:class=>"icon-plus"),eval("new_admin_member_info_path"),:class=>"btn btn-primary open-slide"%>
diff --git a/app/views/admin/members/_side_bar.html.erb b/app/views/admin/members/_side_bar.html.erb
index c166443..e03ed7f 100644
--- a/app/views/admin/members/_side_bar.html.erb
+++ b/app/views/admin/members/_side_bar.html.erb
@@ -9,15 +9,17 @@
<%= content_tag :li, :class => active_for_controllers('members','roles','member_infos') do -%>
<%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-user'))), admin_members_path) %>
<% end -%>
- <%= content_tag :li, :class => active_for_controllers('plugins') do -%>
- <%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-graduation'))),admin_personal_plugins_path) %>
- <% end -%>
- <%= content_tag :li, :class => active_for_controllers('plugins') do -%>
- <%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-pie'))), '#') %>
- <% end -%>
- <%= content_tag :li, :class => active_for_controllers('plugins') do -%>
- <%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-layout'))), '#') %>
- <% end -%>
+ <% if (current_user.is_admin? rescue false) %>
+ <%= content_tag :li, :class => active_for_controllers('plugins') do -%>
+ <%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-graduation'))),admin_personal_plugins_path) %>
+ <% end -%>
+ <%= content_tag :li, :class => active_for_controllers('plugins') do -%>
+ <%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-pie'))), '#') %>
+ <% end -%>
+ <%= content_tag :li, :class => active_for_controllers('plugins') do -%>
+ <%= link_to( ( content_tag(:span, content_tag(:i, nil, :class => 'icons-layout'))), '#') %>
+ <% end -%>
+ <% end -%>
<% end -%>
diff --git a/app/views/admin/members/edit.html.erb b/app/views/admin/members/edit.html.erb
index e89a371..5dc3ec9 100644
--- a/app/views/admin/members/edit.html.erb
+++ b/app/views/admin/members/edit.html.erb
@@ -1,7 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
-
<% content_for :page_specific_css do -%>
<%= stylesheet_link_tag "lib/wrap-nav.css" %>
<%= stylesheet_link_tag "lib/pageslide.css" %>
diff --git a/app/views/admin/members/edit_order.html.erb b/app/views/admin/members/edit_order.html.erb
index beb595f..bb83d14 100644
--- a/app/views/admin/members/edit_order.html.erb
+++ b/app/views/admin/members/edit_order.html.erb
@@ -1,6 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
<% content_for :page_specific_css do %>
<%= stylesheet_link_tag "lib/member" %>
<%= stylesheet_link_tag "lib/checkbox-card" %>
diff --git a/app/views/admin/members/edit_passwd.html.erb b/app/views/admin/members/edit_passwd.html.erb
index 5fcdadd..d5631ec 100644
--- a/app/views/admin/members/edit_passwd.html.erb
+++ b/app/views/admin/members/edit_passwd.html.erb
@@ -1,7 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
-
<% content_for :page_specific_css do -%>
<%= stylesheet_link_tag "lib/wrap-nav.css" %>
<%= stylesheet_link_tag "lib/pageslide.css" %>
diff --git a/app/views/admin/members/edit_privilege.html.erb b/app/views/admin/members/edit_privilege.html.erb
index 4177e29..cd5a102 100644
--- a/app/views/admin/members/edit_privilege.html.erb
+++ b/app/views/admin/members/edit_privilege.html.erb
@@ -1,7 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
-
<% content_for :page_specific_css do -%>
<%= stylesheet_link_tag "lib/wrap-nav.css" %>
<%= stylesheet_link_tag "lib/pageslide.css" %>
diff --git a/app/views/admin/members/index.html.erb b/app/views/admin/members/index.html.erb
index 5f95bee..3d0a574 100644
--- a/app/views/admin/members/index.html.erb
+++ b/app/views/admin/members/index.html.erb
@@ -1,7 +1,3 @@
-<% content_for :side_bar do %>
- <%= render :partial => 'admin/members/side_bar' %>
-<% end %>
-
<% content_for :right_nav do %>