webs 0.1.1 → 0.1.2
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/README.rdoc +24 -6
- data/Rakefile +1 -1
- data/lib/controller/webs_controller.rb +38 -0
- data/lib/{controller → helper}/params.rb +15 -12
- data/lib/{controller → helper}/tags.rb +1 -1
- data/lib/webs.rb +13 -11
- data/webs.gemspec +3 -3
- metadata +9 -9
- data/lib/controller/controller.rb +0 -5
data/README.rdoc
CHANGED
@@ -6,7 +6,7 @@ WebsGem is a holder of knowlege with unknown equal. It:
|
|
6
6
|
|
7
7
|
Right now it's composed of 1 modules:
|
8
8
|
|
9
|
-
|
9
|
+
** Controller: Stuff for controllers
|
10
10
|
** params: Stuff for fw params
|
11
11
|
|
12
12
|
== Installation
|
@@ -20,13 +20,21 @@ To use WebsGem with your stuff, in gemfile:
|
|
20
20
|
=== Rails 2.3
|
21
21
|
|
22
22
|
|
23
|
-
==
|
23
|
+
== Usage
|
24
24
|
|
25
|
-
|
26
|
-
helper Webs::Controller::Params
|
25
|
+
In a controller:
|
27
26
|
|
28
|
-
|
29
|
-
|
27
|
+
require 'webs'
|
28
|
+
|
29
|
+
class Front::Webs::SitesController < ActionController::Base
|
30
|
+
...
|
31
|
+
|
32
|
+
include Webs::Controller::WebsController
|
33
|
+
webs_helpers
|
34
|
+
|
35
|
+
# NOTE: Uses Webs::SECRET
|
36
|
+
before_filter :require_valid_user, :except=>[:tab, :contactme_login]
|
37
|
+
|
30
38
|
|
31
39
|
* Basic convenience methods for all the fw params
|
32
40
|
Instead of "params[:fw_sig_session_key]" now you have fw_sig_session_key
|
@@ -35,6 +43,16 @@ Instead of "params[:fw_sig_session_key]" now you have fw_sig_session_key
|
|
35
43
|
fw_app_url : full url of the app
|
36
44
|
ex: http://mysite.webs.com/apps/videos
|
37
45
|
|
46
|
+
* Security
|
47
|
+
|
48
|
+
Create a webs.rb file in config/initializers
|
49
|
+
|
50
|
+
module Webs
|
51
|
+
SECRET = "your_secret_key"
|
52
|
+
end
|
53
|
+
|
54
|
+
* FWML Tag:
|
55
|
+
<%= fwml :tagname, ... %>
|
38
56
|
|
39
57
|
== TODO
|
40
58
|
|
data/Rakefile
CHANGED
@@ -0,0 +1,38 @@
|
|
1
|
+
module Webs
|
2
|
+
module Controller
|
3
|
+
module WebsController
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def webs_helpers
|
10
|
+
helper Webs::Helper::Params
|
11
|
+
helper Webs::Helper::Tags
|
12
|
+
include Webs::Helper::Params
|
13
|
+
include Webs::Helper::Tags
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def webs_query_string
|
18
|
+
webs_params.collect{ |k,v| [k,v].join("=") }.join("&").to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
def webs_auth_string
|
22
|
+
webs_params.collect{ |k,v| [k[7..-1],v].join("=") }.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
# http://wiki.developers.webs.com/wiki/Verifying_Requests
|
26
|
+
def webs_auth( secret )
|
27
|
+
s = webs_auth_string
|
28
|
+
Rails.logger.debug "****************** WEBS AUTH STRING=> #{s}"
|
29
|
+
Digest::MD5.hexdigest(webs_auth_string + secret)
|
30
|
+
end
|
31
|
+
|
32
|
+
def require_valid_user
|
33
|
+
render :text => "Access Denied: Webs::SECRET not defined." and return(false) unless defined?( Webs::SECRET )
|
34
|
+
render :text => "Access Denied" and return(false) unless fw_sig == webs_auth( Webs::SECRET )
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Webs
|
2
|
-
module
|
2
|
+
module Helper
|
3
3
|
module Params
|
4
4
|
def fw_sig
|
5
5
|
params[:fw_sig]
|
@@ -61,45 +61,48 @@ module Webs
|
|
61
61
|
def webs_permission
|
62
62
|
case fw_sig_permissions
|
63
63
|
when /admin/i
|
64
|
-
ADMIN
|
64
|
+
Permission::ADMIN
|
65
65
|
when /owner/i
|
66
|
-
OWNER
|
66
|
+
Permission::OWNER
|
67
67
|
when /moderator/i
|
68
|
-
MODERATORS
|
68
|
+
Permission::MODERATORS
|
69
69
|
when /contributor/i
|
70
|
-
MEMBERS
|
70
|
+
Permission::MEMBERS
|
71
71
|
when /limited/i
|
72
|
-
LIMITED
|
72
|
+
Permission::LIMITED
|
73
73
|
else
|
74
|
-
ANYONE
|
74
|
+
Permission::ANYONE
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
78
|
# does fw_sig_permissions contain at least perm
|
79
|
-
def webs_permission?( perm=ANYONE )
|
79
|
+
def webs_permission?( perm=Permission::ANYONE )
|
80
80
|
webs_permission >= perm
|
81
81
|
end
|
82
82
|
|
83
83
|
def webs_admin?
|
84
|
-
fw_sig_permissions && webs_permission == ADMIN
|
84
|
+
fw_sig_permissions && webs_permission == Permission::ADMIN
|
85
85
|
end
|
86
86
|
|
87
87
|
def webs_owner?
|
88
|
-
fw_sig_permissions && webs_permission == MODERATORS
|
88
|
+
fw_sig_permissions && webs_permission == Permission::MODERATORS
|
89
89
|
end
|
90
90
|
|
91
91
|
def webs_contributor?
|
92
|
-
fw_sig_permissions && webs_permission == LIMITED
|
92
|
+
fw_sig_permissions && webs_permission == Permission::LIMITED
|
93
93
|
end
|
94
94
|
|
95
95
|
def webs_moderator?
|
96
|
-
fw_sig_permissions && webs_permission == ANYONE
|
96
|
+
fw_sig_permissions && webs_permission == Permission::ANYONE
|
97
97
|
end
|
98
98
|
|
99
99
|
def webs_site_owner_or_admin?
|
100
100
|
webs_admin? || webs_owner?
|
101
101
|
end
|
102
102
|
|
103
|
+
def webs_params
|
104
|
+
params.select{ |k,v| k.starts_with?("fw_sig_") }.sort
|
105
|
+
end
|
103
106
|
|
104
107
|
# The full url of the app. Since in APP_NAME can be different in different environments this is currently
|
105
108
|
# defined in a global var, usually in the respective env file, however APP_NAME should be moved to something
|
data/lib/webs.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
dir = Pathname(__FILE__).dirname.expand_path
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
require dir + 'controller/webs_controller'
|
4
|
+
require dir + 'helper/params'
|
5
|
+
require dir + 'helper/tags'
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
MEMBERS = 2
|
9
|
-
MODERATORS = 3
|
10
|
-
OWNER = 4
|
11
|
-
ADMIN = 5
|
7
|
+
module Webs
|
8
|
+
VERSION = "0.1.2".freeze
|
12
9
|
|
13
|
-
|
10
|
+
module Permission
|
11
|
+
ANYONE = 0
|
12
|
+
LIMITED = 1
|
13
|
+
MEMBERS = 2
|
14
|
+
MODERATORS = 3
|
15
|
+
OWNER = 4
|
16
|
+
ADMIN = 5
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
|
-
require dir + 'controller/params'
|
17
|
-
require dir + 'controller/tags'
|
data/webs.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{webs}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Chuck Olczak"]
|
9
9
|
s.date = %q{2010-07-23}
|
10
10
|
s.description = %q{Reusable webs stuff.}
|
11
11
|
s.email = %q{chuck@webs.com}
|
12
|
-
s.extra_rdoc_files = ["README.rdoc", "lib/controller/
|
13
|
-
s.files = ["README.rdoc", "Rakefile", "lib/controller/
|
12
|
+
s.extra_rdoc_files = ["README.rdoc", "lib/controller/webs_controller.rb", "lib/helper/params.rb", "lib/helper/tags.rb", "lib/webs.rb"]
|
13
|
+
s.files = ["README.rdoc", "Rakefile", "lib/controller/webs_controller.rb", "lib/helper/params.rb", "lib/helper/tags.rb", "lib/webs.rb", "webs.gemspec"]
|
14
14
|
s.homepage = %q{http://github.com/websdotcom/websgem}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Webs", "--main", "README.rdoc"]
|
16
16
|
s.require_paths = ["lib"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chuck Olczak
|
@@ -27,16 +27,16 @@ extensions: []
|
|
27
27
|
|
28
28
|
extra_rdoc_files:
|
29
29
|
- README.rdoc
|
30
|
-
- lib/controller/
|
31
|
-
- lib/
|
32
|
-
- lib/
|
30
|
+
- lib/controller/webs_controller.rb
|
31
|
+
- lib/helper/params.rb
|
32
|
+
- lib/helper/tags.rb
|
33
33
|
- lib/webs.rb
|
34
34
|
files:
|
35
35
|
- README.rdoc
|
36
36
|
- Rakefile
|
37
|
-
- lib/controller/
|
38
|
-
- lib/
|
39
|
-
- lib/
|
37
|
+
- lib/controller/webs_controller.rb
|
38
|
+
- lib/helper/params.rb
|
39
|
+
- lib/helper/tags.rb
|
40
40
|
- lib/webs.rb
|
41
41
|
- webs.gemspec
|
42
42
|
has_rdoc: true
|