mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 14:31:25 +00:00
* First cut of a simplified "intro" UI layout * Linter * Add guest role and intro-only access * Fix guest role UI defaults (#940) Use enum predicate to avoid missing role helper. * Remove legacy user role mapping (#941) Drop the unused user role references in role normalization and SSO role mapping forms to avoid implying a role that never existed. Refs: #0 * Remove role normalization (#942) Remove role normalization Roles are now stored directly without legacy mappings. * Revert role mapping logic * Remove `normalize_role_settings` * Remove unnecessary migration * Make `member` the default * Broken `.erb` --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>
46 lines
1.2 KiB
Ruby
46 lines
1.2 KiB
Ruby
class Settings::ProfilesController < ApplicationController
|
|
layout :layout_for_settings_profile
|
|
|
|
def show
|
|
@user = Current.user
|
|
@users = Current.family.users.order(:created_at)
|
|
@pending_invitations = Current.family.invitations.pending
|
|
@breadcrumbs = [
|
|
[ "Home", root_path ],
|
|
[ "Profile Info", nil ]
|
|
]
|
|
end
|
|
|
|
def destroy
|
|
unless Current.user.admin?
|
|
flash[:alert] = t("settings.profiles.destroy.not_authorized")
|
|
redirect_to settings_profile_path
|
|
return
|
|
end
|
|
|
|
@user = Current.family.users.find(params[:user_id])
|
|
|
|
if @user == Current.user
|
|
flash[:alert] = t("settings.profiles.destroy.cannot_remove_self")
|
|
redirect_to settings_profile_path
|
|
return
|
|
end
|
|
|
|
if @user.destroy
|
|
# Also destroy the invitation associated with this user for this family
|
|
Current.family.invitations.find_by(email: @user.email)&.destroy
|
|
flash[:notice] = "Member removed successfully."
|
|
else
|
|
flash[:alert] = "Failed to remove member."
|
|
end
|
|
|
|
redirect_to settings_profile_path
|
|
end
|
|
|
|
private
|
|
|
|
def layout_for_settings_profile
|
|
Current.user&.ui_layout_intro? ? "application" : "settings"
|
|
end
|
|
end
|