kitsune 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/README.textile +12 -1
  2. data/Rakefile +1 -1
  3. data/app/controllers/admin/kitsune/kitsune_controller.rb +67 -1
  4. data/app/controllers/admin/kitsune/kitsune_users_controller.rb +20 -0
  5. data/app/controllers/admin/kitsune/sessions_controller.rb +23 -0
  6. data/app/helpers/admin/kitsune/records_helper.rb +5 -0
  7. data/app/views/admin/kitsune/kitsune_users/index.html.haml +19 -0
  8. data/app/views/admin/kitsune/kitsune_users/new.html.haml +19 -0
  9. data/app/views/admin/kitsune/models/index.html.haml +1 -2
  10. data/app/views/admin/kitsune/records/_form.html.haml +0 -1
  11. data/app/views/admin/kitsune/records/index.html.haml +2 -0
  12. data/app/views/admin/kitsune/sessions/new.html.haml +12 -0
  13. data/app/views/layouts/admin/kitsune.html.erb +29 -24
  14. data/config/kitsune_routes.rb +2 -0
  15. data/generators/kitsune/kitsune_generator.rb +7 -3
  16. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/about.htm +56 -0
  17. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/anchor.htm +31 -0
  18. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/charmap.htm +53 -0
  19. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/color_picker.htm +75 -0
  20. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/editor_template.js +1153 -0
  21. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/editor_template_src.js +1153 -0
  22. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/image.htm +65 -0
  23. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/images.json +8 -0
  24. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/img/colorpicker.jpg +0 -0
  25. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/img/icons.gif +0 -0
  26. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/about.js +72 -0
  27. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/anchor.js +37 -0
  28. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/charmap.js +325 -0
  29. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/color_picker.js +253 -0
  30. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/image.js +260 -0
  31. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/link.js +156 -0
  32. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/source_editor.js +62 -0
  33. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/langs/en.js +62 -0
  34. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/langs/en_dlg.js +51 -0
  35. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/link.htm +63 -0
  36. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/content.css +32 -0
  37. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/dialog.css +184 -0
  38. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/buttons.png +0 -0
  39. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/items.gif +0 -0
  40. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/menu_arrow.gif +0 -0
  41. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/menu_check.gif +0 -0
  42. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/progress.gif +0 -0
  43. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/tabs.gif +0 -0
  44. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/ui.css +214 -0
  45. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/content.css +32 -0
  46. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/dialog.css +115 -0
  47. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/img/button_bg.png +0 -0
  48. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/img/button_bg_black.png +0 -0
  49. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/img/button_bg_silver.png +0 -0
  50. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/ui.css +215 -0
  51. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/ui_black.css +8 -0
  52. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/ui_silver.css +5 -0
  53. data/generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/source_editor.htm +31 -0
  54. data/generators/kitsune/templates/kitsune_user.rb +3 -0
  55. data/generators/kitsune/templates/migrations/create_kitsune_users.rb +15 -0
  56. data/generators/kitsune/templates/migrations/create_pages.rb +1 -0
  57. data/generators/kitsune/templates/stylesheets/global.css +9 -1
  58. data/lib/kitsune.rb +9 -1
  59. data/lib/kitsune/page.rb +1 -0
  60. data/lib/kitsune_user.rb +49 -0
  61. metadata +48 -2
