picombo-auth 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,36 @@
1
+ # Picombo Auth Class
2
+ #
3
+ # Author:: Jeremy Bush
4
+ # Copyright:: Copyright (c) 2009 Jeremy Bush
5
+ # License:: See LICENSE
6
+
7
+ require 'digest/sha1'
8
+
9
+ module Picombo
10
+ class Auth
11
+ include Singleton
12
+
13
+ def login(user, password)
14
+ user = Picombo::Models::User.first(:username => user, :password => Digest::SHA1.hexdigest(password))
15
+
16
+ if user
17
+ # set the session as logged in
18
+ Picombo::Session.instance.set('loggedin', true)
19
+ Picombo::Session.instance.set('user', user)
20
+
21
+ return true
22
+ end
23
+
24
+ false
25
+ end
26
+
27
+ def logout
28
+ Picombo::Session.instance.unset('loggedin')
29
+ Picombo::Session.instance.unset('user')
30
+ end
31
+
32
+ def self.logged_in?
33
+ ! Picombo::Session.instance.get('loggedin').nil?
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,28 @@
1
+ module Picombo
2
+ module Controllers
3
+ class User < Picombo::Controllers::Template
4
+ def login
5
+ template = Picombo::View.new('template')
6
+ body = Picombo::View.new('user/login')
7
+ body.set('error', '')
8
+
9
+ if ! Picombo::Input.instance.post.empty?
10
+ if Picombo::Auth.instance.login(Picombo::Input.instance.post('username'), Picombo::Input.instance.post('password'))
11
+ Picombo::Core.redirect('admin/remove_banned')
12
+ else
13
+ body.set('error', 'Invalid password or unknown username')
14
+ end
15
+ end
16
+
17
+ template.set('body', body.render(true))
18
+ template.render
19
+ end
20
+
21
+ def logout
22
+ Picombo::Auth.instance.logout
23
+
24
+ Picombo::Core.redirect('admin/remove_banned')
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,10 @@
1
+ module Picombo
2
+ module Models
3
+ class User < Picombo::Model
4
+ property :id, Serial
5
+ property :username, String
6
+ property :password, String
7
+ storage_names[:default] = 'users'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ <h2>User Login</h2>
2
+ <% if ! @error.empty? %><p><%= @error %></p><% end %>
3
+ <form action="<%= Picombo::Url.base%>user/login" method="post">
4
+ <ul>
5
+ <li><label for="username">Username:</label> <input name="username" /></li>
6
+ <li><label for="password">Password:</label> <input type="password" name="password" /></li>
7
+ <li><input type="submit" value="Login"></li>
8
+ </ul>
9
+ </form>
10
+ <%= Picombo::Auth.logged_in?.inspect %>
@@ -0,0 +1 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__)+'/picombo-auth')
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: picombo-auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Bush
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-04-23 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Provides authentication classes
17
+ email: contractfrombelow@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/picombo-auth.rb
26
+ - lib/picombo-auth/classes/auth.rb
27
+ - lib/picombo-auth/controllers/user.rb
28
+ - lib/picombo-auth/models/user.rb
29
+ - lib/picombo-auth/views/user
30
+ - lib/picombo-auth/views/user/login.rhtml
31
+ has_rdoc: false
32
+ homepage: http://www.picombo.net/
33
+ post_install_message:
34
+ rdoc_options: []
35
+
36
+ require_paths:
37
+ - lib
38
+ required_ruby_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: "0"
43
+ version:
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: "0"
49
+ version:
50
+ requirements: []
51
+
52
+ rubyforge_project:
53
+ rubygems_version: 1.3.1
54
+ signing_key:
55
+ specification_version: 2
56
+ summary: Auth Extensions for Picombo - A lightweight MVC web framework
57
+ test_files: []
58
+