 2a4a4f3342
			
		
	
	
		2a4a4f3342
		
	
	
	
	
		
			
			Improved missing "scopes" param handling. Allowed "any of" / "all of" mode specification in OAuthScopesPlug. Fixed auth UI / behavior when user selects no permissions at /oauth/authorize.
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			524 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			524 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # Pleroma: A lightweight social networking server
 | |
| # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
 | |
| # SPDX-License-Identifier: AGPL-3.0-only
 | |
| 
 | |
| defmodule Pleroma.Web.OAuth do
 | |
|   def parse_scopes(scopes, _default) when is_list(scopes) do
 | |
|     Enum.filter(scopes, &(&1 not in [nil, ""]))
 | |
|   end
 | |
| 
 | |
|   def parse_scopes(scopes, default) when is_binary(scopes) do
 | |
|     scopes
 | |
|     |> String.trim()
 | |
|     |> String.split(~r/[\s,]+/)
 | |
|     |> parse_scopes(default)
 | |
|   end
 | |
| 
 | |
|   def parse_scopes(_, default) do
 | |
|     default
 | |
|   end
 | |
| end
 |