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 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
- * Controller: Stuff for controllers
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
- == Params Helpers
23
+ == Usage
24
24
 
25
- * Add helper to a view form controller:
26
- helper Webs::Controller::Params
25
+ In a controller:
27
26
 
28
- * Include in controller or whatever:
29
- include Webs::Controller::Params
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
@@ -3,7 +3,7 @@ require 'rubygems'
3
3
  require 'rake'
4
4
  require 'echoe'
5
5
 
6
- Echoe.new('webs', '0.1.1') do |p|
6
+ Echoe.new('webs', '0.1.2') do |p|
7
7
  p.description = "Reusable webs stuff."
8
8
  p.url = "https://colczak@github.com/websdev/websgem.git"
9
9
  p.author = "Chuck Olczak"
@@ -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 Controller
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
@@ -1,5 +1,5 @@
1
1
  module Webs
2
- module Controller
2
+ module Helper
3
3
  module Tags
4
4
  def fwml tagname, options={}, &block
5
5
  s_options = ' ' + options.each_key.collect{|k| "#{k.to_s}=\"#{options[k]}\"" }.join(' ') if options.size > 0
data/lib/webs.rb CHANGED
@@ -1,17 +1,19 @@
1
1
  dir = Pathname(__FILE__).dirname.expand_path
2
2
 
3
- module Webs
4
- VERSION = "0.1.1".freeze
3
+ require dir + 'controller/webs_controller'
4
+ require dir + 'helper/params'
5
+ require dir + 'helper/tags'
5
6
 
6
- ANYONE = 0
7
- LIMITED = 1
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.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/controller.rb", "lib/controller/params.rb", "lib/controller/tags.rb", "lib/webs.rb"]
13
- s.files = ["README.rdoc", "Rakefile", "lib/controller/controller.rb", "lib/controller/params.rb", "lib/controller/tags.rb", "lib/webs.rb", "webs.gemspec"]
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: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.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/controller.rb
31
- - lib/controller/params.rb
32
- - lib/controller/tags.rb
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/controller.rb
38
- - lib/controller/params.rb
39
- - lib/controller/tags.rb
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
@@ -1,5 +0,0 @@
1
- module Webs
2
- module Controller
3
-
4
- end
5
- end