Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
rails_api_authentication
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
rails_api_authentication
Commits
5b7e0c2a
Commit
5b7e0c2a
authored
May 10, 2018
by
liyijie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support array auth_action symbol
parent
1255ae0c
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
8 deletions
+14
-8
auth_action.rb
lib/rails_api_authentication/auth_action.rb
+14
-8
No files found.
lib/rails_api_authentication/auth_action.rb
View file @
5b7e0c2a
...
...
@@ -7,21 +7,27 @@ module RailsApiAuthentication
end
def
perform
klass
=
self
.
class
.
action_class
@current_auth
=
klass
.
send
(
:auth!
,
request
)
rescue
UserError
=>
e
render
json:
e
.
message
,
status:
e
.
status
klasses
=
self
.
class
.
action_classes
klasses
.
each
do
|
klass
|
@current_auth
=
klass
.
auth!
(
request
)
rescue
next
break
end
render
(
json:
"Unauthorized"
,
status:
401
)
if
@current_auth
.
nil?
end
module
ClassMethods
def
auth_action
klass_sym
,
options
=
{}
prepend_before_action
:perform
,
options
@klass
=
klass_sym
.
to_s
.
camelize
.
constantize
define_method
(
"current_
#{
klass_sym
}
"
)
{
@current_auth
||
nil
}
define_method
(
"current_auth"
)
{
@current_auth
}
@klasses
=
Array
(
klass_sym
).
map
do
|
sym
|
define_method
(
"current_
#{
sym
}
"
)
{
@current_auth
}
sym
.
to_s
.
camelize
.
constantize
end
end
def
action_class
@klass
||
superclass
.
action_clas
s
def
action_class
es
@klass
es
||
superclass
.
action_classe
s
end
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment