liangzan_omniauth-smugmug 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ .DS_Store
2
+ .idea
3
+ *.gem
4
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ OmniAuth SmugMug
2
+ ================
3
+
4
+ This is an [OmniAuth 1.0](https://github.com/intridea/omniauth) strategy for authenticating to SmugMug.
5
+
6
+ Get a SmugMug API key [here](http://www.smugmug.com/hack/apikeys)
7
+
8
+ This fork adds the access and permissions options during the authorization phase.
9
+
10
+
11
+ Usage
12
+ -----
13
+
14
+ In a Rack application:
15
+
16
+ ```ruby
17
+ use OmniAuth::Builder do
18
+ provider :smugmug, ENV['SMUGMUG_KEY'], ENV['SMUGMUG_SECRET'], access: 'Full', permissions: 'Modify'
19
+ end
20
+ ```
21
+
22
+ For Rails, put this in `config/initializers/omniauth.rb`:
23
+
24
+ ```ruby
25
+ Rails.application.config.middleware.use OmniAuth::Builder do
26
+ provider :smugmug, ENV['SMUGMUG_KEY'], ENV['SMUGMUG_SECRET'], access: 'Full', permissions: 'Modify'
27
+ end
28
+ ```
29
+
30
+
31
+ License
32
+ -------
33
+
34
+ Copyright (c) 2014 Wong Liang Zan.
35
+
36
+ This source code released under an MIT license.
@@ -0,0 +1,2 @@
1
+ require "omniauth-smugmug/version"
2
+ require 'omniauth/strategies/smugmug'
@@ -0,0 +1,5 @@
1
+ module Omniauth
2
+ module SmugMug
3
+ VERSION = "1.0.1"
4
+ end
5
+ end
@@ -0,0 +1,48 @@
1
+ require 'omniauth-oauth'
2
+ require 'multi_json'
3
+
4
+ module OmniAuth
5
+ module Strategies
6
+ class SmugMug < OmniAuth::Strategies::OAuth
7
+ option :name, 'smugmug'
8
+ option :client_options, {
9
+ :site => 'http://api.smugmug.com',
10
+ :request_token_path => "/services/oauth/getRequestToken.mg",
11
+ :access_token_path => "/services/oauth/getAccessToken.mg",
12
+ :authorize_path => "/services/oauth/authorize.mg"
13
+ }
14
+
15
+ uid { user['id'] }
16
+
17
+ info do
18
+ {
19
+ 'uid' => user['id'],
20
+ 'nickname' => user['NickName'],
21
+ 'name' => user['Name'],
22
+ 'urls' => {
23
+ 'website' => user['URL'],
24
+ }
25
+ }
26
+ end
27
+
28
+ extra do
29
+ { 'user_hash' => user }
30
+ end
31
+
32
+ def user
33
+ @user_hash ||= MultiJson.decode(@access_token.get('http://api.smugmug.com/services/api/json/1.2.2/?method=smugmug.auth.checkAccessToken').body)['Auth']['User']
34
+ end
35
+
36
+ def request_phase
37
+ options[:authorize_params] = {
38
+ Access: options['access'],
39
+ Permissions: options['permissions']
40
+ }
41
+ super
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+
48
+ OmniAuth.config.add_camelization 'smugmug', 'SmugMug'
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "omniauth-smugmug/version"
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "liangzan_omniauth-smugmug"
7
+ gem.version = Omniauth::SmugMug::VERSION
8
+ gem.authors = ["Will Butler", "Wong Liang Zan"]
9
+ gem.email = ["wbutler@birdbox.com", "zan@liangzan.net"]
10
+ gem.homepage = "https://github.com/liangzan/omniauth-smugmug"
11
+ gem.description = %q{OmniAuth strategy for SmugMug (OAuth 1.0)}
12
+ gem.summary = gem.description
13
+
14
+ gem.files = `git ls-files`.split("\n")
15
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ gem.require_paths = ["lib"]
18
+
19
+ gem.add_runtime_dependency 'omniauth-oauth', '~> 1.0.1'
20
+
21
+ gem.required_rubygems_version = Gem::Requirement.new('>= 1.3.6') if gem.respond_to? :required_rubygems_version=
22
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: liangzan_omniauth-smugmug
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Will Butler
9
+ - Wong Liang Zan
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2014-03-08 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: omniauth-oauth
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 1.0.1
31
+ description: OmniAuth strategy for SmugMug (OAuth 1.0)
32
+ email:
33
+ - wbutler@birdbox.com
34
+ - zan@liangzan.net
35
+ executables: []
36
+ extensions: []
37
+ extra_rdoc_files: []
38
+ files:
39
+ - .gitignore
40
+ - Gemfile
41
+ - README.md
42
+ - lib/omniauth-smugmug.rb
43
+ - lib/omniauth-smugmug/version.rb
44
+ - lib/omniauth/strategies/smugmug.rb
45
+ - omniauth-smugmug.gemspec
46
+ homepage: https://github.com/liangzan/omniauth-smugmug
47
+ licenses: []
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: 1.3.6
64
+ requirements: []
65
+ rubyforge_project:
66
+ rubygems_version: 1.8.24
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: OmniAuth strategy for SmugMug (OAuth 1.0)
70
+ test_files: []