@@ -0,0 +1,8 @@
1
+ /* Black */
2
+ .o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)}
3
+ .o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}
4
+ .o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}
5
+ .o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}
6
+ .o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}
7
+ .o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}
8
+ .o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
@@ -0,0 +1,5 @@
1
+ /* Silver */
2
+ .o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)}
3
+ .o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}
4
+ .o2k7SkinSilver .mceListBox .mceText {background:#FFF}
5
+ .o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}
@@ -0,0 +1,31 @@
1
+ <html xmlns="http://www.w3.org/1999/xhtml">
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
4
+ <title>{#advanced_dlg.code_title}</title>
5
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6
+ <script type="text/javascript" src="js/source_editor.js"></script>
7
+ </head>
8
+ <body onresize="resizeInputs();" style="display:none; overflow:hidden;">
9
+ <form name="source" onsubmit="saveContent();return false;" action="#">
10
+ <div style="float: left" class="title">{#advanced_dlg.code_title}</div>
11
+
12
+ <div id="wrapline" style="float: right">
13
+ <input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label>
14
+ </div>
15
+
16
+ <br style="clear: both" />
17
+
18
+ <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>
19
+
20
+ <div class="mceActionPanel">
21
+ <div style="float: left">
22
+ <input type="submit" name="insert" value="{#update}" id="insert" />
23
+ </div>
24
+
25
+ <div style="float: right">
26
+ <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
27
+ </div>
28
+ </div>
29
+ </form>
30
+ </body>
31
+ </html>
@@ -0,0 +1,3 @@
1
+ class KitsuneUser < ActiveRecord::Base
2
+
3
+ end
@@ -0,0 +1,15 @@
1
+ class KitsuneCreateKitsuneUsers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table(:kitsune_users) do |t|
4
+ t.string :email
5
+ t.string :encrypted_password
6
+ t.string :username
7
+ t.string :salt
8
+ t.string :remember_token
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :kitsune_users
14
+ end
15
+ end
@@ -3,6 +3,7 @@ class KitsuneCreatePages < ActiveRecord::Migration
3
3
  create_table(:pages) do |t|
4
4
  t.string :title
5
5
  t.string :url
6
+ t.string :layout
6
7
  t.text :body
7
8
  t.integer :parent_id
8
9
  end
@@ -294,7 +294,15 @@ button.submitBtn:hover {
294
294
  text-indent: -9999em;
295
295
  width: 92px;
296
296
  }
297
- #header a.view:hover {
297
+ #header a.sign_out {
298
+ display: block;
299
+ float: right;
300
+ color: #BBB;
301
+ height: 27px;
302
+ margin: 5px 15px 0 0;
303
+ width: 92px;
304
+ }
305
+ #header a.view:hover, #header a.sign_out:hover {
298
306
  color: #FFF;
299
307
  }
300
308
  #header h1 {
@@ -8,7 +8,15 @@ module Kitsune
8
8
  autoload :Page, 'kitsune/page'
9
9
  class << self
10
10
  def version
11
- '0.1.0'
11
+ '0.1.1'
12
+ end
13
+
14
+ def authenticate
15
+ @authenticate ||= false
16
+ end
17
+
18
+ def authenticate=(do_authenticate)
19
+ @authenticate = do_authenticate
12
20
  end
13
21
 
14
22
  def model_paths # abstract this to something else
@@ -9,6 +9,7 @@ module Kitsune
9
9
 
10
10
  before_save :update_url
11
11
  belongs_to :page, :foreign_key => "parent_id"
12
+ belongs_to :parent
12
13
 
13
14
  def update_url
14
15
  write_attribute :url, title
@@ -0,0 +1,49 @@
1
+ require 'digest/sha1'
2
+ class KitsuneUser < ActiveRecord::Base
3
+ attr_accessor :password
4
+ attr_accessible :email, :password, :password_confirmation
5
+
6
+ validates_confirmation_of :password, :if => :password_required?
7
+ validates_presence_of :password, :if => :password_required?
8
+ validates_presence_of :email
9
+ validates_format_of :email, :with => %r{.+@.+\..+}
10
+ validates_uniqueness_of :email, :case_sensitive => false
11
+ before_save :initialize_salt, :encrypt_password
12
+
13
+ def generate_hash(string)
14
+ Digest::SHA1.hexdigest(string)
15
+ end
16
+
17
+ def initialize_salt
18
+ if new_record?
19
+ self.salt = generate_hash("--#{Time.now.utc}--#{password}--")
20
+ end
21
+ end
22
+
23
+ def remember_me!
24
+ self.remember_token = encrypt("--#{Time.now.utc}--#{password}--#{id}--")
25
+ save(false)
26
+ end
27
+
28
+ def authenticated?(password)
29
+ encrypted_password == encrypt(password)
30
+ end
31
+
32
+ def encrypt(string)
33
+ generate_hash("--#{salt}--#{string}--")
34
+ end
35
+
36
+ def encrypt_password
37
+ return if password.blank?
38
+ self.encrypted_password = encrypt(password)
39
+ end
40
+
41
+ def password_required?
42
+ encrypted_password.blank? || !password.blank?
43
+ end
44
+
45
+ def self.authenticate(email, password)
46
+ return nil unless user = find_by_email(email)
47
+ return user if user.authenticated?(password)
48
+ end
49
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitsune
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Mongeau <matt@toastyapps.com>
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-10 00:00:00 -05:00
12
+ date: 2010-01-04 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -45,12 +45,16 @@ files:
45
45
  - README.textile
