webs 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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