* [FIX] Fixed broken component when showing complexity dialog

* [MOD] Updated PHPMailer
* [MOD] Improved LDAP username detection
* [MOD] Improved email messages when generating temporary master pass
This commit is contained in:
nuxsmin
2017-01-25 18:03:46 +01:00
parent 3c12a4e24d
commit 60aa38bd47
21 changed files with 2209 additions and 1438 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -199,7 +199,7 @@ abstract class LdapBase implements LdapInterface, AuthInterface
/**
* Realizar la autentificación con el servidor de LDAP.
*
* @param string $bindDn con el DN del usuario
* @param string $bindDn con el DN del usuario
* @param string $bindPass con la clave del usuario
* @throws SPException
* @return bool
@@ -463,7 +463,7 @@ abstract class LdapBase implements LdapInterface, AuthInterface
'groupmembership' => 'group',
'memberof' => 'group',
'displayname' => 'name',
'fullname' => 'name',
'fullname' => 'fullname',
'givenname' => 'name',
'sn' => 'sn',
'mail' => 'mail',
@@ -492,15 +492,20 @@ abstract class LdapBase implements LdapInterface, AuthInterface
$res[$validAttributes[$normalizedAttribute]] = $values;
} else {
// Almacenamos 1 solo valor
$res[$validAttributes[$normalizedAttribute]] = $values[0];
$res[$validAttributes[$normalizedAttribute]] = trim($values[0]);
}
}
}
}
}
if (!empty($res["fullname"])) {
$this->LdapAuthData->setName($res['fullname']);
} else {
$this->LdapAuthData->setName($res['name'] . ' ' . $res['sn']);
}
$this->LdapAuthData->setDn($searchResults[0]['dn']);
$this->LdapAuthData->setName(trim($res['name'] . ' ' . $res['sn']));
$this->LdapAuthData->setEmail($res['mail']);
$this->LdapAuthData->setExpire($res['expire']);
$this->LdapAuthData->setGroups($res['group']);

View File

@@ -38,6 +38,7 @@ use SP\Core\Messages\LogMessage;
use SP\Core\Messages\NoticeMessage;
use SP\Core\Session;
use SP\Core\XmlExport;
use SP\Html\Html;
use SP\Http\Request;
use SP\Import\Import;
use SP\Import\ImportParams;

View File

@@ -36,9 +36,9 @@ abstract class MessageBase implements MessageInterface
*/
protected $title;
/**
* @var string
* @var array
*/
protected $footer;
protected $footer = [];
/**
* @var array
*/
@@ -93,9 +93,9 @@ abstract class MessageBase implements MessageInterface
}
/**
* @param string $footer
* @param array $footer
*/
public function setFooter($footer)
public function setFooter(array $footer)
{
$this->footer = $footer;
}

View File

@@ -41,7 +41,7 @@ class NoticeMessage extends MessageBase
$message[] = '<div class="notice-message" style="font-family: Helvetica, Arial, sans-serif">';
$message[] = '<h3>' . $this->title . '</h3>';
$message[] = '<div class="notice-description">' . implode('<br>', $this->description) . '</div>';
$message[] = '<footer>' . $this->footer . '</footer>';
$message[] = '<footer>' . implode('<br>', $this->footer) . '</footer>';
$message[] = '</div>';
return implode('', $message);
@@ -54,10 +54,6 @@ class NoticeMessage extends MessageBase
*/
public function composeText()
{
$message[] = $this->title;
$message[] = implode(PHP_EOL, $this->description);
$message[] = $this->footer;
return implode(PHP_EOL, $message);
return $this->title . PHP_EOL . implode(PHP_EOL, $this->description) . PHP_EOL . implode(PHP_EOL, $this->footer);
}
}

View File

@@ -118,6 +118,7 @@ class Email
$Mail = new PHPMailer();
$Mail->SMTPAutoTLS = false;
$Mail->isSMTP();
$Mail->CharSet = 'utf-8';
$Mail->Host = $mailServer;
@@ -172,15 +173,19 @@ class Email
return false;
}
$Mail = self::getMailer($mailTo, $Message->getTitle());
$Mail->isHTML(true);
$Mail = self::getMailer(Config::getConfig()->getMailFrom(), $Message->getTitle());
$Mail->isHTML();
foreach ($mailTo as $recipient) {
$Mail->addBCC($recipient->user_email, $recipient->user_name);
}
$Mail->Body = $Message->composeHtml() . implode(Log::NEWLINE_HTML, self::getEmailFooter());
$Mail->AltBody = $Message->composeText() . implode(Log::NEWLINE_TXT, self::getEmailFooter());
if (empty($Message->getFooter())) {
$Message->setFooter(self::getEmailFooter());
}
$Mail->Body = $Message->composeHtml();
$Mail->AltBody = $Message->composeText();
$LogMessage = new LogMessage();
$LogMessage->setAction(__('Enviar Email', false));

View File

