blogaze 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,13 +11,21 @@ module Blogaze
11
11
  class Users < Controller
12
12
  map '/users'
13
13
 
14
+ ##
15
+ # Register form
16
+ #
14
17
  def new
15
18
  @title = "Register - #{@settings[:title]}"
16
19
  @user = ::Blogaze::Models::User.new
17
20
  respond(view_file('users/new'))
18
21
  end
19
22
 
23
+ ##
24
+ # Create user
25
+ #
20
26
  def create
27
+ return redirect('/') unless request.post?
28
+
21
29
  @title = "Register - #{@settings[:title]}"
22
30
  data = {
23
31
  :username => request[:username],
@@ -28,6 +36,7 @@ module Blogaze
28
36
 
29
37
  @user = ::Blogaze::Models::User.new(data)
30
38
 
39
+ # Check for errors
31
40
  if @user.valid?
32
41
  @user.save
33
42
  flash[:success] = "Account created, you may now login"
@@ -36,6 +45,37 @@ module Blogaze
36
45
  respond(view_file('users/new'))
37
46
  end
38
47
  end
48
+
49
+ ##
50
+ # "UserCP"
51
+ #
52
+ def profile
53
+ return respond(view_file('sessions/new')) unless session[:logged_in]
54
+ respond(view_file('users/profile'))
55
+ end
56
+
57
+ ##
58
+ # Save profile
59
+ #
60
+ def save
61
+ return redirect('/') unless request.post?
62
+
63
+ # Set email
64
+ @userinfo.email = request[:email]
65
+
66
+ # Changing password?
67
+ if not request[:new_password].empty?
68
+ @userinfo.change_password(request[:new_password])
69
+ end
70
+
71
+ # Check for errors
72
+ if @userinfo.valid?
73
+ @userinfo.save
74
+ redirect Users.r('/profile')
75
+ else
76
+ respond(view_file('users/profile'))
77
+ end
78
+ end
39
79
  end # Users
40
80
  end # Controllers
41
81
  end # Blogaze
@@ -22,6 +22,13 @@ module Blogaze
22
22
  BCrypt::Password.new(self.password) == password
23
23
  end
24
24
 
25
+ ##
26
+ # Changes the users password.
27
+ #
28
+ def change_password(new_password)
29
+ self.password = BCrypt::Password.create(new_password)
30
+ end
31
+
25
32
  def validate
26
33
  super
27
34
 
@@ -23,6 +23,7 @@ module Blogaze
23
23
  ::Ramaze::Route['/logout'] = '/sessions/destroy'
24
24
  ::Ramaze::Route['/register'] = '/users/new'
25
25
  ::Ramaze::Route['/users/create'] = '/users/create'
26
+ ::Ramaze::Route['/profile'] = '/users/profile'
26
27
  ::Ramaze::Route[/\/sessions(.*)/] = '/sessions%s'
27
28
 
28
29
  # Page routes
@@ -23,6 +23,7 @@
23
23
  <?r if @userinfo.group.is_admin == 1 ?>
24
24
  <li><a href="/admin">Admin</a></li>
25
25
  <?r end ?>
26
+ <li><a href="/profile">Profile</a></li>
26
27
  <li><a href="/logout">Logout</a></li>
27
28
  <?r end ?>
28
29
  </ul>
@@ -0,0 +1,21 @@
1
+ <div id="page_content">
2
+ <h2 id="page-title">My Profile</h2>
3
+ <div class="content">
4
+ <?r if @userinfo.errors.count > 0 ?>
5
+ <div class="message error">
6
+ <?r @userinfo.errors.each do |k, v| ?>
7
+ #{k} #{v.first}<br />
8
+ <?r end ?>
9
+ </div>
10
+ <?r end ?>
11
+ <div class="profile-form tabular">
12
+ #{
13
+ form_for(@userinfo, :method => :post, :action => '/users/save') do |f|
14
+ f.input_text 'Email', :email
15
+ f.input_password 'New Password', :new_password
16
+ f.submit "Save", :class => "submit-btn"
17
+ end
18
+ }
19
+ </div>
20
+ </div>
21
+ </div>
@@ -7,5 +7,5 @@
7
7
  #
8
8
 
9
9
  module Blogaze
10
- VERSION = "0.0.3"
10
+ VERSION = "0.1.0"
11
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blogaze
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-27 00:00:00.000000000 Z
12
+ date: 2013-01-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ramaze
@@ -175,6 +175,7 @@ files:
175
175
  - lib/blogaze/themes/default/posts/view.xhtml
176
176
  - lib/blogaze/themes/default/sessions/new.xhtml
177
177
  - lib/blogaze/themes/default/users/new.xhtml
178
+ - lib/blogaze/themes/default/users/profile.xhtml
178
179
  - lib/blogaze/version.rb
179
180
  - proto/Rakefile
180
181
  - proto/app.rb