Commit Graph

647 Commits

Author SHA1 Message Date
Xavier Guimard
ed748080d1 Split CDA (#1067) 2017-02-16 10:42:22 +00:00
Xavier Guimard
1e7b2c4a39 Add LWP options (closes: #1065) 2017-02-15 15:08:23 +00:00
Xavier Guimard
b829b6c19b Replace userNotice/Error... by userLogger (#857) 2017-02-15 14:16:59 +00:00
Xavier Guimard
deb28bc9cb Replace lmLog by logger-> (#857) 2017-02-15 06:41:50 +00:00
Xavier Guimard
fc1527686c Remove loca-only parameters (#1160) 2017-02-15 06:39:54 +00:00
Xavier Guimard
88dd1201ef Remove local-only parameters (#1160) 2017-02-13 16:48:39 +00:00
Xavier Guimard
40b7535ff3 Reorganize handler (closes: #1160) 2017-02-11 07:47:22 +00:00
Xavier Guimard
4b8db05b88 Hide undefined sub from tests (#1160) 2017-02-10 16:46:19 +00:00
Xavier Guimard
57330851f8 Avoid compiling methods in rules verification (#1160)
This cause customFunctions to return 1 after conf save with Nginx
2017-02-10 14:21:52 +00:00
Xavier Guimard
820691df33 Start handler reorganization (#1160) 2017-02-08 22:18:52 +00:00
Xavier Guimard
5c421f8b61 Spelling parser 2017-02-07 14:46:28 +00:00
Xavier Guimard
cd894cbc2c Add test for combination (#1151) 2017-02-07 06:21:23 +00:00
Xavier Guimard
58ee26a128 Combination seems finished (except tests) (#1151) 2017-02-06 20:24:58 +00:00
Xavier Guimard
2982abb589 Combination in progress (#1151) 2017-02-06 12:36:29 +00:00
Xavier Guimard
1780092b0c Combination in progress (#1151) 2017-02-06 06:42:22 +00:00
Xavier Guimard
8a3bb7b0f9 Combination override conf (#1151)
TODO: lot of job in the manager...
2017-02-05 23:04:28 +00:00
Xavier Guimard
099063994e Remove also WebDI for userDB (see ^) 2017-02-05 09:18:57 +00:00
Xavier Guimard
7d27259e64 Create a "Same" value for userDB and remove some other 2017-02-05 09:13:20 +00:00
Xavier Guimard
41da50b8ca U2F registration works (#1148) 2017-02-03 17:14:13 +00:00
Xavier Guimard
a14d718351 U2F skeleton (#1148) 2017-02-02 21:48:32 +00:00
Xavier Guimard
71b9b98cbb Notif/JSON tested (closes: #868) 2017-02-02 12:29:59 +00:00
Xavier Guimard
5b96200ed6 Rearrange JSON file (#868) 2017-02-02 06:33:34 +00:00
Xavier Guimard
5e5cc3f186 Decode new notif content (#868) 2017-02-02 06:14:36 +00:00
Xavier Guimard
dc2f60f4f5 Optimize conf access 2017-02-02 05:37:56 +00:00
Xavier Guimard
a08d2f6433 Remove BrowserID parameters (see #602) 2017-02-01 10:32:03 +00:00
Xavier Guimard
8f0bb1bed7 Notification File/JSON tested (#868) 2017-02-01 06:16:33 +00:00
Xavier Guimard
61fd463f45 Split notifications (XML vs JSON) [#868] 2017-01-31 19:11:59 +00:00
Xavier Guimard
4ae5c7463c Replace .pl (#595) 2017-01-30 16:22:39 +00:00
Xavier Guimard
7a3725db9d Pwd reset in progress (#595) 2017-01-29 09:11:27 +00:00
Xavier Guimard
1e4c6da389 Rename lmConf-*.js to lmConf-*.json (fix: #1090) 2017-01-27 11:58:46 +00:00
Xavier Guimard
f7df1db206 Hide some warnings 2017-01-27 09:39:58 +00:00
Xavier Guimard
234551387f Captcha and token in progress (#1140) 2017-01-24 22:05:07 +00:00
Xavier Guimard
a9e8dcf276 Don't store 'false' values in default 2017-01-24 21:02:04 +00:00
Xavier Guimard
b70dac9f3a CSP in progress (#1138) 2017-01-19 06:09:20 +00:00
Xavier Guimard
04585cf188 Prepare Content-Security-Policy for portal (#1138) 2017-01-18 22:36:03 +00:00
Xavier Guimard
5ae758c6f1 Remove all inline CSS/JS (#1137) 2017-01-17 23:17:23 +00:00
Xavier Guimard
6b2dbd6482 Add portal status plugin (#595) 2017-01-16 21:00:50 +00:00
Xavier Guimard
6e3cb623ac Remove registerUrl: fixed to /register (#595) 2017-01-14 08:17:35 +00:00
Xavier Guimard
e923a87def Reject duplicate entityID (Fix: #1127) 2017-01-13 16:16:33 +00:00
Xavier Guimard
1b88459c31 Remove samlIDPSSODescriptorSingleSignOnServiceSOAP from everywhere 2017-01-13 08:17:20 +00:00
Xavier Guimard
52b2c8f90e Remove unimplemented SAML methods 2017-01-12 11:55:28 +00:00
Xavier Guimard
607070514e Apply conf locally 2017-01-12 06:05:04 +00:00
Xavier Guimard
3c5cb018ef Compact conf 2017-01-11 21:10:13 +00:00
Xavier Guimard
1ccad93701 Compact conf 2017-01-11 06:13:37 +00:00
Xavier Guimard
990006ce80 Move conf regexp constants to common (#970) 2017-01-10 21:43:37 +00:00
Xavier Guimard
34460af4ee REST in progress (#970) 2017-01-10 12:36:11 +00:00
Xavier Guimard
62e3ba159d REST in progress (#970) 2017-01-10 12:25:30 +00:00
Xavier Guimard
10509e2a52 REST in progress (#970) 2017-01-09 06:11:30 +00:00
Xavier Guimard
a0ea56a29a SOAP/REST in progress (#970) 2017-01-08 08:42:19 +00:00
Xavier Guimard
d1646392a9 Split soap/rest server in config/sessions (#970) 2017-01-08 08:42:16 +00:00
Xavier Guimard
2250202fa9 Manage Zero only in manager (#970) 2017-01-08 08:42:12 +00:00
Xavier Guimard
2118a4242b Move read conf calls into Conf/RESTServer (#970) 2017-01-08 06:25:10 +00:00
Xavier Guimard
1983842f79 SOAP server (#970) 2017-01-07 20:37:07 +00:00
Xavier Guimard
b28fbd23aa Add "rest" parameter (#970) 2017-01-06 16:18:43 +00:00
Xavier Guimard
cd17296dae Reorganize conf access (#595) 2017-01-06 12:40:56 +00:00
Xavier Guimard
8856c35fb2 Prepare REST server (#970) 2017-01-06 09:04:00 +00:00
Xavier Guimard
f96998c99c More POD (#595) 2017-01-05 07:41:29 +00:00
Xavier Guimard
a8d7a80c3b More POD (#595) 2017-01-05 05:57:16 +00:00
Xavier Guimard
b94a337a05 Optimize checksession endpoint (#595) 2017-01-04 22:19:17 +00:00
Xavier Guimard
3e481fcd4e Update POD (#595) 2017-01-04 20:37:29 +00:00
Xavier Guimard
a09d12031e Some big changes (#595)
Replace uri_escape by WWW::Form::UrlEncoded
Replace PSGI:Request by inheritance from Plack::Request
2017-01-04 16:36:54 +00:00
Xavier Guimard
d35e24703e Remove old Google auth (#595)
Google OpenId endpoints now points to OpenId-Connect configuration
2017-01-03 06:09:29 +00:00
Xavier Guimard
3790836333 Start OIDC (#595) 2016-12-29 20:34:46 +00:00
Xavier Guimard
c14bd95d92 Import some 1.9.7 changes 2016-12-29 06:25:07 +00:00
Xavier Guimard
0da228ff35 make tidy 2016-12-26 09:23:35 +00:00
Clément Oudot
76dffd04b2 Set port in reload URLs (#1104) 2016-12-08 14:32:00 +00:00
Clément Oudot
b07a8de919 Apply patch to use Basic credentials on reload URLs (#1104) 2016-12-06 12:31:38 +00:00
Xavier Guimard
310896e6a1 Don't store default values for sub parameters 2016-12-03 18:26:56 +00:00
Clément Oudot
c48ee9d3e3 Apply modification for oidcRPMetaDataOptionsExtraClaims to trunk (#1105) 2016-11-15 16:04:43 +00:00
Xavier Guimard
6f0a9a60b0 Declare oidcRPMetaDataOptionsExtraClaims as hash (may close #1105) 2016-11-05 08:03:09 +00:00
Clément Oudot
fdf74d2f3a Apply patch on Manager in trunk (#1088) 2016-10-04 09:07:55 +00:00
Clément Oudot
fc878c0545 Apply patch on Manager in trunk (#1087) 2016-09-29 19:24:58 +00:00
Clément Oudot
91b7ac93b1 Apply bypass consent option to trunk (#1089) 2016-09-27 13:23:29 +00:00
Clément Oudot
47c227246b Port option to store ID token in trunk (#1083) 2016-09-13 13:40:02 +00:00
Clément Oudot
5d2be9a418 Port SAML Token options in trunk (#1083) 2016-09-13 12:04:30 +00:00
Clément Oudot
7b4e3e4904 Port timeoutActivityInterval to trunk (#1001) 2016-09-12 09:49:40 +00:00
Clément Oudot
cfff6103a7 Change default values for SAML security parameters (#1079) 2016-09-06 09:49:45 +00:00
Clément Oudot
e141c2482a Add IDP resolution rule in Manager (#1076) 2016-08-31 08:32:32 +00:00
Clément Oudot
8f80bf5dee Allow multi level root key in addKey/delKey cli commands (#1075) 2016-08-25 14:03:05 +00:00
Clément Oudot
3a6978dad8 Add option to decode UTF8 SAML attributes (#1045) 2016-07-08 14:14:37 +00:00
Xavier Guimard
d27de97454 Repair portal links (LEMONLDAP-960) 2016-07-03 07:28:08 +00:00
Clément Oudot
df1ecd7318 Return JSON response instead of error when no sessions are found (#1043) 2016-06-27 06:08:25 +00:00
Xavier Guimard
d5b5c57595 Add filter on _session_kind (Closes: #1043) 2016-06-26 07:12:46 +00:00
Xavier Guimard
41e2be351f Don't reject conf with old parameters (Closes: #1048) 2016-06-24 10:33:17 +00:00
Clément Oudot
35eb674b33 Manage values for samlIDPMetaDataOptionsSLOBinding (#1046) 2016-06-21 12:40:43 +00:00
Xavier Guimard
3addfb8917 Change $total for doubleIp (#1043) 2016-06-15 05:26:19 +00:00
Xavier Guimard
92b80041b9 Expose total count (#1043) 2016-06-14 19:51:47 +00:00
Xavier Guimard
0eba9d1bca Typo in #1040 backport 2016-06-14 13:04:32 +00:00
Xavier Guimard
eac5481342 New fix for #1040 2016-06-14 13:00:23 +00:00
Xavier Guimard
0b5957c881 Don't display notification tpl if something fails (closes: #1039) 2016-06-14 11:46:17 +00:00
Xavier Guimard
fe3bacbc24 Replace _whatToTrace by $conf->whatToTrace (closes: #1040) 2016-06-14 11:37:44 +00:00
Xavier Guimard
dfffbd1742 Fix information lost when renaming partner (closes: #1042) 2016-06-14 05:26:24 +00:00
Xavier Guimard
9cca6ae712 Fix vhost rename (closes: #1038) 2016-06-13 19:40:36 +00:00
Xavier Guimard
68482aa0d7 Backport #1040 2016-06-11 06:29:07 +00:00
Xavier Guimard
1cf2d8fd5c Backport #1040 2016-06-10 11:08:09 +00:00
Clément Oudot
4dce8792d0 Apply patch from commit 5321 to trunk (#1037) 2016-06-10 07:30:41 +00:00
Clément Oudot
6fba9de5c2 Fix non hash unreference (#1037) 2016-06-09 21:19:40 +00:00
Xavier Guimard
78b015a70d Enable tests for doubleHash (#1025) 2016-06-07 14:23:44 +00:00
Xavier Guimard
71f8eb589d Manage unopened doublehash keys (#1025) 2016-06-06 10:32:19 +00:00
Clément Oudot
a8ecd8f76a Do not use lmLog in Conf/Parser.pm (#1025) 2016-06-06 09:20:56 +00:00
Clément Oudot
4d4d5aeb2b Remove warning 'Use of uninitialized value' when using zeroconf (#1030) 2016-06-06 09:09:29 +00:00
Xavier Guimard
5e080f90c9 Manager part of issuerDBGet seems to be finished (#1025) 2016-06-05 06:55:28 +00:00
Xavier Guimard
df1820c417 Working on issuerDBGet in manager (#1025) 2016-06-03 16:28:52 +00:00
Xavier Guimard
b9efa8cbf8 Use attribute or macro for issuerDBGetParameters (#LEMONLDAP=1025) 2016-06-03 16:02:58 +00:00
Xavier Guimard
e370416bc1 Add issuerDBGet parameters (#1025) 2016-06-03 11:34:14 +00:00
Xavier Guimard
354b841da8 Update notifications (#595) 2016-06-03 04:41:49 +00:00
Xavier Guimard
c1fb44a2b7 Many changes in notifications (#595) 2016-06-02 21:20:36 +00:00
Xavier Guimard
3894139c94 Enable tplParams() (#595) 2016-05-24 05:05:49 +00:00
Xavier Guimard
4cde65c825 Set default values for BrowserID parameters (#595) 2016-05-23 21:52:26 +00:00
Xavier Guimard
40acd8d0fb Fix SMTPServer test (closes: #1019) 2016-05-18 15:23:51 +00:00
Xavier Guimard
b394ba2523 Import r5060 (#1016) 2016-05-17 20:06:49 +00:00
Xavier Guimard
a39c45b46c Remove dbiUserChain, dbiUserPassword and dbiUserUser parameters 2016-05-16 07:08:02 +00:00
Xavier Guimard
71663c0f5a Data::Dumper update 2016-05-14 18:05:38 +00:00
Clément Oudot
085ac82587 Add ldapAllowResetExpiredPassword parameter in trunk Manager (#1011) 2016-05-11 13:12:17 +00:00
Xavier Guimard
39c6713aea Tidy 2016-04-29 07:27:26 +00:00
Xavier Guimard
f89152d225 #996 2016-04-21 20:19:20 +00:00
Xavier Guimard
b8181f2ecf Optimize some regexps 2016-04-14 16:55:36 +00:00
Xavier Guimard
371aa0c003 Split sendHtml() to be able to change HTML template params (#595) 2016-04-06 20:09:58 +00:00
Xavier Guimard
ce0f0d09c4 s/CAS_/CAS/ 2016-03-31 20:08:40 +00:00
Xavier Guimard
174b79be72 Typo 2016-03-28 12:31:46 +00:00
Xavier Guimard
5a04d1ff61 Import encrypt in header functions (closes: #983) 2016-03-23 12:55:09 +00:00
Xavier Guimard
ca61a9631d Store reverse tree (#575) 2016-03-22 20:48:30 +00:00
Xavier Guimard
25807a4a6a Diff tree is displayed (#575) 2016-03-22 05:56:42 +00:00
Xavier Guimard
cb9e3a3b1f Diff in progress (#575) 2016-03-21 17:52:52 +00:00
Xavier Guimard
431c3bedf6 Diff in progress (#575) 2016-03-21 17:52:50 +00:00
Xavier Guimard
974664d98c Diff page template (#575) 2016-03-21 17:52:48 +00:00
Xavier Guimard
180e97a4d8 Finish App list diff (#575) 2016-03-21 17:52:41 +00:00
Xavier Guimard
e00abeda33 App list diff in progress (#575) 2016-03-21 06:31:18 +00:00
Xavier Guimard
df44cc6c9d New REST method: diff between 2 confs (#575) 2016-03-20 09:07:33 +00:00
Xavier Guimard
292e919ec5 Partial revert of r4820^: only unused auth params are removed (#967) 2016-03-19 18:42:02 +00:00
Xavier Guimard
927fc64e1f Compact conf (may close #967) 2016-03-19 15:00:26 +00:00
Xavier Guimard
dc8b8a4d91 Store all issuer/auth parameters (#967) 2016-03-19 08:23:55 +00:00
Xavier Guimard
396755a97c Clean $authParameters constant 2016-03-18 17:56:59 +00:00
Xavier Guimard
32c0d51d4b Store authParams keys (#967) 2016-03-18 17:13:47 +00:00
Xavier Guimard
2d2edb61ac Merge experimental branch (#960)
Also update version to 2.0
2016-03-17 22:19:44 +00:00
Xavier Guimard
ac3ee4f6a2 Update attributes and macros test (#967) 2016-03-15 20:30:33 +00:00
Xavier Guimard
580d5a4bcc More translations in errors 2016-03-09 06:06:46 +00:00
Xavier Guimard
3dc93bd0aa keyMsgFail was missing (closes: #974) 2016-03-09 06:06:45 +00:00
Xavier Guimard
9cbbdda0b1 _timezone is a valid macro name (#967) 2016-03-08 18:06:40 +00:00
Xavier Guimard
57ac1c4a2e Add tests for exportedHeaders (closes: #972) 2016-03-08 12:38:13 +00:00
Xavier Guimard
5d4877ddc5 Replace error by warning on RSA keys (closes: #965) 2016-03-05 18:57:37 +00:00
Xavier Guimard
6f2dd4315e Partial revert of r4569 (closes: #962) 2016-03-03 20:59:22 +00:00
Xavier Guimard
7ac07074ae Update versions 2016-03-03 20:25:16 +00:00
Xavier Guimard
c3c77cbfd5 Forgotten keywords 2016-03-02 14:28:12 +00:00
Xavier Guimard
b80dd05a9a Replace 400 codes by 200 due to an angular bug (#952) 2016-02-26 07:14:45 +00:00
Xavier Guimard
cfeea8ec79 Typo in regexp (closes: #953) 2016-02-26 06:26:43 +00:00
Clément Oudot
c3346131a0 zimbraUrl and zimbraSsoUrl are not standard URLs (#943) 2016-02-25 10:38:36 +00:00
Xavier Guimard
d12a82f8f1 Repair lemonldap-ng-cli (closes: #921) 2016-02-25 08:40:25 +00:00
Clément Oudot
c713469cb6 Use a getIdentifier method to be able to purge a notification (#947) 2016-02-24 17:26:52 +00:00
Clément Oudot
3ff53e521e Better error reporting (#925) 2016-02-23 14:57:42 +00:00
Xavier Guimard
f338000e97 Change Ajax redirections (#820)
- redirections back to llApp.js
- portal is now a template param
- portal is now more downloaded at startup

Tests successful
2016-02-19 06:31:09 +00:00
Xavier Guimard
edc23aa511 Reduce LWP::UserAgent timeout (closes: #940) 2016-02-17 21:24:53 +00:00
Xavier Guimard
178cef3eee Include customFunctions in all Perl expr (#820) 2016-02-17 19:09:51 +00:00
Xavier Guimard
7653c2d3d3 Better test for customFunction (#820) 2016-02-17 18:40:36 +00:00
Xavier Guimard
1799b59c45 Manage logout rules (#820) 2016-02-17 17:28:33 +00:00
Xavier Guimard
45dfd72b0b Bad customFunctions test (Closes: #938) 2016-02-17 16:38:10 +00:00
Xavier Guimard
f4ed479a1c Bad regexp for uri 2016-02-17 14:31:30 +00:00
Xavier Guimard
aab84b0d6f make tidy 2016-02-17 10:12:19 +00:00
Xavier Guimard
365701ee49 New "post" storage (#733) 2016-02-13 12:31:01 +00:00
Xavier Guimard
8c1bd8efeb Avoid using each(): it tries to delete key 2016-02-13 10:06:48 +00:00
Xavier Guimard
b86a321aac Bad usage of userInfo() (#820) 2016-02-12 17:57:50 +00:00
Xavier Guimard
0f8fe7894f Rename router() to handler() in PSGI (#820) 2016-02-11 06:00:35 +00:00
Xavier Guimard
2f91261261 Typo 2016-02-09 22:17:48 +00:00
Xavier Guimard
f654aa6a23 Do not use cached configuration for manager 2016-02-09 22:17:46 +00:00
Xavier Guimard
cef5f5eb42 Better debug (#820) 2016-02-09 22:17:44 +00:00
Xavier Guimard
ae7febe69d Add extended functions in locationRules test (may close #924) 2016-02-09 22:17:42 +00:00
Xavier Guimard
27048b1670 More tests 2016-02-09 12:38:43 +00:00
Xavier Guimard
bb710cead0 Insert custom functions in locationRules test (#820) 2016-02-09 12:19:01 +00:00
Clément Oudot
444275b1ef Fix notifications dir in Zero Conf (#903) 2016-02-08 10:03:49 +00:00
Xavier Guimard
2de9bca842 Prepare new lemonldap-ng-cli 2016-02-06 09:00:54 +00:00
Xavier Guimard
c4137c1d3e Update parameters tests + add test (#583, Closes #LEMONLDAP-924) 2016-02-05 11:21:00 +00:00
Clément Oudot
4d6b6b547b Fix encoding of notifications (#928) 2016-02-05 10:29:11 +00:00
Xavier Guimard
cfb485828a reloadUrl keys may contain a port number 2016-02-04 18:07:47 +00:00
Xavier Guimard
44b1e63428 Recursive tests (for locationRules, todo later, #820) 2016-02-04 06:44:13 +00:00
Xavier Guimard
b854473362 Test keys and values for hash parameters (#820) 2016-02-03 21:54:53 +00:00
Xavier Guimard
769e6f19f9 Avoid circular references (#820) 2016-02-03 21:54:50 +00:00
Xavier Guimard
b59b728e6a Start hash parameters test (#820) 2016-02-03 21:30:32 +00:00
Xavier Guimard
7fc0e05371 Types wre not well copied (#820) 2016-02-03 21:30:30 +00:00
Clément Oudot
6773ef3474 Fix text on slaveMasterIP (#923) 2016-02-02 16:11:51 +00:00
Clément Oudot
499976b95f Use simple int form for timeoutActivity (#917) 2016-02-02 10:22:09 +00:00
Clément Oudot
607641dcfd Possibility to use certificate in SAML response (#836) 2016-02-01 16:42:15 +00:00
Xavier Guimard
c01a84fadd Move noAjaxHook in portal redirections 2016-02-01 10:18:37 +00:00
Xavier Guimard
b7a8cc63f4 Create Common::PSGI::Lib (#583) 2016-02-01 10:18:35 +00:00
Xavier Guimard
4f3a42ba48 Manage Ajax requests redirection with 401 (new parameter noAjaxHook) 2016-01-28 06:43:46 +00:00
Xavier Guimard
2568201eca Split Handler::PSGI in 2 : classic and router 2016-01-25 18:03:46 +00:00
Xavier Guimard
28d1450760 Chain init() instead of using 'around' 2016-01-25 05:54:55 +00:00
Xavier Guimard
7c676d8d99 make tidy 2016-01-22 16:53:41 +00:00
Xavier Guimard
5bef7284b3 Update copyright years 2016-01-21 21:15:19 +00:00
Xavier Guimard
b264f7635d Serialize SAML arrays (Closes: #885) 2016-01-21 20:27:49 +00:00
Clément Oudot
3d1a70ad0e Add default attributes for an RP (#892) 2016-01-21 17:17:44 +00:00
Clément Oudot
ee105c4ead Add default attributes for an OP (#892) 2016-01-21 17:17:43 +00:00
Clément Oudot
ac722bdbbf Do not set default value for prompt (#820) 2016-01-21 14:19:31 +00:00
Clément Oudot
5059d3720c Associate correct help page to OpenID Connect nodes (#895) 2016-01-21 13:50:25 +00:00
Xavier Guimard
2849b4b610 Exclude conftree.js from beautification 2016-01-21 12:15:38 +00:00
Xavier Guimard
598b9ac8d8 Beautify generated js 2016-01-21 12:10:12 +00:00
Xavier Guimard
77158b92f5 Attribute help was not displayed (#Closes: #895) 2016-01-21 06:02:02 +00:00
Xavier Guimard
d8273075bd Bugs in SAML/OIDC options (may close #885) 2016-01-20 20:56:06 +00:00
Clément Oudot
8b6a5b49ab Allow 'Content-Type: application/json; charset=utf-8' to retrieve OpenID Connect configuration (#885) 2016-01-20 13:14:30 +00:00
Clément Oudot
442ccd08f9 Add localSessionStorage parameters to ZeroConf (#903) 2016-01-20 10:32:30 +00:00
Xavier Guimard
4cfa1be559 Unminify conftree.js (#908) 2016-01-20 07:59:35 +00:00