@@ -162,6 +162,7 @@ class UserUtil
LEFT JOIN usrToGroups ON usertogroup_userId = user_id
WHERE user_email IS NOT NULL
AND user_groupId = ? OR usertogroup_groupId = ?
AND user_isDisabled = 0
ORDER BY user_login';
$Data = new QueryData();
@@ -182,7 +183,7 @@ class UserUtil
$query = /** @lang SQL */
'SELECT user_id, user_login, user_name, user_email
FROM usrData
WHERE user_email IS NOT NULL
WHERE user_email IS NOT NULL AND user_isDisabled = 0
ORDER BY user_login';
$Data = new QueryData();

View File

@@ -344,6 +344,7 @@ class Util
$appinfo = [
'appname' => 'sysPass',
'appdesc' => 'Systems Password Manager',
'appalias' => 'SGC',
'appwebsite' => 'http://www.syspass.org',
'appblog' => 'http://www.cygnux.org',
'appdoc' => 'http://wiki.syspass.org',

View File

@@ -32,7 +32,8 @@
line-height: 1;
background-color: #607d8b;
color: #eceff1;
padding: .5em; }
padding: .5em;
text-align: center; }
.dialog-button-bar {
text-align: right;

View File

@@ -1,6 +1,6 @@
{
"version": 3,
"mappings": "AAEA;kBACmB;EACjB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,MAAM;EAChB,UAAU,EAAE,kBAAkB;EAC9B,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,CAAC;EACV,kBAAkB,EAAE,qBAAqB;EACzC,eAAe,EAAE,qBAAqB;EACtC,UAAU,EAAE,qBAAqB;;AAGnC,uBAAwB;EACtB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG;EACV,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,QAAQ;EAChB,OAAO,EAAE,KAAK;EACd,cAAc,EAAE,GAAG;;AAGrB,2BAA4B;EAC1B,OAAO,EAAE,KAAK;;AAGhB,wBAAyB;EACvB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,CAAC;EACd,gBAAgB,ECzBE,OAAO;ED0BzB,KAAK,EC3Ba,OAAO;ED4BzB,OAAO,EAAE,IAAI;;AAGf,kBAAmB;EACjB,UAAU,EAAE,KAAK;EACjB,UAAU,EAAE,GAAG;;AAGjB,wBAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,QAAQ;EAChB,OAAO,EAAE,KAAK;;AAGhB,8BAA+B;EAC7B,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI",
"mappings": "AAEA;kBACmB;EACjB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,MAAM;EAChB,UAAU,EAAE,kBAAkB;EAC9B,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,CAAC;EACV,kBAAkB,EAAE,qBAAqB;EACzC,eAAe,EAAE,qBAAqB;EACtC,UAAU,EAAE,qBAAqB;;AAGnC,uBAAwB;EACtB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG;EACV,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,QAAQ;EAChB,OAAO,EAAE,KAAK;EACd,cAAc,EAAE,GAAG;;AAGrB,2BAA4B;EAC1B,OAAO,EAAE,KAAK;;AAGhB,wBAAyB;EACvB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,CAAC;EACd,gBAAgB,ECzBE,OAAO;ED0BzB,KAAK,EC3Ba,OAAO;ED4BzB,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,MAAM;;AAGpB,kBAAmB;EACjB,UAAU,EAAE,KAAK;EACjB,UAAU,EAAE,GAAG;;AAGjB,wBAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,QAAQ;EAChB,OAAO,EAAE,KAAK;;AAGhB,8BAA+B;EAC7B,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI",
"sources": ["mdl-jquery-modal-dialog.scss","_base.scss"],
"names": [],
"file": "mdl-jquery-modal-dialog.css"

View File

@@ -1 +1 @@
.dialog-container,.loading-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:scroll;background:rgba(0,0,0,0.4);z-index:9999;opacity:0;-webkit-transition:opacity 400ms ease-in;-moz-transition:opacity 400ms ease-in;transition:opacity 400ms ease-in}.dialog-container>div{position:relative;width:90%;max-width:500px;min-height:25px;margin:10% auto;z-index:99999;padding-bottom:1em}.dialog-container>div>*{padding:0 1em}.dialog-container header{font-size:20px;font-weight:500;letter-spacing:.02em;line-height:1;background-color:#607d8b;color:#eceff1;padding:.5em}.dialog-button-bar{text-align:right;margin-top:8px}.loading-container>div{position:relative;width:50px;height:50px;margin:10% auto;z-index:99999}.loading-container>div>div{width:100%;height:100%}
.dialog-container,.loading-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:scroll;background:rgba(0,0,0,0.4);z-index:9999;opacity:0;-webkit-transition:opacity 400ms ease-in;-moz-transition:opacity 400ms ease-in;transition:opacity 400ms ease-in}.dialog-container>div{position:relative;width:90%;max-width:500px;min-height:25px;margin:10% auto;z-index:99999;padding-bottom:1em}.dialog-container>div>*{padding:0 1em}.dialog-container header{font-size:20px;font-weight:500;letter-spacing:.02em;line-height:1;background-color:#607d8b;color:#eceff1;padding:.5em;text-align:center}.dialog-button-bar{text-align:right;margin-top:8px}.loading-container>div{position:relative;width:50px;height:50px;margin:10% auto;z-index:99999}.loading-container>div>div{width:100%;height:100%}

View File

@@ -38,6 +38,7 @@
background-color: $color-bluegrey-fg;
color: $color-bluegrey-bg;
padding: .5em;
text-align: center;
}
.dialog-button-bar {

View File

@@ -572,6 +572,11 @@ pre, code, samp, kbd {
text-align: justify;
line-height: 2em; }
#box-complexity > div {
text-align: justify;
line-height: 1.5em;
margin-top: 1em; }
#debug {
float: left;
text-align: left; }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -597,6 +597,14 @@
}
}
#box-complexity {
& > div {
text-align: justify;
line-height: 1.5em;
margin-top: 1em;
}
}
#debug {
float: left;
text-align: left;

