diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/api/users_controller.rb | 7 | ||||
| -rw-r--r-- | app/models/account.rb | 10 | 
2 files changed, 9 insertions, 8 deletions
| diff --git a/app/controllers/api/users_controller.rb b/app/controllers/api/users_controller.rb index e64d21f..c79a729 100644 --- a/app/controllers/api/users_controller.rb +++ b/app/controllers/api/users_controller.rb @@ -50,8 +50,7 @@ module Api      end      def destroy -      destroy_identity = current_user.is_monitor? || params[:identities] == "destroy" -      @user.account.destroy(destroy_identity) +      @user.account.destroy(release_handles)        if @user == current_user          logout        end @@ -60,6 +59,10 @@ module Api      private +    def release_handles +      current_user.is_monitor? || params[:identities] == "destroy" +    end +      # tester auth can only create test users.      def create_test_account        if User::is_test?(params[:user][:login]) diff --git a/app/models/account.rb b/app/models/account.rb index 7310250..d722caa 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -69,15 +69,13 @@ class Account      @user.refresh_identity    end -  def destroy(destroy_identity=false) +  def destroy(release_handles=false)      return unless @user      if !@user.is_tmp? -      if destroy_identity == false -        @user.identities.each do |id| +      @user.identities.each do |id| +        if release_handles == false            id.orphan! -        end -      else -        @user.identities.each do |id| +        else            id.destroy          end        end | 