46
46
  - app/controllers/admin/kitsune/application_controller.rb
47
47
  - app/controllers/admin/kitsune/kitsune_controller.rb
48
+ - app/controllers/admin/kitsune/kitsune_users_controller.rb
48
49
  - app/controllers/admin/kitsune/media_controller.rb
49
50
  - app/controllers/admin/kitsune/models_controller.rb
50
51
  - app/controllers/admin/kitsune/pages_controller.rb
51
52
  - app/controllers/admin/kitsune/records_controller.rb
53
+ - app/controllers/admin/kitsune/sessions_controller.rb
52
54
  - app/controllers/kitsune_controller.rb
53
55
  - app/helpers/admin/kitsune/records_helper.rb
56
+ - app/views/admin/kitsune/kitsune_users/index.html.haml
57
+ - app/views/admin/kitsune/kitsune_users/new.html.haml
54
58
  - app/views/admin/kitsune/media/new.html.erb
55
59
  - app/views/admin/kitsune/models/index.html.haml
56
60
  - app/views/admin/kitsune/pages/_form.html.erb
@@ -62,6 +66,7 @@ files:
62
66
  - app/views/admin/kitsune/records/edit.html.haml
63
67
  - app/views/admin/kitsune/records/index.html.haml
64
68
  - app/views/admin/kitsune/records/new.html.haml
69
+ - app/views/admin/kitsune/sessions/new.html.haml
65
70
  - app/views/admin/kitsune/shared/_flashes.html.haml
66
71
  - app/views/kitsune/show.html.erb
67
72
  - app/views/layouts/admin/kitsune.html.erb
@@ -305,6 +310,44 @@ files:
305
310
  - generators/kitsune/templates/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css
306
311
  - generators/kitsune/templates/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css
307
312
  - generators/kitsune/templates/javascripts/tiny_mce/themes/advanced/source_editor.htm
313
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/about.htm
314
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/anchor.htm
315
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/charmap.htm
316
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/color_picker.htm
317
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/editor_template.js
318
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/editor_template_src.js
319
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/image.htm
320
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/images.json
321
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/img/colorpicker.jpg
322
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/img/icons.gif
323
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/about.js
324
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/anchor.js
325
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/charmap.js
326
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/color_picker.js
327
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/image.js
328
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/link.js
329
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/js/source_editor.js
330
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/langs/en.js
331
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/langs/en_dlg.js
332
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/link.htm
333
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/content.css
334
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/dialog.css
335
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/buttons.png
336
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/items.gif
337
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/menu_arrow.gif
338
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/menu_check.gif
339
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/progress.gif
340
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/img/tabs.gif
341
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/default/ui.css
342
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/content.css
343
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/dialog.css
344
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/img/button_bg.png
345
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/img/button_bg_black.png
346
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/img/button_bg_silver.png
347
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/ui.css
348
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/ui_black.css
349
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/skins/o2k7/ui_silver.css
350
+ - generators/kitsune/templates/javascripts/tiny_mce/themes/kitsune/source_editor.htm
308
351
  - generators/kitsune/templates/javascripts/tiny_mce/themes/simple/editor_template.js
309
352
  - generators/kitsune/templates/javascripts/tiny_mce/themes/simple/editor_template_src.js
310
353
  - generators/kitsune/templates/javascripts/tiny_mce/themes/simple/img/icons.gif
@@ -322,6 +365,8 @@ files:
322
365
  - generators/kitsune/templates/javascripts/tiny_mce/utils/mctabs.js
323
366
  - generators/kitsune/templates/javascripts/tiny_mce/utils/validate.js
324
367
  - generators/kitsune/templates/javascripts/upload_maker.js
368
+ - generators/kitsune/templates/kitsune_user.rb
369
+ - generators/kitsune/templates/migrations/create_kitsune_users.rb
325
370
  - generators/kitsune/templates/migrations/create_pages.rb
326
371
  - generators/kitsune/templates/page.rb
327
372
  - generators/kitsune/templates/README
@@ -353,6 +398,7 @@ files:
353
398
  - lib/kitsune/mongo_mapper.rb
354
399
  - lib/kitsune/page.rb
355
400
  - lib/kitsune.rb
401
+ - lib/kitsune_user.rb
356
402
  - rails/init.rb
357
403
  has_rdoc: true
358
404
  homepage: http://github.com/toastyapps/kitsune