View File

@@ -128,63 +128,53 @@ sysPass.Theme = function (Common) {
};
// FIXME
// Diálogo de configuración de complejidad de clave
var complexityDialog = function () {
$("<div></div>").dialog({
modal: true,
var content =
"<div id=\"box-complexity\"><div>" +
"<label class=\"mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect\" for=\"checkbox-numbers\">" +
"<input type=\"checkbox\" id=\"checkbox-numbers\" class=\"mdl-checkbox__input\" name=\"checkbox-numbers\" checked/>" +
"<span class=\"mdl-checkbox__label\">" + Common.config().LANG[35] + "</span>" +
"</label>" +
"<label class=\"mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect\" for=\"checkbox-uppercase\">" +
"<input type=\"checkbox\" id=\"checkbox-uppercase\" class=\"mdl-checkbox__input\" name=\"checkbox-uppercase\"/>" +
"<span class=\"mdl-checkbox__label\">" + Common.config().LANG[36] + "</span>" +
"</label>" +
"<label class=\"mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect\" for=\"checkbox-symbols\">" +
"<input type=\"checkbox\" id=\"checkbox-symbols\" class=\"mdl-checkbox__input\" name=\"checkbox-symbols\"/>" +
"<span class=\"mdl-checkbox__label\">" + Common.config().LANG[37] + "</span>" +
"</label>" +
"<div class=\"mdl-textfield mdl-js-textfield textfield-passlength\">" +
"<input class=\"mdl-textfield__input\" type=\"number\" pattern=\"[0-9]*\" id=\"passlength\" />" +
"<label class=\"mdl-textfield__label\" for=\"passlength\">" + Common.config().LANG[38] + "</label>" +
"</div></div></div>";
showDialog({
title: Common.config().LANG[29],
width: "400px",
open: function () {
var thisDialog = $(this);
var content =
"<label class=\"mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect\" for=\"checkbox-numbers\">" +
"<input type=\"checkbox\" id=\"checkbox-numbers\" class=\"mdl-checkbox__input\" name=\"checkbox-numbers\"/>" +
"<span class=\"mdl-checkbox__label\">" + Common.config().LANG[35] + "</span>" +
"</label>" +
"<label class=\"mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect\" for=\"checkbox-uppercase\">" +
"<input type=\"checkbox\" id=\"checkbox-uppercase\" class=\"mdl-checkbox__input\" name=\"checkbox-uppercase\"/>" +
"<span class=\"mdl-checkbox__label\">" + Common.config().LANG[36] + "</span>" +
"</label>" +
"<label class=\"mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect\" for=\"checkbox-symbols\">" +
"<input type=\"checkbox\" id=\"checkbox-symbols\" class=\"mdl-checkbox__input\" name=\"checkbox-symbols\"/>" +
"<span class=\"mdl-checkbox__label\">" + Common.config().LANG[37] + "</span>" +
"</label>" +
"<div class=\"mdl-textfield mdl-js-textfield textfield-passlength\">" +
"<input class=\"mdl-textfield__input\" type=\"number\" pattern=\"[0-9]*\" id=\"passlength\" />" +
"<label class=\"mdl-textfield__label\" for=\"passlength\">" + Common.config().LANG[38] + "</label>" +
"</div>" +
"<button id=\"btn-complexity\" class=\"mdl-button mdl-js-button mdl-button--raised\">Ok</button>";
thisDialog.html(content);
// Recentrar después de insertar el contenido
thisDialog.dialog("option", "position", "center");
// Actualizar componentes de MDL
thisDialog.ready(function () {
$("#checkbox-numbers").prop("checked", Common.passwordData.complexity.numbers);
$("#checkbox-uppercase").prop("checked", Common.passwordData.complexity.uppercase);
$("#checkbox-symbols").prop("checked", Common.passwordData.complexity.symbols);
$("#passlength").val(Common.passwordData.complexity.numlength);
$("#btn-complexity").click(function () {
Common.passwordData.complexity.numbers = $(" #checkbox-numbers").is(":checked");
Common.passwordData.complexity.uppercase = $("#checkbox-uppercase").is(":checked");
Common.passwordData.complexity.symbols = $("#checkbox-symbols").is(":checked");
Common.passwordData.complexity.numlength = parseInt($("#passlength").val());
thisDialog.dialog("close");
});
// Actualizar objetos de MDL
componentHandler.upgradeDom();
});
text: content,
negative: {
title: Common.config().LANG[44]
},
// Forzar la eliminación del objeto para que ZeroClipboard siga funcionando al abrirlo de nuevo
close: function () {
$(this).dialog("destroy");
positive: {
title: Common.config().LANG[43],
onClick: function (e) {
e.preventDefault();
Common.passwordData.complexity.numbers = $("#checkbox-numbers").is(":checked");
Common.passwordData.complexity.uppercase = $("#checkbox-uppercase").is(":checked");
Common.passwordData.complexity.symbols = $("#checkbox-symbols").is(":checked");
Common.passwordData.complexity.numlength = parseInt($("#passlength").val());
}
},
cancelable: true,
contentStyle: {'max-width': '300px'},
onLoaded: function () {
$("#checkbox-numbers").prop("checked", Common.passwordData.complexity.numbers);
$("#checkbox-uppercase").prop("checked", Common.passwordData.complexity.uppercase);
$("#checkbox-symbols").prop("checked", Common.passwordData.complexity.symbols);
$("#passlength").val(Common.passwordData.complexity.numlength);
}
});
};

View File

@@ -1,18 +1,18 @@
var $jscomp={scope:{},findInternal:function(a,f,c){a instanceof String&&(a=String(a));for(var g=a.length,k=0;k<g;k++){var m=a[k];if(f.call(c,m,k,a))return{i:k,v:m}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[f]=c.value)};
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,f,c,g){if(f){c=$jscomp.global;a=a.split(".");for(g=0;g<a.length-1;g++){var k=a[g];k in c||(c[k]={});c=c[k]}a=a[a.length-1];g=c[a];f=f(g);f!=g&&null!=f&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:f})}};
var $jscomp={scope:{},findInternal:function(a,f,c){a instanceof String&&(a=String(a));for(var h=a.length,k=0;k<h;k++){var m=a[k];if(f.call(c,m,k,a))return{i:k,v:m}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[f]=c.value)};
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,f,c,h){if(f){c=$jscomp.global;a=a.split(".");for(h=0;h<a.length-1;h++){var k=a[h];k in c||(c[k]={});c=c[k]}a=a[a.length-1];h=c[a];f=f(h);f!=h&&null!=f&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:f})}};
$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},"es6-impl","es3");
sysPass.Theme=function(a){var f=a.log,c={elems:{$wrap:$("#wrap-loading"),$loading:$("#loading")},show:function(a){void 0!==a&&!0===a&&c.elems.$wrap.addClass("overlay-full");c.elems.$wrap.show();c.elems.$loading.addClass("is-active")},hide:function(){c.elems.$wrap.removeClass("overlay-full").hide();c.elems.$loading.removeClass("is-active")},upgradeFull:function(){c.elems.$wrap.addClass("overlay-full")}},g=function(b){for(var l=0,d="",e;l<a.passwordData.complexity.numlength;)e=Math.floor(100*Math.random())%
94+33,!a.passwordData.complexity.symbols&&(33<=e&&47>=e||58<=e&&64>=e||91<=e&&96>=e||123<=e&&126>=e)||!a.passwordData.complexity.numbers&&48<=e&&57>=e||!a.passwordData.complexity.uppercase&&65<=e&&90>=e||(l++,d+=String.fromCharCode(e));$("#viewPass").attr("title",d);var c=zxcvbn(d);a.passwordData.passLength=d.length;b?(l=b.parent(),e=$("#"+b.attr("id")+"R"),a.outputResult(c,b),b=new MaterialTextfield,l.find("input:password").val(d),l.addClass(b.CssClasses_.IS_DIRTY).removeClass(b.CssClasses_.IS_INVALID),
e.val(d).parent().addClass(b.CssClasses_.IS_DIRTY).removeClass(b.CssClasses_.IS_INVALID),a.encryptFormValue(e),l.find("#passLevel").show(500)):(a.outputResult(c),$("input:password, input.password").val(d),$("#passLevel").show(500))},k=function(){$("<div></div>").dialog({modal:!0,title:a.config().LANG[29],width:"400px",open:function(){var b=$(this),l='<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox-numbers"><input type="checkbox" id="checkbox-numbers" class="mdl-checkbox__input" name="checkbox-numbers"/><span class="mdl-checkbox__label">'+
sysPass.Theme=function(a){var f=a.log,c={elems:{$wrap:$("#wrap-loading"),$loading:$("#loading")},show:function(a){void 0!==a&&!0===a&&c.elems.$wrap.addClass("overlay-full");c.elems.$wrap.show();c.elems.$loading.addClass("is-active")},hide:function(){c.elems.$wrap.removeClass("overlay-full").hide();c.elems.$loading.removeClass("is-active")},upgradeFull:function(){c.elems.$wrap.addClass("overlay-full")}},h=function(b){for(var e=0,g="",d;e<a.passwordData.complexity.numlength;)d=Math.floor(100*Math.random())%
94+33,!a.passwordData.complexity.symbols&&(33<=d&&47>=d||58<=d&&64>=d||91<=d&&96>=d||123<=d&&126>=d)||!a.passwordData.complexity.numbers&&48<=d&&57>=d||!a.passwordData.complexity.uppercase&&65<=d&&90>=d||(e++,g+=String.fromCharCode(d));$("#viewPass").attr("title",g);var c=zxcvbn(g);a.passwordData.passLength=g.length;b?(e=b.parent(),d=$("#"+b.attr("id")+"R"),a.outputResult(c,b),b=new MaterialTextfield,e.find("input:password").val(g),e.addClass(b.CssClasses_.IS_DIRTY).removeClass(b.CssClasses_.IS_INVALID),
d.val(g).parent().addClass(b.CssClasses_.IS_DIRTY).removeClass(b.CssClasses_.IS_INVALID),a.encryptFormValue(d),e.find("#passLevel").show(500)):(a.outputResult(c),$("input:password, input.password").val(g),$("#passLevel").show(500))},k=function(){var b='<div id="box-complexity"><div><label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox-numbers"><input type="checkbox" id="checkbox-numbers" class="mdl-checkbox__input" name="checkbox-numbers" checked/><span class="mdl-checkbox__label">'+
a.config().LANG[35]+'</span></label><label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox-uppercase"><input type="checkbox" id="checkbox-uppercase" class="mdl-checkbox__input" name="checkbox-uppercase"/><span class="mdl-checkbox__label">'+a.config().LANG[36]+'</span></label><label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox-symbols"><input type="checkbox" id="checkbox-symbols" class="mdl-checkbox__input" name="checkbox-symbols"/><span class="mdl-checkbox__label">'+
a.config().LANG[37]+'</span></label><div class="mdl-textfield mdl-js-textfield textfield-passlength"><input class="mdl-textfield__input" type="number" pattern="[0-9]*" id="passlength" /><label class="mdl-textfield__label" for="passlength">'+a.config().LANG[38]+'</label></div><button id="btn-complexity" class="mdl-button mdl-js-button mdl-button--raised">Ok</button>';b.html(l);b.dialog("option","position","center");b.ready(function(){$("#checkbox-numbers").prop("checked",a.passwordData.complexity.numbers);
$("#checkbox-uppercase").prop("checked",a.passwordData.complexity.uppercase);$("#checkbox-symbols").prop("checked",a.passwordData.complexity.symbols);$("#passlength").val(a.passwordData.complexity.numlength);$("#btn-complexity").click(function(){a.passwordData.complexity.numbers=$(" #checkbox-numbers").is(":checked");a.passwordData.complexity.uppercase=$("#checkbox-uppercase").is(":checked");a.passwordData.complexity.symbols=$("#checkbox-symbols").is(":checked");a.passwordData.complexity.numlength=
parseInt($("#passlength").val());b.dialog("close")});componentHandler.upgradeDom()})},close:function(){$(this).dialog("destroy")}})},m=function(b){b.find(".passwordfield__input").each(function(){var b=$(this);if("true"!==b.attr("data-pass-upgraded")){var d=b.parent(),e=b.attr("id"),c=$("#"+e+"R"),h='<button id="menu-speed-'+e+'" class="mdl-button mdl-js-button mdl-button--icon" type="button" title="'+a.config().LANG[27]+'"><i class="material-icons">more_vert</i></button>',h=h+('<ul class="mdl-menu mdl-js-menu" for="menu-speed-'+
e+'">')+('<li class="mdl-menu__item passGen"><i class="material-icons">settings</i>'+a.config().LANG[28]+"</li>"),h=h+('<li class="mdl-menu__item passComplexity"><i class="material-icons">vpn_key</i>'+a.config().LANG[29]+"</li>"),h=h+('<li class="mdl-menu__item reset"><i class="material-icons">refresh</i>'+a.config().LANG[30]+"</li>");d.after('<div class="password-actions" />');d.next(".password-actions").prepend('<span class="passLevel passLevel-'+e+' fullround" title="'+a.config().LANG[31]+'"></span>').prepend('<i class="showpass material-icons" title="'+
a.config().LANG[32]+'">remove_red_eye</i>').prepend(h);b.on("keyup",function(){a.checkPassLevel(b)});d=b.parent().next();d.find(".passGen").on("click",function(){g(b);b.focus()});d.find(".passComplexity").on("click",function(){k()});d.find(".showpass").on("mouseover",function(){$(this).attr("title",b.val())});d.find(".reset").on("click",function(){b.val("");c.val("");componentHandler.upgradeDom()});b.attr("data-pass-upgraded","true")}});b.find(".passwordfield__input-show").each(function(){var b=$(this),
d=$('<i class="showpass material-icons" title="'+a.config().LANG[32]+'" data-targetid="'+b.attr("id")+'">remove_red_eye</i>');b.parent().after(d);d.on("mouseover",function(){d.attr("title",b.val())})})},n=function(b){f.info("setupDatePicker");var c={format:"YYYY-MM-DD",lang:a.config().LOCALE.substr(0,2),time:!1,cancelText:a.config().LANG[44],okText:a.config().LANG[43],clearText:a.config().LANG[30],nowText:a.config().LANG[56],minDate:new Date,triggerEvent:"dateIconClick"},d=function(b){f.info(moment.tz("UTC"));
f.info(a.config().TIMEZONE);return moment(b).tz(a.config().TIMEZONE).format("X")};b.find(".password-datefield__input").each(function(){var a=$(this);a.bootstrapMaterialDatePicker(c);a.parent().append("<input type='hidden' name='passworddatechange_unix' value='"+d(a.val())+"' />");a.parent().next("i").on("click",function(){a.trigger("dateIconClick")});a.on("change",function(){var b;b=d(a.val());a.parent().find("input[name='passworddatechange_unix']").val(b)})})};return{passwordDetect:m,password:g,
viewsTriggers:{search:function(){var b=$("#frmSearch"),c=$("#res-content");b.find(".icon-searchfav").on("click",function(){var h=$(this).find("i"),c=b.find("input[name='searchfav']");0==c.val()?(h.addClass("mdl-color-text--amber-A200"),h.attr("title",a.config().LANG[53]),c.val(1)):(h.removeClass("mdl-color-text--amber-A200"),h.attr("title",a.config().LANG[52]),c.val(0));b.submit()});var d=b.find("#tags")[0],e=b.find(".search-filters-tags"),f=b.find("i.show-filter");c.on("click","#data-search-header .sort-down,#data-search-header .sort-up",
function(){var b=$(this);b.parent().find("a").addClass("filterOn");a.appActions().account.sort(b)}).on("click","#search-rows i.icon-favorite",function(){var b=$(this);a.appActions().account.savefavorite(b,function(){"on"===b.data("status")?(b.addClass("mdl-color-text--amber-A100"),b.attr("title",a.config().LANG[50]),b.html("star")):(b.removeClass("mdl-color-text--amber-A100"),b.attr("title",a.config().LANG[49]),b.html("star_border"))})}).on("click","#search-rows span.tag",function(){e.is(":hidden")&&
f.trigger("click");d.selectize.addItem($(this).data("tag-id"))});f.on("click",function(){var a=$(this);e.is(":hidden")?(e.slideDown("slow"),a.html(a.data("icon-up"))):(e.slideUp("slow"),a.html(a.data("icon-down")))});0<d.selectedOptions.length&&f.trigger("click")},common:function(a){m(a);n(a)}},loading:c,ajax:{complete:function(){f.info("ajax:complete");componentHandler.upgradeDom()}},html:{getList:function(a){var b=$('<ul class="ldap-list-item mdl-list"></ul>'),c=$('<li class="mdl-list__item"></li>'),
e=$('<span class="mdl-list__item-primary-content"></span>');a.forEach(function(a){var d=e.clone();d.append('<i class="material-icons mdl-list__item-icon">person</i>');d.append(a);a=c.clone().append(d);b.append(a)});return b},tabs:{add:function(a,c,d,e){a=$(a);var b="";1===e&&(a.parent().find("#tabs-"+c).addClass("is-active"),b="is-active");a.append('<a href="#tabs-'+c+'" class="mdl-tabs__tab '+b+'">'+d+"</a>")}}}}};
a.config().LANG[37]+'</span></label><div class="mdl-textfield mdl-js-textfield textfield-passlength"><input class="mdl-textfield__input" type="number" pattern="[0-9]*" id="passlength" /><label class="mdl-textfield__label" for="passlength">'+a.config().LANG[38]+"</label></div></div></div>";showDialog({title:a.config().LANG[29],text:b,negative:{title:a.config().LANG[44]},positive:{title:a.config().LANG[43],onClick:function(e){e.preventDefault();a.passwordData.complexity.numbers=$("#checkbox-numbers").is(":checked");
a.passwordData.complexity.uppercase=$("#checkbox-uppercase").is(":checked");a.passwordData.complexity.symbols=$("#checkbox-symbols").is(":checked");a.passwordData.complexity.numlength=parseInt($("#passlength").val())}},cancelable:!0,contentStyle:{"max-width":"300px"},onLoaded:function(){$("#checkbox-numbers").prop("checked",a.passwordData.complexity.numbers);$("#checkbox-uppercase").prop("checked",a.passwordData.complexity.uppercase);$("#checkbox-symbols").prop("checked",a.passwordData.complexity.symbols);
$("#passlength").val(a.passwordData.complexity.numlength)}})},m=function(b){b.find(".passwordfield__input").each(function(){var e=$(this);if("true"!==e.attr("data-pass-upgraded")){var b=e.parent(),d=e.attr("id"),c=$("#"+d+"R"),l='<button id="menu-speed-'+d+'" class="mdl-button mdl-js-button mdl-button--icon" type="button" title="'+a.config().LANG[27]+'"><i class="material-icons">more_vert</i></button>',l=l+('<ul class="mdl-menu mdl-js-menu" for="menu-speed-'+d+'">')+('<li class="mdl-menu__item passGen"><i class="material-icons">settings</i>'+
a.config().LANG[28]+"</li>"),l=l+('<li class="mdl-menu__item passComplexity"><i class="material-icons">vpn_key</i>'+a.config().LANG[29]+"</li>"),l=l+('<li class="mdl-menu__item reset"><i class="material-icons">refresh</i>'+a.config().LANG[30]+"</li>");b.after('<div class="password-actions" />');b.next(".password-actions").prepend('<span class="passLevel passLevel-'+d+' fullround" title="'+a.config().LANG[31]+'"></span>').prepend('<i class="showpass material-icons" title="'+a.config().LANG[32]+'">remove_red_eye</i>').prepend(l);
e.on("keyup",function(){a.checkPassLevel(e)});b=e.parent().next();b.find(".passGen").on("click",function(){h(e);e.focus()});b.find(".passComplexity").on("click",function(){k()});b.find(".showpass").on("mouseover",function(){$(this).attr("title",e.val())});b.find(".reset").on("click",function(){e.val("");c.val("");componentHandler.upgradeDom()});e.attr("data-pass-upgraded","true")}});b.find(".passwordfield__input-show").each(function(){var b=$(this),c=$('<i class="showpass material-icons" title="'+
a.config().LANG[32]+'" data-targetid="'+b.attr("id")+'">remove_red_eye</i>');b.parent().after(c);c.on("mouseover",function(){c.attr("title",b.val())})})},n=function(b){f.info("setupDatePicker");var c={format:"YYYY-MM-DD",lang:a.config().LOCALE.substr(0,2),time:!1,cancelText:a.config().LANG[44],okText:a.config().LANG[43],clearText:a.config().LANG[30],nowText:a.config().LANG[56],minDate:new Date,triggerEvent:"dateIconClick"},g=function(b){f.info(moment.tz("UTC"));f.info(a.config().TIMEZONE);return moment(b).tz(a.config().TIMEZONE).format("X")};
b.find(".password-datefield__input").each(function(){var a=$(this);a.bootstrapMaterialDatePicker(c);a.parent().append("<input type='hidden' name='passworddatechange_unix' value='"+g(a.val())+"' />");a.parent().next("i").on("click",function(){a.trigger("dateIconClick")});a.on("change",function(){var b;b=g(a.val());a.parent().find("input[name='passworddatechange_unix']").val(b)})})};return{passwordDetect:m,password:h,viewsTriggers:{search:function(){var b=$("#frmSearch"),c=$("#res-content");b.find(".icon-searchfav").on("click",
function(){var c=$(this).find("i"),d=b.find("input[name='searchfav']");0==d.val()?(c.addClass("mdl-color-text--amber-A200"),c.attr("title",a.config().LANG[53]),d.val(1)):(c.removeClass("mdl-color-text--amber-A200"),c.attr("title",a.config().LANG[52]),d.val(0));b.submit()});var g=b.find("#tags")[0],d=b.find(".search-filters-tags"),f=b.find("i.show-filter");c.on("click","#data-search-header .sort-down,#data-search-header .sort-up",function(){var b=$(this);b.parent().find("a").addClass("filterOn");a.appActions().account.sort(b)}).on("click",
"#search-rows i.icon-favorite",function(){var b=$(this);a.appActions().account.savefavorite(b,function(){"on"===b.data("status")?(b.addClass("mdl-color-text--amber-A100"),b.attr("title",a.config().LANG[50]),b.html("star")):(b.removeClass("mdl-color-text--amber-A100"),b.attr("title",a.config().LANG[49]),b.html("star_border"))})}).on("click","#search-rows span.tag",function(){d.is(":hidden")&&f.trigger("click");g.selectize.addItem($(this).data("tag-id"))});f.on("click",function(){var a=$(this);d.is(":hidden")?
(d.slideDown("slow"),a.html(a.data("icon-up"))):(d.slideUp("slow"),a.html(a.data("icon-down")))});0<g.selectedOptions.length&&f.trigger("click")},common:function(a){m(a);n(a)}},loading:c,ajax:{complete:function(){f.info("ajax:complete");componentHandler.upgradeDom()}},html:{getList:function(a){var b=$('<ul class="ldap-list-item mdl-list"></ul>'),c=$('<li class="mdl-list__item"></li>'),d=$('<span class="mdl-list__item-primary-content"></span>');a.forEach(function(a){var e=d.clone();e.append('<i class="material-icons mdl-list__item-icon">person</i>');
e.append(a);a=c.clone().append(e);b.append(a)});return b},tabs:{add:function(a,c,f,d){a=$(a);var b="";1===d&&(a.parent().find("#tabs-"+c).addClass("is-active"),b="is-active");a.append('<a href="#tabs-'+c+'" class="mdl-tabs__tab '+b+'">'+f+"</a>")}}}}};

