lockr 0.4.5 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/httplockr.rb +64 -0
- data/lib/lockr.rb +0 -4
- data/lib/lockr/action/add.rb +7 -14
- data/lib/lockr/action/base.rb +3 -24
- data/lib/lockr/action/list.rb +7 -8
- data/lib/lockr/action/remove.rb +7 -16
- data/lib/lockr/action/show.rb +6 -6
- data/lib/lockr/fileutils.rb +31 -8
- data/lib/lockr/http/httplockrinit.rb +79 -0
- data/lib/lockr/pwdmgr.rb +126 -0
- data/lib/lockr/sftp.rb +1 -1
- data/lib/lockr/version.rb +2 -2
- data/resources/static/css/images/animated-overlay.gif +0 -0
- data/resources/static/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
- data/resources/static/css/images/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
- data/resources/static/css/images/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
- data/resources/static/css/images/ui-bg_glass_50_3baae3_1x400.png +0 -0
- data/resources/static/css/images/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
- data/resources/static/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
- data/resources/static/css/images/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
- data/resources/static/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
- data/resources/static/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
- data/resources/static/css/images/ui-icons_2694e8_256x240.png +0 -0
- data/resources/static/css/images/ui-icons_2e83ff_256x240.png +0 -0
- data/resources/static/css/images/ui-icons_3d80b3_256x240.png +0 -0
- data/resources/static/css/images/ui-icons_72a7cf_256x240.png +0 -0
- data/resources/static/css/images/ui-icons_ffffff_256x240.png +0 -0
- data/resources/static/css/jquery-ui-1.10.3.custom.min.css +7 -0
- data/resources/static/css/jquery.dataTables.css +221 -0
- data/resources/static/css/lockr.css +66 -0
- data/resources/static/js/jquery-2.0.0.min.js +6 -0
- data/resources/static/js/jquery-ui-1.10.3.custom.min.js +7 -0
- data/resources/static/js/jquery.dataTables.min.js +155 -0
- data/resources/static/js/lockr.js +95 -0
- data/resources/views/addnewsite.erb +12 -0
- data/resources/views/changepwd.erb +15 -0
- data/resources/views/deletepwd.erb +13 -0
- data/resources/views/entryrow.erb +15 -0
- data/resources/views/index.erb +44 -0
- data/resources/views/layout.erb +19 -0
- metadata +113 -9
- data/lib/lockr/action/aes.rb +0 -5
@@ -0,0 +1,95 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
$('.entrytable').dataTable({
|
3
|
+
"bJQueryUI": true,
|
4
|
+
"bPaginate": false,
|
5
|
+
"aoColumns": [
|
6
|
+
{ "sWidth": "25%" },
|
7
|
+
{ "sWidth": "25%" },
|
8
|
+
{ "sWidth": "50%" }
|
9
|
+
]
|
10
|
+
});
|
11
|
+
|
12
|
+
$( "a.button" ).button();
|
13
|
+
|
14
|
+
$( "a#addnew").click( function() {
|
15
|
+
$( "#dialog-addnewsite" ).dialog( "open" );
|
16
|
+
});
|
17
|
+
|
18
|
+
$( "#dialog-addnewsite" ).dialog({
|
19
|
+
autoOpen: false,
|
20
|
+
height: 400,
|
21
|
+
width: 400,
|
22
|
+
modal: true,
|
23
|
+
buttons: {
|
24
|
+
"Save": function() {
|
25
|
+
$( "form#form-add").submit();
|
26
|
+
},
|
27
|
+
"Cancel": function() {
|
28
|
+
$( this ).dialog( "close" );
|
29
|
+
}
|
30
|
+
},
|
31
|
+
close: function() {
|
32
|
+
// clean all fields
|
33
|
+
$("dialog-addnewsite input").each().val( "" ).removeClass( "ui-state-error" );
|
34
|
+
}
|
35
|
+
});
|
36
|
+
|
37
|
+
$( "a#changepwd").click( function() {
|
38
|
+
var id = $( this).siblings( ".id").get(0).value;
|
39
|
+
var username = $( this).siblings( ".username").get(0).value;
|
40
|
+
$("#dialog-changepwd #id").attr('value', id);
|
41
|
+
$("#dialog-changepwd #id_label").html( id);
|
42
|
+
$("#dialog-changepwd #username").attr('value', username);
|
43
|
+
$("#dialog-changepwd #username_label").html( username);
|
44
|
+
$("#dialog-changepwd" ).dialog( "open" );
|
45
|
+
});
|
46
|
+
|
47
|
+
$( "#dialog-changepwd" ).dialog({
|
48
|
+
autoOpen: false,
|
49
|
+
height: 400,
|
50
|
+
width: 400,
|
51
|
+
modal: true,
|
52
|
+
buttons: {
|
53
|
+
"Change": function() {
|
54
|
+
$( "form#form-change").submit();
|
55
|
+
},
|
56
|
+
"Cancel": function() {
|
57
|
+
$( this ).dialog( "close" );
|
58
|
+
}
|
59
|
+
},
|
60
|
+
close: function() {
|
61
|
+
// clean all fields
|
62
|
+
$("dialog-changepwd input").each().val( "" ).removeClass( "ui-state-error" );
|
63
|
+
}
|
64
|
+
});
|
65
|
+
|
66
|
+
$( "a#deletepwd").click( function() {
|
67
|
+
var id = $( this).siblings( ".id").get(0).value;
|
68
|
+
var username = $( this).siblings( ".username").get(0).value;
|
69
|
+
$("#dialog-deletepwd #id").attr('value', id);
|
70
|
+
$("#dialog-deletepwd #id_label").html( id);
|
71
|
+
$("#dialog-deletepwd #username").attr('value', username);
|
72
|
+
$("#dialog-deletepwd #username_label").html( username);
|
73
|
+
$("#dialog-deletepwd" ).dialog( "open" );
|
74
|
+
});
|
75
|
+
|
76
|
+
$( "#dialog-deletepwd" ).dialog({
|
77
|
+
autoOpen: false,
|
78
|
+
height: 400,
|
79
|
+
width: 400,
|
80
|
+
modal: true,
|
81
|
+
buttons: {
|
82
|
+
"Delete": function() {
|
83
|
+
$( "form#form-delete").submit();
|
84
|
+
},
|
85
|
+
"Cancel": function() {
|
86
|
+
$( this ).dialog( "close" );
|
87
|
+
}
|
88
|
+
},
|
89
|
+
close: function() {
|
90
|
+
// clean all fields
|
91
|
+
$("dialog-deletepwd input").each().val( "" ).removeClass( "ui-state-error" );
|
92
|
+
}
|
93
|
+
});
|
94
|
+
|
95
|
+
});
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div id="dialog-addnewsite" title="Add new site" class="dialog">
|
2
|
+
<form id="form-add" action="/password" method="post">
|
3
|
+
<fieldset>
|
4
|
+
<label for="name">Site-ID</label>
|
5
|
+
<input type="text" name="id" id="id" class="text ui-widget-content ui-corner-all" />
|
6
|
+
<label for="username">Username</label>
|
7
|
+
<input type="text" name="username" id="username" class="text ui-widget-content ui-corner-all" />
|
8
|
+
<label for="password">Password</label>
|
9
|
+
<input type="password" name="password" id="password" class="text ui-widget-content ui-corner-all" />
|
10
|
+
</fieldset>
|
11
|
+
</form>
|
12
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div id="dialog-changepwd" title="Change password" class="dialog">
|
2
|
+
<form id="form-change" action="/password" method="post">
|
3
|
+
<input type="hidden" name="_method" value="PATCH"/>
|
4
|
+
<input type="hidden" name="id" id="id"/>
|
5
|
+
<input type="hidden" name="username" id="username"/>
|
6
|
+
<fieldset>
|
7
|
+
<label for="name">Site-ID</label>
|
8
|
+
<label class="labelfield ui-widget-content ui-corner-all"><span id="id_label"></span></label>
|
9
|
+
<label for="username">Username</label>
|
10
|
+
<label class="labelfield ui-widget-content ui-corner-all"><span id="username_label"></span></label>
|
11
|
+
<label for="password">Password</label>
|
12
|
+
<input type="password" name="password" id="password" class="text ui-widget-content ui-corner-all" />
|
13
|
+
</fieldset>
|
14
|
+
</form>
|
15
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<div id="dialog-deletepwd" title="Delete password" class="dialog">
|
2
|
+
<form id="form-delete" action="/password" method="post">
|
3
|
+
<input type="hidden" name="_method" value="DELETE"/>
|
4
|
+
<input type="hidden" name="id" id="id"/>
|
5
|
+
<input type="hidden" name="username" id="username"/>
|
6
|
+
<fieldset>
|
7
|
+
<label for="name">Site-ID</label>
|
8
|
+
<label class="labelfield ui-widget-content ui-corner-all"><span id="id_label"></span></label>
|
9
|
+
<label for="username">Username</label>
|
10
|
+
<label class="labelfield ui-widget-content ui-corner-all"><span id="username_label"></span></label>
|
11
|
+
</fieldset>
|
12
|
+
</form>
|
13
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<tr>
|
2
|
+
<td>
|
3
|
+
<%= store.id %>
|
4
|
+
</td>
|
5
|
+
<td>
|
6
|
+
<%= store.username %>
|
7
|
+
</td>
|
8
|
+
<td>
|
9
|
+
<input type="hidden" class="id" value="<%= store.id %>"/>
|
10
|
+
<input type="hidden" class="username" value="<%= store.username %>"/>
|
11
|
+
<a href="/password?id=<%= u(store.id) %>&username=<%= u(store.username) %>" class="button">Copy</a>
|
12
|
+
<a id="changepwd" class="button">Change</a>
|
13
|
+
<a id="deletepwd" class="button">Delete</a>
|
14
|
+
</td>
|
15
|
+
</tr>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<h1>Lockr password manager</h1>
|
2
|
+
|
3
|
+
<div class="spacebelow">
|
4
|
+
<a id="addnew" class="button">Add new site</a>
|
5
|
+
</div>
|
6
|
+
<div class="entries">
|
7
|
+
<table class="entrytable">
|
8
|
+
<thead>
|
9
|
+
<th>
|
10
|
+
Site ID
|
11
|
+
</th>
|
12
|
+
<th>
|
13
|
+
Username
|
14
|
+
</th>
|
15
|
+
<th>
|
16
|
+
Password functions
|
17
|
+
</th>
|
18
|
+
</thead>
|
19
|
+
<tbody>
|
20
|
+
<% for entry in directory.keys() %>
|
21
|
+
<% if directory[entry] %>
|
22
|
+
<% for store in directory[entry].values() %>
|
23
|
+
<%= erb :entryrow, :locals => { :store => store } %>
|
24
|
+
<% end %>
|
25
|
+
<% else %>
|
26
|
+
<tr>
|
27
|
+
<td>
|
28
|
+
<%= entry %>
|
29
|
+
</td>
|
30
|
+
<td>
|
31
|
+
Unable to decrypt
|
32
|
+
</td>
|
33
|
+
<td>
|
34
|
+
|
35
|
+
</td>
|
36
|
+
<% end%>
|
37
|
+
<% end %>
|
38
|
+
</tbody>
|
39
|
+
</table>
|
40
|
+
|
41
|
+
<%= erb(:addnewsite, :layout => false) %>
|
42
|
+
<%= erb(:changepwd, :layout => false) %>
|
43
|
+
<%= erb(:deletepwd, :layout => false) %>
|
44
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title> Lockr password management </title>
|
4
|
+
<link href="/css/jquery-ui-1.10.3.custom.min.css" media="all" rel="stylesheet" type="text/css">
|
5
|
+
<link href='http://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'>
|
6
|
+
<link href='/css/lockr.css' rel='stylesheet' type='text/css'>
|
7
|
+
<script src="/js/jquery-2.0.0.min.js" type="text/javascript"></script>
|
8
|
+
<script src="/js/jquery-ui-1.10.3.custom.min.js" type="text/javascript"></script>
|
9
|
+
<script src="/js/lockr.js" type="text/javascript"></script>
|
10
|
+
<script src="/js/jquery.dataTables.min.js" type="text/javascript"></script>
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div class="center">
|
14
|
+
<div class="content">
|
15
|
+
<%= yield %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</body>
|
19
|
+
</html>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lockr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc Doerflinger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: highline
|
@@ -52,29 +52,133 @@ dependencies:
|
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 2.0.5
|
55
|
-
|
56
|
-
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sinatra
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.4.4
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.4.4
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: clipboard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.0.5
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.0.5
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rufus-scheduler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.0.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.0.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: padrino-helpers
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.11.4
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.11.4
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: browser_gui
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.1.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.1.0
|
125
|
+
description: "Lockr is a password manager that features a local web interface \n (no
|
126
|
+
cloud, all on your local machine) as well as command line function \n to
|
127
|
+
manage your passwords. Passwords are stored AES-encrypted in a file \n on
|
128
|
+
your own system and can (if you want) be uploaded to your own \n 'cloud'
|
129
|
+
via ssh."
|
57
130
|
email: info@byteblues.com
|
58
131
|
executables:
|
59
132
|
- lockr
|
133
|
+
- httplockr.rb
|
60
134
|
extensions: []
|
61
135
|
extra_rdoc_files: []
|
62
136
|
files:
|
63
|
-
-
|
137
|
+
- bin/httplockr.rb
|
138
|
+
- bin/lockr
|
64
139
|
- lib/lockr/action/add.rb
|
65
|
-
- lib/lockr/action/aes.rb
|
66
140
|
- lib/lockr/action/base.rb
|
67
141
|
- lib/lockr/action/list.rb
|
68
142
|
- lib/lockr/action/remove.rb
|
69
143
|
- lib/lockr/action/show.rb
|
70
|
-
- lib/lockr/encryption/aes.rb
|
71
144
|
- lib/lockr/config.rb
|
145
|
+
- lib/lockr/encryption/aes.rb
|
72
146
|
- lib/lockr/fileutils.rb
|
147
|
+
- lib/lockr/http/httplockrinit.rb
|
73
148
|
- lib/lockr/pwdgen.rb
|
149
|
+
- lib/lockr/pwdmgr.rb
|
74
150
|
- lib/lockr/pwdstore.rb
|
75
151
|
- lib/lockr/sftp.rb
|
76
152
|
- lib/lockr/version.rb
|
77
|
-
-
|
153
|
+
- lib/lockr.rb
|
154
|
+
- resources/static/css/images/animated-overlay.gif
|
155
|
+
- resources/static/css/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
|
156
|
+
- resources/static/css/images/ui-bg_flat_15_cd0a0a_40x100.png
|
157
|
+
- resources/static/css/images/ui-bg_glass_100_e4f1fb_1x400.png
|
158
|
+
- resources/static/css/images/ui-bg_glass_50_3baae3_1x400.png
|
159
|
+
- resources/static/css/images/ui-bg_glass_80_d7ebf9_1x400.png
|
160
|
+
- resources/static/css/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
|
161
|
+
- resources/static/css/images/ui-bg_highlight-hard_70_000000_1x100.png
|
162
|
+
- resources/static/css/images/ui-bg_highlight-soft_100_deedf7_1x100.png
|
163
|
+
- resources/static/css/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
|
164
|
+
- resources/static/css/images/ui-icons_2694e8_256x240.png
|
165
|
+
- resources/static/css/images/ui-icons_2e83ff_256x240.png
|
166
|
+
- resources/static/css/images/ui-icons_3d80b3_256x240.png
|
167
|
+
- resources/static/css/images/ui-icons_72a7cf_256x240.png
|
168
|
+
- resources/static/css/images/ui-icons_ffffff_256x240.png
|
169
|
+
- resources/static/css/jquery-ui-1.10.3.custom.min.css
|
170
|
+
- resources/static/css/jquery.dataTables.css
|
171
|
+
- resources/static/css/lockr.css
|
172
|
+
- resources/static/js/jquery-2.0.0.min.js
|
173
|
+
- resources/static/js/jquery-ui-1.10.3.custom.min.js
|
174
|
+
- resources/static/js/jquery.dataTables.min.js
|
175
|
+
- resources/static/js/lockr.js
|
176
|
+
- resources/views/addnewsite.erb
|
177
|
+
- resources/views/changepwd.erb
|
178
|
+
- resources/views/deletepwd.erb
|
179
|
+
- resources/views/entryrow.erb
|
180
|
+
- resources/views/index.erb
|
181
|
+
- resources/views/layout.erb
|
78
182
|
homepage: http://lockr.byteblues.com/
|
79
183
|
licenses: []
|
80
184
|
metadata: {}
|
@@ -97,5 +201,5 @@ rubyforge_project:
|
|
97
201
|
rubygems_version: 2.0.3
|
98
202
|
signing_key:
|
99
203
|
specification_version: 4
|
100
|
-
summary:
|
204
|
+
summary: Password manager with local web interface and command line tools
|
101
205
|
test_files: []
|