mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Merge branch 'release/1.28.0' into develop
This commit is contained in:
commit
2c816cf463
|
@ -99,21 +99,11 @@ module AccessPermissions
|
|||
raise ActiveRecord::RecordInvalid
|
||||
end
|
||||
|
||||
if @project.visible?
|
||||
user_assignment.update!(
|
||||
user_role: @project.default_public_user_role,
|
||||
assigned: :automatically
|
||||
)
|
||||
else
|
||||
user_assignment.destroy!
|
||||
end
|
||||
|
||||
propagate_job(user_assignment, destroy: true)
|
||||
log_activity(:unassign_user_from_project, { user_target: user_assignment.user.id,
|
||||
role: user_assignment.user_role.name })
|
||||
|
||||
render json: { flash: t('access_permissions.destroy.success', member_name: escape_input(user.full_name)) },
|
||||
status: :ok
|
||||
render json: { flash: t('access_permissions.destroy.success', member_name: escape_input(user.full_name)) }
|
||||
rescue ActiveRecord::RecordInvalid
|
||||
render json: { flash: t('access_permissions.destroy.failure') },
|
||||
status: :unprocessable_entity
|
||||
|
|
|
@ -9,20 +9,15 @@ module Users
|
|||
end
|
||||
|
||||
def destroy
|
||||
settings = ApplicationSettings.instance
|
||||
if settings.values['azure_ad_apps']&.find { |v| v['provider_name'] == params[:provider] }
|
||||
provider = params[:provider]
|
||||
else
|
||||
flash[:error] = t('users.settings.account.connected_accounts.errors.not_found')
|
||||
user_identity = current_user.user_identities.find_by(provider: params[:provider])
|
||||
if user_identity.blank?
|
||||
flash.now[:error] = t('users.settings.account.connected_accounts.errors.not_found')
|
||||
return
|
||||
end
|
||||
ActiveRecord::Base.transaction do
|
||||
__send__("#{provider}_pre_destroy".to_sym) if respond_to?("#{provider}_pre_destroy".to_sym, true)
|
||||
current_user.user_identities.where(provider: provider).take&.destroy!
|
||||
end
|
||||
flash[:success] = t('users.settings.account.connected_accounts.unlink_success')
|
||||
user_identity.destroy!
|
||||
flash.now[:success] = t('users.settings.account.connected_accounts.unlink_success')
|
||||
rescue StandardError
|
||||
flash[:error] ||= t('users.settings.account.connected_accounts.errors.generic')
|
||||
flash.now[:error] ||= t('users.settings.account.connected_accounts.errors.generic')
|
||||
ensure
|
||||
@linked_accounts = current_user.user_identities.pluck(:provider)
|
||||
render :index
|
||||
|
|
|
@ -65,12 +65,14 @@ module UserAssignments
|
|||
user_assignment = object.user_assignments.find { |ua| ua.user_id == @user.id }
|
||||
return if user_assignment.blank?
|
||||
|
||||
if !object.is_a?(Project) && object.project.visible? && !@remove_from_team
|
||||
project = object.is_a?(Project) ? object : object.project
|
||||
|
||||
if project.visible? && !@remove_from_team
|
||||
# if project is public, the assignment
|
||||
# will reset to the default public role
|
||||
|
||||
user_assignment.update!(
|
||||
user_role_id: object.project.default_public_user_role_id,
|
||||
user_role_id: project.default_public_user_role_id,
|
||||
assigned: :automatically,
|
||||
assigned_by: @assigned_by
|
||||
)
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="col-xs-8 col-sm-9 col-md-9 col-lg-9">
|
||||
<strong><%= t('users.settings.account.connected_accounts.okta.title') %></strong> <br>
|
||||
<p><%= t('users.settings.account.connected_accounts.okta.connect_hint') %></p>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<div>
|
||||
<strong>
|
||||
<%= t('users.settings.account.connected_accounts.okta.connected') %>
|
||||
<span class="sn-icon sn-icon-check" aria-hidden="true"></span>
|
||||
</strong>
|
||||
</div>
|
||||
<div>
|
||||
<%= link_to t('users.settings.account.connected_accounts.okta.unlink_button'),
|
||||
'#unlinkOktaModal',
|
||||
class: 'btn btn-danger',
|
||||
data: { toggle: 'modal'} %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= render partial: 'users/settings/account/connected_accounts/unlink_modals/okta_modal', locals: { provider: provider } %>
|
|
@ -10,13 +10,10 @@
|
|||
<h1 class="connected-accounts-title"><%= t('users.settings.account.connected_accounts.title') %></h1>
|
||||
<% if @linked_accounts.present? %>
|
||||
<% @linked_accounts.each do |provider| %>
|
||||
<% settings = ApplicationSettings.instance %>
|
||||
<% if provider == 'giot_connect' || settings.values['azure_ad_apps']&.find { |v| v['provider_name'] == provider } %>
|
||||
<% if lookup_context.exists?(provider, 'users/settings/account/connected_accounts', true) %>
|
||||
<%= render partial: provider %>
|
||||
<% else %>
|
||||
<%= render partial: 'azure_ad', locals: { provider: provider } %>
|
||||
<% end %>
|
||||
<% if lookup_context.exists?(provider, 'users/settings/account/connected_accounts', true) %>
|
||||
<%= render partial: provider, locals: { provider: provider } %>
|
||||
<% elsif ApplicationSettings.instance.values['azure_ad_apps']&.find { |v| v['provider_name'] == provider } %>
|
||||
<%= render partial: 'azure_ad', locals: { provider: provider } %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<div class="modal fade" id="unlinkOktaModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="<%= t('general.close') %>">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" >
|
||||
<%= t('users.settings.account.connected_accounts.okta.unlink_modal.title') %>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p><%= t('users.settings.account.connected_accounts.okta.unlink_modal.description_1') %></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<%= form_tag(unlink_connected_account_path, method: :delete) do %>
|
||||
<%= hidden_field_tag :provider, provider %>
|
||||
<%= submit_tag t('users.settings.account.connected_accounts.okta.unlink_modal.submit_button'), class: 'btn btn-danger' %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -2572,6 +2572,15 @@ en:
|
|||
title: "Unlink Azure AD account?"
|
||||
description_1: "Are you sure you would like unlink Azure AD and SciNote accounts?"
|
||||
submit_button: "Submit"
|
||||
okta:
|
||||
title: "Your Okta Account"
|
||||
connect_hint: "Allows you to sign in with your Okta account."
|
||||
connected: "Connected"
|
||||
unlink_button: "Unlink"
|
||||
unlink_modal:
|
||||
title: "Unlink Okta account?"
|
||||
description_1: "Are you sure you would like unlink Okta and SciNote accounts?"
|
||||
submit_button: "Submit"
|
||||
errors:
|
||||
not_found: "You have no Connected accounts for this provider"
|
||||
generic: "Unable to unlink linked account"
|
||||
|
|
Loading…
Reference in a new issue