View File

@@ -44,7 +44,7 @@ function showDialog(options) {
$('<header>' + options.title + '</header>').appendTo(content);
}
if (options.text != null) {
$('<p>' + options.text + '</p>').appendTo(content);
$(options.text).appendTo(content);
}
if (options.neutral || options.negative || options.positive) {
var buttonBar = $('<div class="mdl-card__actions dialog-button-bar"></div>');
@@ -92,7 +92,7 @@ function showDialog(options) {
}
buttonBar.appendTo(content);
}
componentHandler.upgradeDom();
if (options.cancelable) {
dialog.click(function () {
hideDialog(dialog);
@@ -106,9 +106,12 @@ function showDialog(options) {
});
}
setTimeout(function () {
dialog.css({opacity: 1});
if (options.onLoaded)
if (options.onLoaded) {
options.onLoaded();
}
componentHandler.upgradeDom();
dialog.css({opacity: 1});
}, 1);
}

View File

@@ -1,9 +1,9 @@
var $jscomp={scope:{},findInternal:function(a,c,b){a instanceof String&&(a=String(a));for(var e=a.length,d=0;d<e;d++){var f=a[d];if(c.call(b,f,d,a))return{i:d,v:f}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,b){if(b.get||b.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[c]=b.value)};
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,c,b,e){if(c){b=$jscomp.global;a=a.split(".");for(e=0;e<a.length-1;e++){var d=a[e];d in b||(b[d]={});b=b[d]}a=a[a.length-1];e=b[a];c=c(e);c!=e&&null!=c&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:c})}};
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,c,b,e){if(c){b=$jscomp.global;a=a.split(".");for(e=0;e<a.length-1;e++){var d=a[e];d in b||(b[d]={});b=b[d]}a=a[a.length-1];e=b[a];c=c(e);c!=e&&null!=c&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:c})}};
$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6-impl","es3");function showLoading(){$(".loading-container").remove();$('<div id="orrsLoader" class="loading-container"><div><div class="mdl-spinner mdl-js-spinner is-active"></div></div></div>').appendTo("body");componentHandler.upgradeElements($(".mdl-spinner").get());setTimeout(function(){$("#orrsLoader").css({opacity:1})},1)}
function hideLoading(){$("#orrsLoader").css({opacity:0});setTimeout(function(){$("#orrsLoader").remove()},400)}
function showDialog(a){a=$.extend({id:"orrsDiag",title:null,text:null,neutral:!1,negative:!1,positive:!1,cancelable:!0,contentStyle:null,onLoaded:!1,hideOther:!0},a);a.hideOther&&($(".dialog-container").remove(),$(document).unbind("keyup.dialog"));$('<div id="'+a.id+'" class="dialog-container"><div class="mdl-card mdl-shadow--16dp" id="'+a.id+'_content"></div></div>').appendTo("body");var c=$("#"+a.id),b=c.find(".mdl-card");null!=a.contentStyle&&b.css(a.contentStyle);null!=a.title&&$("<header>"+a.title+
"</header>").appendTo(b);null!=a.text&&$("<p>"+a.text+"</p>").appendTo(b);if(a.neutral||a.negative||a.positive){var e=$('<div class="mdl-card__actions dialog-button-bar"></div>');if(a.neutral){a.neutral=$.extend({id:"neutral",title:"Neutral",onClick:null},a.neutral);var d=$('<button class="mdl-button mdl-js-button mdl-js-ripple-effect" id="'+a.neutral.id+'">'+a.neutral.title+"</button>");d.click(function(b){b.preventDefault();null!=a.neutral.onClick&&a.neutral.onClick(b)||hideDialog(c)});d.appendTo(e)}a.negative&&
"</header>").appendTo(b);null!=a.text&&$(a.text).appendTo(b);if(a.neutral||a.negative||a.positive){var e=$('<div class="mdl-card__actions dialog-button-bar"></div>');if(a.neutral){a.neutral=$.extend({id:"neutral",title:"Neutral",onClick:null},a.neutral);var d=$('<button class="mdl-button mdl-js-button mdl-js-ripple-effect" id="'+a.neutral.id+'">'+a.neutral.title+"</button>");d.click(function(b){b.preventDefault();null!=a.neutral.onClick&&a.neutral.onClick(b)||hideDialog(c)});d.appendTo(e)}a.negative&&
(a.negative=$.extend({id:"negative",title:"Cancel",onClick:null},a.negative),d=$('<button class="mdl-button mdl-js-button mdl-js-ripple-effect" id="'+a.negative.id+'">'+a.negative.title+"</button>"),d.click(function(b){b.preventDefault();null!=a.negative.onClick&&a.negative.onClick(b)||hideDialog(c)}),d.appendTo(e));a.positive&&(a.positive=$.extend({id:"positive",title:"OK",onClick:null},a.positive),d=$('<button class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect" id="'+a.positive.id+
'">'+a.positive.title+"</button>"),d.click(function(b){b.preventDefault();null!=a.positive.onClick&&a.positive.onClick(b)||hideDialog(c)}),d.appendTo(e));e.appendTo(b)}componentHandler.upgradeDom();a.cancelable&&(c.click(function(){hideDialog(c)}),$(document).bind("keyup.dialog",function(a){27==a.which&&hideDialog(c)}),b.click(function(a){a.stopPropagation()}));setTimeout(function(){c.css({opacity:1});if(a.onLoaded)a.onLoaded()},1)}
'">'+a.positive.title+"</button>"),d.click(function(b){b.preventDefault();null!=a.positive.onClick&&a.positive.onClick(b)||hideDialog(c)}),d.appendTo(e));e.appendTo(b)}a.cancelable&&(c.click(function(){hideDialog(c)}),$(document).bind("keyup.dialog",function(a){27==a.which&&hideDialog(c)}),b.click(function(a){a.stopPropagation()}));setTimeout(function(){if(a.onLoaded)a.onLoaded();componentHandler.upgradeDom();c.css({opacity:1})},1)}
function hideDialog(a){$(document).unbind("keyup.dialog");a.css({opacity:0});setTimeout(function(){a.remove()},400)};