Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* ________________________________________ | GarudaCBT ..
Decoded Output download
<?php
/* ________________________________________
| GarudaCBT |
| https://github.com/garudacbt/cbt |
|________________________________________|
*/
defined("BASEPATH") or
exit(
"No direct script access allowed"
);
class Ion_auth_model extends CI_Model
{
const MAX_COOKIE_LIFETIME = 63072000;
const MAX_PASSWORD_SIZE_BYTES = 4096;
public $tables = [];
public $activation_code;
public $new_password;
public $identity;
public $_ion_where = [];
public $_ion_select = [];
public $_ion_like = [];
public $_ion_limit = null;
public $_ion_offset = null;
public $_ion_order_by = null;
public $_ion_order = null;
protected $_ion_hooks;
protected $response = null;
protected $messages;
protected $errors;
protected $error_start_delimiter;
protected $error_end_delimiter;
public $_cache_user_in_group = [];
protected $_cache_groups = [];
protected $db;
private $identity_column;
private $join;
private $hash_method;
private $message_start_delimiter;
private $message_end_delimiter;
public function __construct()
{
goto YMT81;
T0oJX:
KHmMf:
goto TIQeh;
f1Z0y:
$this->error_start_delimiter = $error_prefix->getValue(
$this->form_validation
);
goto nsQbv;
H8ckW:
sMp9x:
goto nSN3_;
WMbPc:
$this->identity_column = $this->config->item(
"identity",
"ion_auth"
);
goto hU8E3;
LZ_Fg:
goto H9wzw;
goto T0oJX;
Vpkff:
$this->message_end_delimiter = $this->error_end_delimiter;
goto LNct1;
Nw2bv:
$this->messages = [];
goto HudFR;
MIRbC:
$error_prefix = $form_validation_class->getProperty(
"_error_prefix"
);
goto GOURm;
t4qGA:
$this->tables = $this->config->item(
"tables",
"ion_auth"
);
goto WMbPc;
YMT81:
$this->config->load("ion_auth", true);
goto w49O8;
gkqp3:
$this->error_end_delimiter = $error_suffix->getValue(
$this->form_validation
);
goto Vpkff;
N7XX6:
$this->_ion_hooks = new stdClass();
goto NSDAs;
w49O8:
$this->load->helper("cookie");
goto QPjGB;
nSN3_:
$this->load->library(
"form_validation"
);
goto ELS2v;
HudFR:
$this->errors = [];
goto Q6zYS;
VdH_3:
$this->error_start_delimiter = $this->config->item(
"error_start_delimiter",
"ion_auth"
);
goto J1WbU;
QPjGB:
$this->load->helper("date");
goto QNhzs;
Tcslx:
$error_suffix->setAccessible(true);
goto gkqp3;
nsQbv:
$this->message_start_delimiter = $this->error_start_delimiter;
goto rAeFD;
GOURm:
$error_prefix->setAccessible(true);
goto f1Z0y;
BxyOR:
H9wzw:
goto t4qGA;
LNct1:
gii_o:
goto N7XX6;
GYT0h:
if (
$delimiters_source ===
"form_validation"
) {
goto sMp9x;
}
goto wp910;
hU8E3:
$this->join = $this->config->item(
"join",
"ion_auth"
);
goto Awi0P;
NSDAs:
$this->trigger_events(
"model_constructor"
);
goto A2Sfb;
S8fe7:
goto gii_o;
goto H8ckW;
Q6zYS:
$delimiters_source = $this->config->item(
"delimiters_source",
"ion_auth"
);
goto GYT0h;
oNuRR:
$this->message_end_delimiter = $this->config->item(
"message_end_delimiter",
"ion_auth"
);
goto VdH_3;
QNhzs:
$this->lang->load("ion_auth");
goto s1ozu;
Eczx2:
$this->db = $CI->db;
goto BxyOR;
Awi0P:
$this->hash_method = $this->config->item(
"hash_method",
"ion_auth"
);
goto Nw2bv;
J1WbU:
$this->error_end_delimiter = $this->config->item(
"error_end_delimiter",
"ion_auth"
);
goto S8fe7;
s1ozu:
$group_name = $this->config->item(
"database_group_name",
"ion_auth"
);
goto S4_SW;
TIQeh:
$CI = &get_instance();
goto Eczx2;
S4_SW:
if (empty($group_name)) {
goto KHmMf;
}
goto u_onv;
u_onv:
$this->db = $this->load->database($group_name, true, true);
goto LZ_Fg;
ELS2v:
$form_validation_class = new ReflectionClass(
"CI_Form_validation"
);
goto MIRbC;
rAeFD:
$error_suffix = $form_validation_class->getProperty(
"_error_suffix"
);
goto Tcslx;
wp910:
$this->message_start_delimiter = $this->config->item(
"message_start_delimiter",
"ion_auth"
);
goto oNuRR;
A2Sfb:
}
public function db()
{
return $this->db;
}
public function hash_password($password, $identity = null)
{
goto E3vrU;
YJydC:
WVcRN:
goto TDCit;
pgUkI:
if (!($algo !== false && $params !== false)) {
goto WVcRN;
}
goto ZnndS;
e6pUX:
PbFQV:
goto Rfrm1;
ZnndS:
return password_hash($password, $algo, $params);
goto YJydC;
uLhJg:
$params = $this->_get_hash_parameters($identity);
goto pgUkI;
NAl3v:
return false;
goto e6pUX;
E3vrU:
if (
!(
empty($password) ||
strpos($password, "\x0") !== false ||
strlen($password) > self::MAX_PASSWORD_SIZE_BYTES
)
) {
goto PbFQV;
}
goto NAl3v;
TDCit:
return false;
goto b5f2y;
Rfrm1:
$algo = $this->_get_hash_algo();
goto uLhJg;
b5f2y:
}
public function verify_password(
$password,
$hash_password_db,
$identity = null
) {
goto b5RGg;
xKhg7:
return false;
goto brpKU;
CG20q:
return password_verify($password, $hash_password_db);
goto XktTQ;
RyIp1:
return $this->_password_verify_sha1_legacy(
$identity,
$password,
$hash_password_db
);
goto GxNbx;
b5RGg:
if (
!(
empty($password) ||
empty($hash_password_db) ||
strpos($password, "\0") !== false ||
strlen($password) > self::MAX_PASSWORD_SIZE_BYTES
)
) {
goto uJlpV;
}
goto xKhg7;
brpKU:
uJlpV:
goto UG0MZ;
UG0MZ:
if (strpos($hash_password_db, "$") === 0) {
goto C4w1z;
}
goto RyIp1;
GxNbx:
goto xbBCo;
goto k556g;
k556g:
C4w1z:
goto CG20q;
XktTQ:
xbBCo:
goto gUFHY;
gUFHY:
}
public function rehash_password_if_needed($hash, $identity, $password)
{
goto Vd0Lg;
y01KM:
if ($this->_set_password_db($identity, $password)) {
goto sfe9_;
}
goto XPYNj;
rLSR3:
$this->trigger_events([
"rehash_password",
"rehash_password_successful",
]);
goto zTECh;
yOKVS:
goto Usl5p;
goto sHbbw;
gdJ0Z:
if (!password_needs_rehash($hash, $algo, $params)) {
goto iXzTC;
}
goto y01KM;
sHbbw:
sfe9_:
goto rLSR3;
Vd0Lg:
$algo = $this->_get_hash_algo();
goto QNua2;
zTECh:
Usl5p:
goto bqC1j;
bqC1j:
iXzTC:
goto Ansh4;
QNua2:
$params = $this->_get_hash_parameters($identity);
goto z10id;
Ansh4:
zsrKq:
goto gHRzR;
XPYNj:
$this->trigger_events([
"rehash_password",
"rehash_password_unsuccessful",
]);
goto yOKVS;
z10id:
if (!($algo !== false && $params !== false)) {
goto zsrKq;
}
goto gdJ0Z;
gHRzR:
}
public function get_user_by_activation_code($user_code)
{
goto FKaLU;
aoV5_:
$user = $this->where(
"activation_selector",
$token->selector
)
->users()
->row();
goto R4e4F;
plrZ_:
BGzey:
goto FUK2y;
FKaLU:
$token = $this->_retrieve_selector_validator_couple($user_code);
goto aoV5_;
r9bWA:
return false;
goto UyKtG;
R4e4F:
if (!$user) {
goto UhCbt;
}
goto ZoKlr;
n70Iu:
return $user;
goto plrZ_;
ZoKlr:
if (
!$this->verify_password($token->validator, $user->activation_code)
) {
goto BGzey;
}
goto n70Iu;
FUK2y:
UhCbt:
goto r9bWA;
UyKtG:
}
public function activate($id, $code = false)
{
goto osLrY;
f1q_m:
$this->trigger_events([
"post_activate",
"post_activate_unsuccessful",
]);
goto CnATn;
ajN5T:
vzfxY:
goto f1q_m;
osLrY:
$this->trigger_events(
"pre_activate"
);
goto iBnkm;
zXlVp:
$this->trigger_events([
"post_activate",
"post_activate_successful",
]);
goto fb3kk;
AB4pV:
$this->db->update($this->tables["users"], $data, [
"id" => $id,
]);
goto Vl7fB;
XumHp:
$this->trigger_events("extra_where");
goto AB4pV;
Ma6po:
if (!($code === false || ($user && $user->id === $id))) {
goto vzfxY;
}
goto heeC0;
QOOre:
$user = $this->get_user_by_activation_code($code);
goto uJqxz;
fb3kk:
$this->set_message(
"activate_successful"
);
goto f2Xf8;
Vl7fB:
if (!($this->db->affected_rows() === 1)) {
goto HauJG;
}
goto zXlVp;
CnATn:
$this->set_error(
"activate_unsuccessful"
);
goto VsqMp;
VsqMp:
return false;
goto CwwFA;
uJqxz:
Zps8e:
goto Ma6po;
iBnkm:
if (!($code !== false)) {
goto Zps8e;
}
goto QOOre;
hbBs_:
HauJG:
goto ajN5T;
heeC0:
$data = [
"activation_selector" => null,
"activation_code" => null,
"active" => 1,
];
goto XumHp;
f2Xf8:
return true;
goto hbBs_;
CwwFA:
}
public function deactivate($id = null)
{
goto LWdCO;
X4Ogi:
$this->set_error(
"deactivate_current_user_unsuccessful"
);
goto FzeRb;
yzUxb:
$this->set_message(
"deactivate_successful"
);
goto Qmtrg;
esi4s:
$this->activation_code = $token->user_code;
goto JsPnf;
QnyPK:
$this->trigger_events("extra_where");
goto S8IkR;
U0FOH:
if (!isset($id)) {
goto z5gLf;
}
goto AwipR;
LWdCO:
$this->trigger_events("deactivate");
goto U0FOH;
B2D02:
$this->set_error(
"deactivate_unsuccessful"
);
goto kBR3v;
AwipR:
if (
!($this->ion_auth->logged_in() && $this->user()->row()->id == $id)
) {
goto wK101;
}
goto X4Ogi;
tUW5X:
$token = $this->_generate_selector_validator_couple(20, 40);
goto esi4s;
TLk8W:
z5gLf:
goto B2D02;
VkmjP:
goto axICd;
goto Cy6yZ;
riKzu:
goto EEBnU;
goto TLk8W;
Wu4eE:
EEBnU:
goto tUW5X;
Sahhx:
if ($return) {
goto WwT16;
}
goto ZvfCl;
FzeRb:
return false;
goto Oy0r9;
JsPnf:
$data = [
"activation_selector" =>
$token->selector,
"activation_code" =>
$token->validator_hashed,
"active" => 0,
];
goto QnyPK;
Cy6yZ:
WwT16:
goto yzUxb;
jLFbC:
$return = $this->db->affected_rows() == 1;
goto Sahhx;
Oy0r9:
wK101:
goto riKzu;
ZvfCl:
$this->set_error(
"deactivate_unsuccessful"
);
goto VkmjP;
Qmtrg:
axICd:
goto bLTFD;
kBR3v:
return false;
goto Wu4eE;
S8IkR:
$this->db->update($this->tables["users"], $data, [
"id" => $id,
]);
goto jLFbC;
bLTFD:
return $return;
goto umK5n;
umK5n:
}
public function clear_forgotten_password_code($identity)
{
goto eaJmA;
tEmNS:
X9eBT:
goto ucMSw;
eW8d0:
return true;
goto ig4aN;
ucMSw:
$data = [
"forgotten_password_selector" => null,
"forgotten_password_code" => null,
"forgotten_password_time" => null,
];
goto LllII;
LllII:
$this->db->update($this->tables["users"], $data, [
$this->identity_column => $identity,
]);
goto eW8d0;
eaJmA:
if (!empty($identity)) {
goto X9eBT;
}
goto bRdS5;
bRdS5:
return false;
goto tEmNS;
ig4aN:
}
public function clear_remember_code($identity)
{
goto kSwjj;
DmAVX:
$data = [
"remember_selector" => null,
"remember_code" => null,
];
goto vbEAi;
cGE4O:
return false;
goto M0Q4Y;
pW6dp:
return true;
goto lVO0n;
vbEAi:
$this->db->update($this->tables["users"], $data, [
$this->identity_column => $identity,
]);
goto pW6dp;
M0Q4Y:
FlOBu:
goto DmAVX;
kSwjj:
if (!empty($identity)) {
goto FlOBu;
}
goto cGE4O;
lVO0n:
}
public function reset_password($identity, $new)
{
goto uRF3W;
Swt2m:
H6Mde:
goto qD5ea;
vzRnk:
$this->set_error(
"password_change_unsuccessful"
);
goto D5OjS;
HLDqb:
$this->trigger_events([
"post_change_password",
"post_change_password_successful",
]);
goto OC4xU;
fmIxq:
if ($this->identity_check($identity)) {
goto OCsjx;
}
goto vChn0;
zgeqh:
eFJAA:
goto HLDqb;
uRF3W:
$this->trigger_events(
"pre_change_password"
);
goto fmIxq;
eckoD:
return false;
goto zEu2_;
vChn0:
$this->trigger_events([
"post_change_password",
"post_change_password_unsuccessful",
]);
goto eckoD;
zEu2_:
OCsjx:
goto tgwR3;
OC4xU:
$this->set_message(
"password_change_successful"
);
goto Swt2m;
qD5ea:
return $return;
goto e0xSG;
NfT3r:
$this->trigger_events([
"post_change_password",
"post_change_password_unsuccessful",
]);
goto vzRnk;
EafyK:
if ($return) {
goto eFJAA;
}
goto NfT3r;
D5OjS:
goto H6Mde;
goto zgeqh;
tgwR3:
$return = $this->_set_password_db($identity, $new);
goto EafyK;
e0xSG:
}
public function change_password($identity, $old, $new)
{
goto mUbm3;
PTRwI:
$this->set_error(
"password_change_unsuccessful"
);
goto oilZo;
l5Jqg:
$this->set_error(
"password_change_unsuccessful"
);
goto kD2IS;
desz2:
if (!($query->num_rows() !== 1)) {
goto sIG8E;
}
goto kShpZ;
sGdh_:
$this->trigger_events([
"post_change_password",
"post_change_password_unsuccessful",
]);
goto kjhXQ;
PozLC:
sIG8E:
goto gEcQL;
kShpZ:
$this->trigger_events([
"post_change_password",
"post_change_password_unsuccessful",
]);
goto PTRwI;
oilZo:
return false;
goto PozLC;
gEcQL:
$user = $query->row();
goto KCKWj;
KCKWj:
if (!$this->verify_password($old, $user->password, $identity)) {
goto HZERS;
}
goto fKE6Y;
eAOtL:
$this->set_message(
"password_change_successful"
);
goto WlVJL;
xHTkz:
return $result;
goto Sfko_;
WlVJL:
ERGbF:
goto xHTkz;
Sfko_:
HZERS:
goto l5Jqg;
fKE6Y:
$result = $this->_set_password_db($identity, $new);
goto tb0In;
dRDLT:
$query = $this->db
->select("id, password")
->where($this->identity_column, $identity)
->limit(1)
->order_by("id", "desc")
->get($this->tables["users"]);
goto desz2;
tb0In:
if ($result) {
goto nWvu7;
}
goto sGdh_;
du0vt:
goto ERGbF;
goto akX_X;
akX_X:
nWvu7:
goto gMe0m;
mUbm3:
$this->trigger_events(
"pre_change_password"
);
goto swSWf;
gMe0m:
$this->trigger_events([
"post_change_password",
"post_change_password_successful",
]);
goto eAOtL;
swSWf:
$this->trigger_events("extra_where");
goto dRDLT;
kD2IS:
return false;
goto dVqIB;
kjhXQ:
$this->set_error(
"password_change_unsuccessful"
);
goto du0vt;
dVqIB:
}
public function username_check($username = "")
{
goto uX5Dm;
YzV7n:
if (!empty($username)) {
goto BjOMR;
}
goto wI7Pi;
xfUOk:
$this->trigger_events("extra_where");
goto BLuhO;
BLuhO:
return $this->db
->where("username", $username)
->limit(1)
->count_all_results($this->tables["users"]) > 0;
goto MF02D;
uX5Dm:
$this->trigger_events(
"username_check"
);
goto YzV7n;
wI7Pi:
return false;
goto ladNj;
ladNj:
BjOMR:
goto xfUOk;
MF02D:
}
public function email_check($email = "")
{
goto zD1tV;
RpzVZ:
VpJS2:
goto Tiec8;
DUtNr:
return false;
goto RpzVZ;
f4rix:
if (!empty($email)) {
goto VpJS2;
}
goto DUtNr;
RQUL0:
return $this->db
->where("email", $email)
->limit(1)
->count_all_results($this->tables["users"]) > 0;
goto BGHlz;
zD1tV:
$this->trigger_events("email_check");
goto f4rix;
Tiec8:
$this->trigger_events("extra_where");
goto RQUL0;
BGHlz:
}
public function identity_check($identity = "")
{
goto roxUt;
S8GpD:
return $this->db
->where($this->identity_column, $identity)
->limit(1)
->count_all_results($this->tables["users"]) > 0;
goto sbei0;
PbFtR:
return false;
goto b_E3a;
A0xLa:
if (!empty($identity)) {
goto RnRkv;
}
goto PbFtR;
roxUt:
$this->trigger_events(
"identity_check"
);
goto A0xLa;
b_E3a:
RnRkv:
goto S8GpD;
sbei0:
}
public function get_user_id_from_identity($identity = "")
{
goto uVI3b;
uVI3b:
if (!empty($identity)) {
goto xu9F3;
}
goto fLcwT;
scgUL:
$user = $query->row();
goto vFkWk;
hHvs0:
xu9F3:
goto ewMdH;
fLcwT:
return false;
goto hHvs0;
ewMdH:
$query = $this->db
->select("id")
->where($this->identity_column, $identity)
->limit(1)
->get($this->tables["users"]);
goto ISuCj;
Q3_ff:
return false;
goto kJ21l;
vFkWk:
return $user->id;
goto loUwT;
kJ21l:
DVSay:
goto scgUL;
ISuCj:
if (!($query->num_rows() !== 1)) {
goto DVSay;
}
goto Q3_ff;
loUwT:
}
public function forgotten_password($identity)
{
goto F6Lfs;
BS1B3:
$this->trigger_events("extra_where");
goto M_hdG;
nz6M8:
AqYmH:
goto LMYjT;
F2BEo:
$update = [
"forgotten_password_selector" =>
$token->selector,
"forgotten_password_code" =>
$token->validator_hashed,
"forgotten_password_time" => time(),
];
goto BS1B3;
sl07i:
$this->trigger_events([
"post_forgotten_password",
"post_forgotten_password_unsuccessful",
]);
goto yhIdj;
H2zD3:
L1E_S:
goto agwZt;
NugUY:
if ($this->db->affected_rows() === 1) {
goto HQNn2;
}
goto AvvHY;
F6Lfs:
if (!empty($identity)) {
goto AqYmH;
}
goto sl07i;
AvvHY:
$this->trigger_events([
"post_forgotten_password",
"post_forgotten_password_unsuccessful",
]);
goto KkjrU;
rsSQ0:
goto L1E_S;
goto pWyBv;
KkjrU:
return false;
goto rsSQ0;
M_hdG:
$this->db->update($this->tables["users"], $update, [
$this->identity_column => $identity,
]);
goto NugUY;
DjlAF:
return $token->user_code;
goto H2zD3;
yhIdj:
return false;
goto nz6M8;
pWyBv:
HQNn2:
goto CjMqU;
LMYjT:
$token = $this->_generate_selector_validator_couple(20, 80);
goto F2BEo;
CjMqU:
$this->trigger_events([
"post_forgotten_password",
"post_forgotten_password_successful",
]);
goto DjlAF;
agwZt:
}
public function get_user_by_forgotten_password_code($user_code)
{
goto g87FE;
g87FE:
$token = $this->_retrieve_selector_validator_couple($user_code);
goto wv1X9;
UOzpr:
if (!$user) {
goto CdhAY;
}
goto egjTc;
BMiLm:
CdhAY:
goto zgCZR;
wv1X9:
$user = $this->where(
"forgotten_password_selector",
$token->selector
)
->users()
->row();
goto UOzpr;
egjTc:
if (
!$this->verify_password(
$token->validator,
$user->forgotten_password_code
)
) {
goto j9E82;
}
goto DOGuY;
c6_Vp:
j9E82:
goto BMiLm;
zgCZR:
return false;
goto LVtbq;
DOGuY:
return $user;
goto c6_Vp;
LVtbq:
}
public function register(
$identity,
$password,
$email,
$additional_data = [],
$groups = []
) {
goto MIfcM;
u3l7x:
foreach ($groups as $group) {
$this->add_to_group($group, $id);
ph9HA:
}
goto HkjmS;
c2YPK:
if (!($password === false)) {
goto tMpwl;
}
goto ct80J;
yCs5U:
$password = $this->hash_password($password);
goto c2YPK;
l_pTL:
return isset($id) ? $id : false;
goto Y9FYA;
HmKcv:
$query = $this->db
->get_where(
$this->tables["groups"],
[
"name" => $this->config->item(
"default_group",
"ion_auth"
),
],
1
)
->row();
goto Vi7qa;
HkjmS:
DYvl2:
goto NM0EP;
WHc5M:
return false;
goto FDoui;
zjgDm:
$data = [
$this->identity_column => $identity,
"username" => $identity,
"password" => $password,
"email" => $email,
"ip_address" => $ip_address,
"created_on" => time(),
"active" => $manual_activation === false ? 1 : 0,
];
goto vdxKq;
Hkyxz:
$groups[] = $default_group->id;
goto lM_BI;
h3cf_:
tMpwl:
goto zjgDm;
WZ2Ib:
$this->set_error(
"account_creation_missing_default_group"
);
goto WHc5M;
eJldb:
$id = $this->db->insert_id(
$this->tables["users"] .
"_id_seq"
);
goto eGqVr;
pib8k:
goto JpKbU;
goto AoEOh;
D2Wyo:
jWlCC:
goto d7L6D;
NM0EP:
pIjyo:
goto zU_aL;
eGqVr:
if (!(isset($default_group->id) && empty($groups))) {
goto wzXcS;
}
goto Hkyxz;
ct80J:
$this->set_error(
"account_creation_unsuccessful"
);
goto usejn;
InkPp:
if ($this->identity_check($identity)) {
goto FtFH_;
}
goto kqxmG;
kqxmG:
if (
!(
!$this->config->item(
"default_group",
"ion_auth"
) && empty($groups)
)
) {
goto qkdMb;
}
goto WZ2Ib;
MIfcM:
$this->trigger_events(
"pre_register"
);
goto ZTL6U;
VYA16:
$this->db->insert($this->tables["users"], $user_data);
goto eJldb;
RWgFU:
$this->trigger_events("extra_set");
goto VYA16;
usejn:
return false;
goto h3cf_;
zU_aL:
$this->trigger_events(
"post_register"
);
goto l_pTL;
vdxKq:
$user_data = array_merge(
$this->_filter_data(
$this->tables["users"],
$additional_data
),
$data
);
goto RWgFU;
KnPdj:
return false;
goto zwOmj;
KKxlH:
$this->set_error(
"account_creation_duplicate_identity"
);
goto KnPdj;
lM_BI:
wzXcS:
goto YL0eK;
ZTL6U:
$manual_activation = $this->config->item(
"manual_activation",
"ion_auth"
);
goto InkPp;
g4iqU:
$this->set_error(
"account_creation_invalid_default_group"
);
goto BzKbQ;
zwOmj:
JpKbU:
goto HmKcv;
YxXs3:
$ip_address = $this->input->ip_address();
goto yCs5U;
AoEOh:
FtFH_:
goto KKxlH;
d7L6D:
$default_group = $query;
goto YxXs3;
FDoui:
qkdMb:
goto pib8k;
BzKbQ:
return false;
goto D2Wyo;
Vi7qa:
if (!(!isset($query->id) && empty($groups))) {
goto jWlCC;
}
goto g4iqU;
YL0eK:
if (empty($groups)) {
goto pIjyo;
}
goto u3l7x;
Y9FYA:
}
public function login($identity, $password, $remember = false)
{
goto hxwEi;
EsBM8:
O7fma:
goto P6UmR;
CR3gh:
$this->set_session($user);
goto KncO0;
yncn3:
goto v3Pe8;
goto mQoM9;
ensJY:
ejtwJ:
goto PigcR;
yLESw:
$this->clear_remember_code($identity);
goto yncn3;
PigcR:
if (!($query->num_rows() === 1)) {
goto tikT_;
}
goto U9eOw;
hxwEi:
$this->trigger_events("pre_login");
goto uKXMH;
P6UmR:
$this->rehash_password_if_needed($user->password, $identity, $password);
goto S1Ad7;
UpQta:
$this->trigger_events([
"post_login",
"post_login_successful",
]);
goto zDoWp;
KncO0:
$this->update_last_login($user->id);
goto DWmC2;
x4KaQ:
return false;
goto ensJY;
HOseE:
return false;
goto wufQC;
uq276:
$this->set_error(
"login_timeout"
);
goto x4KaQ;
C9giy:
fosCR:
goto CR3gh;
YkGD4:
v3Pe8:
goto EsBM8;
abTnF:
$this->remember_user($identity);
goto YkGD4;
mQoM9:
dDQ7N:
goto abTnF;
zh0Pl:
$this->hash_password($password);
goto UZ6gq;
I42Nc:
$this->trigger_events("extra_where");
goto J1xPP;
UZ6gq:
$this->increase_login_attempts($identity);
goto N1ooZ;
yILc2:
if (!$this->is_max_login_attempts_exceeded($identity)) {
goto ejtwJ;
}
goto v1Pju;
kUzQy:
if (
!$this->config->item(
"remember_users",
"ion_auth"
)
) {
goto O7fma;
}
goto x25cx;
N1ooZ:
$this->trigger_events(
"post_login_unsuccessful"
);
goto Nr7Jz;
jmE2A:
if (!$this->verify_password($password, $user->password, $identity)) {
goto fkCTv;
}
goto pjbv3;
YQ22O:
$this->trigger_events(
"post_login_unsuccessful"
);
goto uq276;
U9eOw:
$user = $query->row();
goto jmE2A;
pjbv3:
if (!($user->active == 0)) {
goto fosCR;
}
goto JhXvR;
zDoWp:
$this->set_message(
"login_successful"
);
goto C3MmD;
v1Pju:
$this->hash_password($password);
goto YQ22O;
f1Gd_:
return false;
goto MnLLA;
Nr7Jz:
$this->set_error(
"login_unsuccessful"
);
goto HOseE;
jx4Hh:
fkCTv:
goto mXTHS;
H2r4J:
$this->set_error(
"login_unsuccessful"
);
goto f1Gd_;
DWmC2:
$this->clear_login_attempts($identity);
goto mq33g;
J1xPP:
$query = $this->db
->select(
$this->identity_column .
", email, id, password, active, last_login"
)
->where($this->identity_column, $identity)
->limit(1)
->order_by("id", "desc")
->get($this->tables["users"]);
goto yILc2;
C3MmD:
return true;
goto jx4Hh;
mq33g:
$this->clear_forgotten_password_code($identity);
goto kUzQy;
A4xjV:
$this->set_error(
"login_unsuccessful_not_active"
);
goto vLPZW;
mXTHS:
tikT_:
goto zh0Pl;
uKXMH:
if (!(empty($identity) || empty($password))) {
goto LV96I;
}
goto H2r4J;
x25cx:
if ($remember) {
goto dDQ7N;
}
goto yLESw;
S1Ad7:
$this->session->sess_regenerate(false);
goto UpQta;
JhXvR:
$this->trigger_events(
"post_login_unsuccessful"
);
goto A4xjV;
MnLLA:
LV96I:
goto I42Nc;
vLPZW:
return false;
goto C9giy;
wufQC:
}
public function recheck_session()
{
goto WT_hm;
vUIAA:
K5YTD:
goto h4YB9;
WT_hm:
$recheck =
null !==
$this->config->item(
"recheck_timer",
"ion_auth"
)
? $this->config->item(
"recheck_timer",
"ion_auth"
)
: 0;
goto JbFDO;
trr3e:
goto rjf4G;
goto ABgf0;
DEs50:
if ($query->num_rows() === 1) {
goto NV8m_;
}
goto K89uF;
JwPhi:
return false;
goto trr3e;
kAB5Y:
rjf4G:
goto vUIAA;
GIxKO:
$last_login = $this->session->userdata(
"last_check"
);
goto mJ_xU;
h4YB9:
D05m_:
goto kAIc9;
XBK_P:
$query = $this->db
->select("id")
->where([
$this->identity_column => $this->session->userdata(
"identity"
),
"active" => "1",
])
->limit(1)
->order_by("id", "desc")
->get($this->tables["users"]);
goto DEs50;
mJ_xU:
if (!($last_login + $recheck < time())) {
goto K5YTD;
}
goto XBK_P;
PAynh:
$this->session->set_userdata(
"last_check",
time()
);
goto kAB5Y;
Hn6Ww:
$identity = $this->config->item(
"identity",
"ion_auth"
);
goto CBXxX;
ABgf0:
NV8m_:
goto PAynh;
kAIc9:
return (bool) $this->session->userdata(
"identity"
);
goto GAXQo;
JbFDO:
if (!($recheck !== 0)) {
goto D05m_;
}
goto GIxKO;
CBXxX:
$this->session->unset_userdata([
$identity,
"id",
"user_id",
]);
goto JwPhi;
K89uF:
$this->trigger_events("logout");
goto Hn6Ww;
GAXQo:
}
public function is_max_login_attempts_exceeded(
$identity,
$ip_address = null
) {
goto kpge_;
ZBr06:
t0pGb:
goto kFmMA;
grEv9:
return $attempts >= $max_attempts;
goto ZBr06;
F6bjr:
$max_attempts = $this->config->item(
"maximum_login_attempts",
"ion_auth"
);
goto k33uU;
kFmMA:
ChwVj:
goto OH8fL;
k33uU:
if (!($max_attempts > 0)) {
goto t0pGb;
}
goto ycyLD;
ycyLD:
$attempts = $this->get_attempts_num($identity, $ip_address);
goto grEv9;
kpge_:
if (
!$this->config->item(
"track_login_attempts",
"ion_auth"
)
) {
goto ChwVj;
}
goto F6bjr;
OH8fL:
return false;
goto aDnnD;
aDnnD:
}
public function get_attempts_num($identity, $ip_address = null)
{
goto pTTDp;
W3njJ:
if (
!$this->config->item(
"track_login_ip_address",
"ion_auth"
)
) {
goto xYbu2;
}
goto tpM8U;
tpM8U:
if (isset($ip_address)) {
goto vvvF7;
}
goto enU73;
v8uPd:
M5zmi:
goto Axxuc;
mZVbu:
$qres = $this->db->get(
$this->tables[
"login_attempts"
]
);
goto xAvNV;
enU73:
$ip_address = $this->input->ip_address();
goto URaBB;
URaBB:
vvvF7:
goto eKDCs;
pTTDp:
if (
!$this->config->item(
"track_login_attempts",
"ion_auth"
)
) {
goto M5zmi;
}
goto wR_Z8;
wR_Z8:
$this->db->select("1", false);
goto MQLIH;
bmYz2:
xYbu2:
goto nW4nI;
nW4nI:
$this->db->where(
"time >",
time() -
$this->config->item(
"lockout_time",
"ion_auth"
),
false
);
goto mZVbu;
xAvNV:
return $qres->num_rows();
goto v8uPd;
Axxuc:
return 0;
goto OGoIS;
MQLIH:
$this->db->where("login", $identity);
goto W3njJ;
eKDCs:
$this->db->where(
"ip_address",
$ip_address
);
goto bmYz2;
OGoIS:
}
public function get_last_attempt_time($identity, $ip_address = null)
{
goto j5OaN;
mJdjX:
$ip_address = $this->input->ip_address();
goto CVXTW;
j5OaN:
if (
!$this->config->item(
"track_login_attempts",
"ion_auth"
)
) {
goto tlm3D;
}
goto L_mEh;
hEscl:
$this->db->order_by("id", "desc");
goto JXcy_;
j9xCb:
eUwyk:
goto w2N9H;
fb1PI:
$this->db->where(
"ip_address",
$ip_address
);
goto U8Bxc;
JXcy_:
$qres = $this->db->get(
$this->tables[
"login_attempts"
],
1
);
goto NSdpT;
NSdpT:
if (!($qres->num_rows() > 0)) {
goto eUwyk;
}
goto ToW84;
L_mEh:
$this->db->select("time");
goto rFoQ0;
rFoQ0:
$this->db->where("login", $identity);
goto SpXMe;
CVXTW:
eEPoM:
goto fb1PI;
PrZtt:
if (isset($ip_address)) {
goto eEPoM;
}
goto mJdjX;
w2N9H:
tlm3D:
goto uWBX0;
ToW84:
return $qres->row()->time;
goto j9xCb;
U8Bxc:
srQ4A:
goto hEscl;
uWBX0:
return 0;
goto JjJKc;
SpXMe:
if (
!$this->config->item(
"track_login_ip_address",
"ion_auth"
)
) {
goto srQ4A;
}
goto PrZtt;
JjJKc:
}
public function get_last_attempt_ip($identity)
{
goto HUZ3q;
hvm63:
mYELs:
goto q1jSi;
MEScp:
$this->db->where("login", $identity);
goto lZsf9;
lZsf9:
$this->db->order_by("id", "desc");
goto y0WG7;
DSneM:
return "";
goto eVVwd;
rfBnv:
$this->db->select("ip_address");
goto MEScp;
y0WG7:
$qres = $this->db->get(
$this->tables[
"login_attempts"
],
1
);
goto SpKQ5;
q1jSi:
nv5Sl:
goto DSneM;
SpKQ5:
if (!($qres->num_rows() > 0)) {
goto mYELs;
}
goto lFdrW;
HUZ3q:
if (
!(
$this->config->item(
"track_login_attempts",
"ion_auth"
) &&
$this->config->item(
"track_login_ip_address",
"ion_auth"
)
)
) {
goto nv5Sl;
}
goto rfBnv;
lFdrW:
return $qres->row()->ip_address;
goto hvm63;
eVVwd:
}
public function increase_login_attempts($identity)
{
goto pi_3Z;
pi_3Z:
if (
!$this->config->item(
"track_login_attempts",
"ion_auth"
)
) {
goto bUIit;
}
goto YmEFR;
HkRWW:
UuxId:
goto AIz1X;
PQTP_:
if (
!$this->config->item(
"track_login_ip_address",
"ion_auth"
)
) {
goto UuxId;
}
goto aYMUZ;
zO4rb:
bUIit:
goto TGT_2;
aYMUZ:
$data[
"ip_address"
] = $this->input->ip_address();
goto HkRWW;
YmEFR:
$data = [
"ip_address" => "",
"login" => $identity,
"time" => time(),
];
goto PQTP_;
AIz1X:
return $this->db->insert(
$this->tables[
"login_attempts"
],
$data
);
goto zO4rb;
TGT_2:
return false;
goto XivJK;
XivJK:
}
public function clear_login_attempts(
$identity,
$old_attempts_expire_period = 86400,
$ip_address = null
) {
goto pG_Ld;
yMBVK:
$this->db->where(
"ip_address",
$ip_address
);
goto V1frP;
jlAVm:
$old_attempts_expire_period = max(
$old_attempts_expire_period,
$this->config->item(
"lockout_time",
"ion_auth"
)
);
goto UfjeY;
V1frP:
VSrzk:
goto Yw4wV;
li5TH:
return false;
goto QzR7N;
h_BpS:
Oqt34:
goto li5TH;
Yw4wV:
$this->db->or_where(
"time <",
time() - $old_attempts_expire_period,
false
);
goto ooUw_;
I0Jk9:
if (isset($ip_address)) {
goto zY24z;
}
goto NUzUf;
ZHgj4:
zY24z:
goto yMBVK;
ooUw_:
return $this->db->delete(
$this->tables[
"login_attempts"
]
);
goto h_BpS;
gMRAj:
if (
!$this->config->item(
"track_login_ip_address",
"ion_auth"
)
) {
goto VSrzk;
}
goto I0Jk9;
pG_Ld:
if (
!$this->config->item(
"track_login_attempts",
"ion_auth"
)
) {
goto Oqt34;
}
goto jlAVm;
NUzUf:
$ip_address = $this->input->ip_address();
goto ZHgj4;
UfjeY:
$this->db->where("login", $identity);
goto gMRAj;
QzR7N:
}
public function limit($limit)
{
goto l7Q0v;
TfNC5:
return $this;
goto U2Bof;
l7Q0v:
$this->trigger_events("limit");
goto voP9r;
voP9r:
$this->_ion_limit = $limit;
goto TfNC5;
U2Bof:
}
public function offset($offset)
{
goto p51oi;
PNv1_:
$this->_ion_offset = $offset;
goto SdcWx;
SdcWx:
return $this;
goto obL_z;
p51oi:
$this->trigger_events("offset");
goto PNv1_;
obL_z:
}
public function where($where, $value = null)
{
goto Y7LG5;
Y7LG5:
$this->trigger_events("where");
goto oJOgx;
oJOgx:
if (is_array($where)) {
goto DDrIk;
}
goto z7Mj_;
z7Mj_:
$where = [$where => $value];
goto u_GfG;
u_GfG:
DDrIk:
goto PwUDT;
PwUDT:
array_push($this->_ion_where, $where);
goto iyPmw;
iyPmw:
return $this;
goto yuZ8q;
yuZ8q:
}
public function like($like, $value = null, $position = "both")
{
goto aoM3V;
aoM3V:
$this->trigger_events("like");
goto ikqLI;
ikqLI:
array_push($this->_ion_like, [
"like" => $like,
"value" => $value,
"position" => $position,
]);
goto S8yt9;
S8yt9:
return $this;
goto M3Ssn;
M3Ssn:
}
public function select($select)
{
goto dU7E4;
dU7E4:
$this->trigger_events("select");
goto QzicS;
KEm5M:
return $this;
goto N5_7F;
QzicS:
$this->_ion_select[] = $select;
goto KEm5M;
N5_7F:
}
public function order_by($by, $order = "desc")
{
goto ONkOl;
rpcQi:
$this->_ion_order = $order;
goto FlEeO;
FlEeO:
return $this;
goto tKvre;
dw9jM:
$this->_ion_order_by = $by;
goto rpcQi;
ONkOl:
$this->trigger_events("order_by");
goto dw9jM;
tKvre:
}
public function row()
{
goto MAP9A;
WGixa:
$row = $this->response->row();
goto nGuDj;
MAP9A:
$this->trigger_events("row");
goto WGixa;
nGuDj:
return $row;
goto jL9gG;
jL9gG:
}
public function row_array()
{
goto nw90y;
ncatd:
return $row;
goto g1Mma;
nw90y:
$this->trigger_events([
"row",
"row_array",
]);
goto kfAiM;
kfAiM:
$row = $this->response->row_array();
goto ncatd;
g1Mma:
}
public function result()
{
goto gtf1L;
ruU6H:
$result = $this->response->result();
goto BpD29;
BpD29:
return $result;
goto NBMr_;
gtf1L:
$this->trigger_events("result");
goto ruU6H;
NBMr_:
}
public function result_array()
{
goto c8TW6;
vAV4g:
return $result;
goto joqBF;
c8TW6:
$this->trigger_events([
"result",
"result_array",
]);
goto i0ccT;
i0ccT:
$result = $this->response->result_array();
goto vAV4g;
joqBF:
}
public function num_rows()
{
goto NWEzy;
NWEzy:
$this->trigger_events(["num_rows"]);
goto h3QOO;
Hi275:
return $result;
goto DSjIN;
h3QOO:
$result = $this->response->num_rows();
goto Hi275;
DSjIN:
}
public function users($groups = null)
{
goto Y364V;
JyBQr:
$this->response = $this->db->get($this->tables["users"]);
goto j7Fhj;
HNC9b:
$this->db->join(
$this->tables["users_groups"],
$this->tables["users_groups"] .
"." .
$this->join["users"] .
"=" .
$this->tables["users"] .
".id",
"inner"
);
goto joXMx;
Bhd1N:
VUmJa:
goto audrP;
FrRwo:
$this->_ion_select = [];
goto MMPtm;
klhcP:
$this->_ion_order = null;
goto CJgmh;
ZhK_z:
if (empty($group_names)) {
goto VUmJa;
}
goto rG15t;
klmzT:
$this->_ion_limit = null;
goto WJ_y0;
FCdpX:
$this->db->limit($this->_ion_limit);
goto klmzT;
u6Y6S:
$this->_ion_like = [];
goto A61It;
CJgmh:
$this->_ion_order_by = null;
goto C7ydp;
ULdB6:
if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) {
goto bZAwI;
}
goto hi4Zc;
aBMOT:
$group_ids = [];
goto GYvoo;
UAdad:
$this->_ion_limit = null;
goto A0FcU;
vKGHg:
if (!isset($groups)) {
goto Jnp6P;
}
goto G6S3j;
PDxss:
goto BryVU;
goto BB0Jn;
vwL9O:
Jnp6P:
goto pKLg7;
GCssq:
foreach ($this->_ion_select as $select) {
$this->db->select($select);
PtzjD:
}
goto Al0wR;
BB0Jn:
XvqFr:
goto LekAI;
rG15t:
$this->db->join(
$this->tables["groups"],
$this->tables["users_groups"] .
"." .
$this->join["groups"] .
" = " .
$this->tables["groups"] .
".id",
"inner"
);
goto NAmj2;
kD31c:
BryVU:
goto ULdB6;
hi4Zc:
$this->db->order_by($this->_ion_order_by, $this->_ion_order);
goto klhcP;
PSfaS:
Z81cZ:
goto HQcyz;
MMPtm:
z8MVq:
goto vKGHg;
E1lET:
dKFtt:
goto u6Y6S;
j7Fhj:
return $this;
goto bey_b;
okqFW:
XTalR:
goto vj22b;
G6S3j:
if (is_array($groups)) {
goto XTalR;
}
goto YGpSh;
ZkKXm:
$this->db->{$or_where_in}(
$this->tables["users_groups"] .
"." .
$this->join["groups"],
$group_ids
);
goto FD3TC;
n4IXz:
foreach ($this->_ion_like as $like) {
$this->db->or_like(
$like["like"],
$like["value"],
$like["position"]
);
MKdTg:
}
goto E1lET;
g5ved:
$or_where_in =
!empty($group_ids) && !empty($group_names)
? "or_where_in"
: "where_in";
goto ZhK_z;
YGpSh:
$groups = [$groups];
goto okqFW;
audrP:
if (empty($group_ids)) {
goto mIWQy;
}
goto ZkKXm;
zITMt:
if (!isset($this->_ion_limit)) {
goto EFi4J;
}
goto FCdpX;
ThQzb:
Hz1nd:
goto OatyK;
blNmN:
goto z8MVq;
goto zjG0U;
A61It:
OwJfU:
goto fPOrw;
gm9BX:
if (!(isset($this->_ion_where) && !empty($this->_ion_where))) {
goto Z81cZ;
}
goto GUkPQ;
vj22b:
if (!(isset($groups) && !empty($groups))) {
goto yzhgh;
}
goto X_z1X;
qdYQz:
if (isset($this->_ion_select) && !empty($this->_ion_select)) {
goto khLv9;
}
goto Lment;
HQcyz:
if (!(isset($this->_ion_like) && !empty($this->_ion_like))) {
goto OwJfU;
}
goto n4IXz;
hrPOy:
foreach ($groups as $group) {
goto vZoER;
gZa_H:
goto L7pzO;
goto FGv9o;
FGv9o:
IAL3i:
goto KmVxF;
fQs7n:
L7pzO:
goto K99Ox;
KmVxF:
$group_ids[] = $group;
goto fQs7n;
K99Ox:
WH80D:
goto znddm;
vZoER:
if (is_numeric($group)) {
goto IAL3i;
}
goto iBEqb;
iBEqb:
$group_names[] = $group;
goto gZa_H;
znddm:
}
goto K_D13;
pKLg7:
$this->trigger_events("extra_where");
goto gm9BX;
Al0wR:
n10j2:
goto FrRwo;
GYvoo:
$group_names = [];
goto hrPOy;
Y364V:
$this->trigger_events("users");
goto qdYQz;
fPOrw:
if (isset($this->_ion_limit) && isset($this->_ion_offset)) {
goto XvqFr;
}
goto zITMt;
WJ_y0:
EFi4J:
goto PDxss;
zjG0U:
khLv9:
goto GCssq;
X_z1X:
$this->db->distinct();
goto HNC9b;
LekAI:
$this->db->limit($this->_ion_limit, $this->_ion_offset);
goto UAdad;
OatyK:
$this->_ion_where = [];
goto PSfaS;
joXMx:
yzhgh:
goto aBMOT;
GUkPQ:
foreach ($this->_ion_where as $where) {
$this->db->where($where);
sNeO_:
}
goto ThQzb;
FD3TC:
mIWQy:
goto vwL9O;
K_D13:
uy_4i:
goto g5ved;
Lment:
$this->db->select([
$this->tables["users"] . ".*",
$this->tables["users"] .
".id as id",
$this->tables["users"] .
".id as user_id",
]);
goto blNmN;
A0FcU:
$this->_ion_offset = null;
goto kD31c;
NAmj2:
$this->db->where_in(
$this->tables["groups"] . ".name",
$group_names
);
goto Bhd1N;
C7ydp:
bZAwI:
goto JyBQr;
bey_b:
}
public function user($id = null)
{
goto kpGOu;
rx4cz:
$this->users();
goto k0oIq;
ROSfA:
$this->where(
$this->tables["users"] . ".id",
$id
);
goto rx4cz;
kpGOu:
$this->trigger_events("user");
goto fNB5k;
UPIJP:
$this->limit(1);
goto EDXtE;
fNB5k:
$id = isset($id)
? $id
: $this->session->userdata("user_id");
goto UPIJP;
k0oIq:
return $this;
goto aso27;
EDXtE:
$this->order_by(
$this->tables["users"] . ".id",
"desc"
);
goto ROSfA;
aso27:
}
public function get_users_groups($id = false)
{
goto Rz7ox;
Rz7ox:
$this->trigger_events(
"get_users_group"
);
goto ieINE;
Jwtsu:
return $this->db
->select(
$this->tables[
"users_groups"
] .
"." .
$this->join["groups"] .
" as id, " .
$this->tables["groups"] .
".name, " .
$this->tables["groups"] .
".description"
)
->where(
$this->tables[
"users_groups"
] .
"." .
$this->join["users"],
$id
)
->join(
$this->tables["groups"],
$this->tables[
"users_groups"
] .
"." .
$this->join["groups"] .
"=" .
$this->tables["groups"] .
".id"
)
->get(
$this->tables[
"users_groups"
]
);
goto BsyvA;
ieINE:
$id || ($id = $this->session->userdata("user_id"));
goto Jwtsu;
BsyvA:
}
public function in_group($check_group, $id = false, $check_all = false)
{
goto Sw7Tq;
h1aSH:
return $check_all;
goto eKMGW;
eClR1:
$id || ($id = $this->session->userdata("user_id"));
goto UNUMI;
dympe:
uC1yp:
goto AB4vd;
MIe5w:
goto nxQ0l;
goto RwQHg;
kJTwM:
A1RVi:
goto h1aSH;
IrFoA:
eMKdI:
goto c4_RA;
huZK6:
foreach ($users_groups as $group) {
$groups_array[$group->id] = $group->name;
Q8X2p:
}
goto IrFoA;
BhnFg:
$groups_array = $this->_cache_user_in_group[$id];
goto Jc0yw;
VFFHn:
$check_group = [$check_group];
goto dympe;
diAdp:
$groups_array = [];
goto huZK6;
Fnx2C:
foreach ($check_group as $key => $value) {
goto nlfji;
dxGGI:
uy8z0:
goto AtZ71;
AtZ71:
XTieh:
goto S7s9I;
NdrID:
return !$check_all;
goto dxGGI;
nlfji:
$groups = is_numeric($value)
? array_keys($groups_array)
: $groups_array;
goto HuoWo;
HuoWo:
if (!(in_array($value, $groups) xor $check_all)) {
goto uy8z0;
}
goto NdrID;
S7s9I:
}
goto kJTwM;
AB4vd:
if (isset($this->_cache_user_in_group[$id])) {
goto JooCe;
}
goto pkbvL;
Sw7Tq:
$this->trigger_events("in_group");
goto eClR1;
c4_RA:
$this->_cache_user_in_group[$id] = $groups_array;
goto MIe5w;
UNUMI:
if (is_array($check_group)) {
goto uC1yp;
}
goto VFFHn;
pkbvL:
$users_groups = $this->get_users_groups($id)->result();
goto diAdp;
RwQHg:
JooCe:
goto BhnFg;
Jc0yw:
nxQ0l:
goto Fnx2C;
eKMGW:
}
public function add_to_group($group_ids, $user_id = false)
{
goto vgnE5;
P349a:
$group_ids = [$group_ids];
goto J7QQ4;
vgnE5:
$this->trigger_events(
"add_to_group"
);
goto kSbjV;
kSbjV:
$user_id ||
($user_id = $this->session->userdata(
"user_id"
));
goto OMNWX;
Cbyfw:
dBwBB:
goto OL7Zo;
J7QQ4:
uQcAz:
goto nFpV9;
OL7Zo:
return $return;
goto iLzXX;
OMNWX:
if (is_array($group_ids)) {
goto uQcAz;
}
goto P349a;
DqNw1:
foreach ($group_ids as $group_id) {
goto hwujH;
Gdoda:
$return++;
goto T06yO;
X9PS_:
$group = $this->group($group_id)->result();
goto Nmp3a;
LyAiA:
$this->_cache_user_in_group[$user_id][$group_id] = $group_name;
goto Gdoda;
Nmp3a:
$group_name = $group[0]->name;
goto tmB1B;
YWYAL:
if (isset($this->_cache_groups[$group_id])) {
goto u5EJk;
}
goto X9PS_;
tmB1B:
$this->_cache_groups[$group_id] = $group_name;
goto b3Ir5;
T06yO:
C93Se:
goto Dl4Au;
aeEvz:
vZySV:
goto LyAiA;
hwujH:
if (
!$this->db->insert(
$this->tables[
"users_groups"
],
[
$this->join[
"groups"
] => (float) $group_id,
$this->join["users"] => (float) $user_id,
]
)
) {
goto C93Se;
}
goto YWYAL;
b3Ir5:
goto vZySV;
goto W_bq1;
nWNrp:
$group_name = $this->_cache_groups[$group_id];
goto aeEvz;
Dl4Au:
MRlb2:
goto hECuh;
W_bq1:
u5EJk:
goto nWNrp;
hECuh:
}
goto Cbyfw;
nFpV9:
$return = 0;
goto DqNw1;
iLzXX:
}
public function remove_from_group($group_ids = false, $user_id = false)
{
goto nJZ2k;
kMl1e:
if (
!($return = $this->db->delete(
$this->tables[
"users_groups"
],
[$this->join["users"] => (float) $user_id]
))
) {
goto lSH9I;
}
goto SeYcJ;
Sagrp:
goto Gg_Yr;
goto ytXZB;
SeYcJ:
$this->_cache_user_in_group[$user_id] = [];
goto LBdQU;
nC4LH:
if (is_array($group_ids)) {
goto WhfRP;
}
goto PK087;
RCubN:
if (!empty($user_id)) {
goto cbDYY;
}
goto MR_0r;
ERVC1:
return $return;
goto KOpw3;
PK087:
$group_ids = [$group_ids];
goto Vaxfr;
ytXZB:
eVeOo:
goto nC4LH;
RzCjf:
mKoxO:
goto CL7e1;
t1VOQ:
cbDYY:
goto Ty8V7;
BNUpN:
Gg_Yr:
goto ERVC1;
Vaxfr:
WhfRP:
goto o_43t;
Ty8V7:
if (!empty($group_ids)) {
goto eVeOo;
}
goto kMl1e;
LBdQU:
lSH9I:
goto Sagrp;
CL7e1:
$return = true;
goto BNUpN;
MR_0r:
return false;
goto t1VOQ;
nJZ2k:
$this->trigger_events(
"remove_from_group"
);
goto RCubN;
o_43t:
foreach ($group_ids as $group_id) {
goto WvExf;
WvExf:
$this->db->delete(
$this->tables[
"users_groups"
],
[
$this->join[
"groups"
] => (float) $group_id,
$this->join["users"] => (float) $user_id,
]
);
goto SyfQg;
n4r8J:
GGsJJ:
goto DGagB;
YiMKN:
QZER3:
goto n4r8J;
Snw0K:
unset($this->_cache_user_in_group[$user_id][$group_id]);
goto YiMKN;
SyfQg:
if (
!(
isset($this->_cache_user_in_group[$user_id]) &&
isset($this->_cache_user_in_group[$user_id][$group_id])
)
) {
goto QZER3;
}
goto Snw0K;
DGagB:
}
goto RzCjf;
KOpw3:
}
public function groups()
{
goto WcJbc;
lsp_q:
$this->db->limit($this->_ion_limit);
goto QSFF3;
sjX1l:
if (isset($this->_ion_limit) && isset($this->_ion_offset)) {
goto Or8f1;
}
goto BL9vs;
o_VJ7:
Or8f1:
goto ZM_K0;
ZM_K0:
$this->db->limit($this->_ion_limit, $this->_ion_offset);
goto fWGfR;
iiCM6:
if (!(isset($this->_ion_where) && !empty($this->_ion_where))) {
goto KU4cZ;
}
goto Pj3je;
BL9vs:
if (!isset($this->_ion_limit)) {
goto m3aPO;
}
goto lsp_q;
fWGfR:
$this->_ion_limit = null;
goto HPjHY;
Qi3JL:
Kvwc7:
goto ByLli;
KKrLH:
$this->response = $this->db->get(
$this->tables["groups"]
);
goto cGKXu;
SLecO:
zdgen:
goto KKrLH;
WcJbc:
$this->trigger_events("groups");
goto iiCM6;
I76xG:
m3aPO:
goto OZTBS;
fN8uW:
$this->_ion_where = [];
goto x6uvc;
OZTBS:
goto Kvwc7;
goto o_VJ7;
S8U07:
$this->db->order_by($this->_ion_order_by, $this->_ion_order);
goto SLecO;
cGKXu:
return $this;
goto Oj1MP;
Pj3je:
foreach ($this->_ion_where as $where) {
$this->db->where($where);
rRIgJ:
}
goto gTx7U;
HPjHY:
$this->_ion_offset = null;
goto Qi3JL;
ByLli:
if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) {
goto zdgen;
}
goto S8U07;
x6uvc:
KU4cZ:
goto sjX1l;
QSFF3:
$this->_ion_limit = null;
goto I76xG;
gTx7U:
uoIyn:
goto fN8uW;
Oj1MP:
}
public function group($id = null)
{
goto dmBa6;
dmBa6:
$this->trigger_events("group");
goto aoexM;
oJXG7:
WOaMR:
goto t845Q;
aoexM:
if (!isset($id)) {
goto WOaMR;
}
goto kLleZ;
D5dpP:
return $this->groups();
goto sfzdj;
t845Q:
$this->limit(1);
goto UrL6I;
UrL6I:
$this->order_by("id", "desc");
goto D5dpP;
kLleZ:
$this->where(
$this->tables["groups"] . ".id",
$id
);
goto oJXG7;
sfzdj:
}
public function update($id, array $data)
{
goto u8x3k;
fcOcq:
if (!($data["password"] === false)) {
goto kkLOu;
}
goto ty7qG;
l25kL:
$this->trigger_events([
"post_update_user",
"post_update_user_unsuccessful",
]);
goto nHUWP;
lu4ow:
$this->trigger_events("extra_where");
goto pogkY;
opwjQ:
fWrCn:
goto lu4ow;
p92PT:
if (!empty($data["password"])) {
goto lwPgV;
}
goto bQKPL;
MhwUg:
$this->db->trans_begin();
goto fvWvb;
jNPI5:
lwPgV:
goto nQdZ4;
Rfl7M:
IURtw:
goto opwjQ;
y_0Ok:
if (!($this->db->trans_status() === false)) {
goto VO5_a;
}
goto qf1uX;
iwXWN:
return false;
goto QkQ1f;
JvBAe:
kkLOu:
goto RO8WE;
FsLiq:
if (
!(
array_key_exists($this->identity_column, $data) ||
array_key_exists("password", $data) ||
array_key_exists("email", $data)
)
) {
goto fWrCn;
}
goto BOQgp;
wN963:
$this->db->trans_commit();
goto e84d_;
v5E_3:
$this->set_error(
"update_unsuccessful"
);
goto iwXWN;
qf1uX:
$this->db->trans_rollback();
goto qrSAe;
Hbvp3:
$user = $this->user($id)->row();
goto MhwUg;
QkQ1f:
m1ioW:
goto emyq8;
fvWvb:
if (
!(
array_key_exists($this->identity_column, $data) &&
$this->identity_check($data[$this->identity_column]) &&
$user->{$this->identity_column} !==
$data[$this->identity_column]
)
) {
goto m1ioW;
}
goto L5x7h;
nQdZ4:
$data["password"] = $this->hash_password(
$data["password"],
$user->{$this->identity_column}
);
goto fcOcq;
emyq8:
$data = $this->_filter_data(
$this->tables["users"],
$data
);
goto FsLiq;
u8x3k:
$this->trigger_events(
"pre_update_user"
);
goto Hbvp3;
BOQgp:
if (!array_key_exists("password", $data)) {
goto IURtw;
}
goto p92PT;
iVrM2:
VO5_a:
goto wN963;
R4CAp:
$this->trigger_events([
"post_update_user",
"post_update_user_unsuccessful",
]);
goto v5E_3;
MrHhS:
$this->set_message(
"update_successful"
);
goto kp0Wc;
bQKPL:
unset($data["password"]);
goto EmAUl;
kp0Wc:
return true;
goto C_zbK;
HQjMa:
$this->set_error(
"update_unsuccessful"
);
goto g86G2;
bkY4f:
$this->set_error(
"account_creation_duplicate_identity"
);
goto R4CAp;
pogkY:
$this->db->update($this->tables["users"], $data, [
"id" => $user->id,
]);
goto y_0Ok;
nHUWP:
$this->set_error(
"update_unsuccessful"
);
goto kYQjU;
qrSAe:
$this->trigger_events([
"post_update_user",
"post_update_user_unsuccessful",
]);
goto HQjMa;
kYQjU:
return false;
goto JvBAe;
ty7qG:
$this->db->trans_rollback();
goto l25kL;
e84d_:
$this->trigger_events([
"post_update_user",
"post_update_user_successful",
]);
goto MrHhS;
L5x7h:
$this->db->trans_rollback();
goto bkY4f;
RO8WE:
AX6sn:
goto Rfl7M;
g86G2:
return false;
goto iVrM2;
EmAUl:
goto AX6sn;
goto jNPI5;
C_zbK:
}
public function delete_user($id)
{
goto NQGfJ;
gNt3k:
gLuRf:
goto Tc2OT;
Tc2OT:
$this->db->trans_commit();
goto OYyaw;
ErJnY:
$this->set_error(
"delete_unsuccessful"
);
goto dYoMY;
DFumR:
return true;
goto RuiYY;
cv6yZ:
$this->trigger_events([
"post_delete_user",
"post_delete_user_unsuccessful",
]);
goto ErJnY;
xNcO4:
$this->remove_from_group(null, $id);
goto AHGT6;
Tt36I:
$this->set_message(
"delete_successful"
);
goto DFumR;
Ie2dp:
$this->db->trans_rollback();
goto cv6yZ;
NQGfJ:
$this->trigger_events(
"pre_delete_user"
);
goto a04Ls;
OYyaw:
$this->trigger_events([
"post_delete_user",
"post_delete_user_successful",
]);
goto Tt36I;
ZcpOG:
if (!($this->db->trans_status() === false)) {
goto gLuRf;
}
goto Ie2dp;
a04Ls:
$this->db->trans_begin();
goto xNcO4;
dYoMY:
return false;
goto gNt3k;
AHGT6:
$this->db->delete($this->tables["users"], [
"id" => $id,
]);
goto ZcpOG;
RuiYY:
}
public function update_last_login($id)
{
goto ERtPd;
TVt_u:
return $this->db->affected_rows() == 1;
goto hi9my;
LCuGc:
$this->db->update(
$this->tables["users"],
["last_login" => time()],
["id" => $id]
);
goto TVt_u;
ERtPd:
$this->trigger_events(
"update_last_login"
);
goto Q3dtO;
Q3dtO:
$this->load->helper("date");
goto k_XQT;
k_XQT:
$this->trigger_events("extra_where");
goto LCuGc;
hi9my:
}
public function set_lang($lang = "en")
{
goto KEfrj;
TvmBe:
$expire = $this->config->item(
"user_expire",
"ion_auth"
);
goto Wzndx;
WB1a_:
$expire = self::MAX_COOKIE_LIFETIME;
goto rINs2;
VtR8a:
return true;
goto GtYgJ;
cKjHj:
viDbY:
goto WB1a_;
Wzndx:
goto lwwbB;
goto cKjHj;
A98LS:
if (
$this->config->item(
"user_expire",
"ion_auth"
) === 0
) {
goto viDbY;
}
goto TvmBe;
JtiwX:
set_cookie([
"name" => "lang_code",
"value" => $lang,
"expire" => $expire,
]);
goto VtR8a;
KEfrj:
$this->trigger_events("set_lang");
goto A98LS;
rINs2:
lwwbB:
goto JtiwX;
GtYgJ:
}
public function set_session($user)
{
goto fCSKw;
a6M63:
return true;
goto zQMl8;
Th8Hi:
$this->trigger_events(
"post_set_session"
);
goto a6M63;
fCSKw:
$this->trigger_events(
"pre_set_session"
);
goto pvVCR;
f5AeU:
$this->session->set_userdata($session_data);
goto Th8Hi;
pvVCR:
$session_data = [
"identity" =>
$user->{$this->identity_column},
$this->identity_column => $user->{$this->identity_column},
"email" => $user->email,
"user_id" => $user->id,
"old_last_login" =>
$user->last_login,
"last_check" => time(),
];
goto f5AeU;
zQMl8:
}
public function remember_user($identity)
{
goto eEqmg;
MGhcY:
if ($identity) {
goto i8zqk;
}
goto UU2o9;
RuLYk:
$this->trigger_events([
"post_remember_user",
"remember_user_unsuccessful",
]);
goto g77iO;
G0C8J:
JWNSF:
goto BcusD;
DX1sH:
set_cookie([
"name" => $this->config->item(
"remember_cookie_name",
"ion_auth"
),
"value" => $token->user_code,
"expire" => $expire,
]);
goto Jdyg4;
ucYz3:
Vun7M:
goto DX1sH;
eEqmg:
$this->trigger_events(
"pre_remember_user"
);
goto MGhcY;
fnvc4:
if (!($this->db->affected_rows() > -1)) {
goto JWNSF;
}
goto xZYEJ;
UU2o9:
return false;
goto nH5Vb;
ymzPj:
$expire = $this->config->item(
"user_expire",
"ion_auth"
);
goto gx83f;
g77iO:
return false;
goto f9akc;
nH5Vb:
i8zqk:
goto VdY7N;
BcusD:
S1BeJ:
goto RuLYk;
VdY7N:
$token = $this->_generate_selector_validator_couple();
goto pyU5Q;
JAZHz:
XfPYb:
goto M2dSf;
M2dSf:
$expire = self::MAX_COOKIE_LIFETIME;
goto ucYz3;
gx83f:
goto Vun7M;
goto JAZHz;
xZYEJ:
if (
$this->config->item(
"user_expire",
"ion_auth"
) === 0
) {
goto XfPYb;
}
goto ymzPj;
pyU5Q:
if (!$token->validator_hashed) {
goto S1BeJ;
}
goto mEYNI;
mEYNI:
$this->db->update(
$this->tables["users"],
[
"remember_selector" =>
$token->selector,
"remember_code" =>
$token->validator_hashed,
],
[$this->identity_column => $identity]
);
goto fnvc4;
Jdyg4:
$this->trigger_events([
"post_remember_user",
"remember_user_successful",
]);
goto HFXMo;
HFXMo:
return true;
goto G0C8J;
f9akc:
}
public function login_remembered_user()
{
goto hWI3X;
j0aZF:
l9YcC:
goto kAmBt;
FzLTM:
g6q9r:
goto YFqLX;
f95FJ:
$this->trigger_events([
"post_login_remembered_user",
"post_login_remembered_user_unsuccessful",
]);
goto boQFJ;
oNE8b:
return false;
goto Tg682;
vRm0A:
$this->trigger_events("extra_where");
goto Kt4w_;
boQFJ:
return false;
goto nlPc_;
FMEVG:
$this->clear_forgotten_password_code($identity);
goto X4jXc;
By3Kt:
$this->update_last_login($user->id);
goto tnae9;
tnae9:
$this->set_session($user);
goto FMEVG;
X4jXc:
if (
!$this->config->item(
"user_extend_on_login",
"ion_auth"
)
) {
goto g6q9r;
}
goto o3eKn;
o3eKn:
$this->remember_user($identity);
goto FzLTM;
Tg682:
oWNm3:
goto vRm0A;
kAmBt:
delete_cookie(
$this->config->item(
"remember_cookie_name",
"ion_auth"
)
);
goto f95FJ;
YFqLX:
$this->session->sess_regenerate(false);
goto fEy4X;
BL1MQ:
$user = $query->row();
goto xmdut;
h3sq1:
$token = $this->_retrieve_selector_validator_couple($remember_cookie);
goto lYBM3;
vyZpO:
return true;
goto rjfWT;
xmdut:
$identity = $user->{$this->identity_column};
goto waNEk;
m7kvo:
$this->trigger_events([
"post_login_remembered_user",
"post_login_remembered_user_unsuccessful",
]);
goto oNE8b;
rjfWT:
idMH6:
goto j0aZF;
rG26K:
$remember_cookie = get_cookie(
$this->config->item(
"remember_cookie_name",
"ion_auth"
)
);
goto h3sq1;
fEy4X:
$this->trigger_events([
"post_login_remembered_user",
"post_login_remembered_user_successful",
]);
goto vyZpO;
lYBM3:
if (!($token === false)) {
goto oWNm3;
}
goto m7kvo;
waNEk:
if (
!$this->verify_password(
$token->validator,
$user->remember_code,
$identity
)
) {
goto idMH6;
}
goto By3Kt;
qF581:
if (!($query->num_rows() === 1)) {
goto l9YcC;
}
goto BL1MQ;
hWI3X:
$this->trigger_events(
"pre_login_remembered_user"
);
goto rG26K;
Kt4w_:
$query = $this->db
->select(
$this->identity_column .
", id, email, remember_code, last_login"
)
->where(
"remember_selector",
$token->selector
)
->where("active", 1)
->limit(1)
->get($this->tables["users"]);
goto qF581;
nlPc_:
}
public function create_group(
$group_name = false,
$group_description = "",
$additional_data = []
) {
goto bdMNc;
rn3E2:
$this->set_error(
"group_already_exists"
);
goto y6ftk;
I7TFM:
$group_id = $this->db->insert_id(
$this->tables["groups"] .
"_id_seq"
);
goto NWA6g;
u_mj0:
$this->set_error(
"group_name_required"
);
goto Kd2Q1;
rp2h_:
g8Iq8:
goto vU0NJ;
Kd2Q1:
return false;
goto RDoUk;
RDoUk:
HfG_s:
goto QbRHd;
zWnbg:
$this->trigger_events(
"extra_group_set"
);
goto cZLJV;
vU0NJ:
$data = [
"name" => $group_name,
"description" => $group_description,
];
goto VlE3k;
QbRHd:
$existing_group = $this->db
->get_where($this->tables["groups"], [
"name" => $group_name,
])
->num_rows();
goto j6YL9;
y6ftk:
return false;
goto rp2h_;
VlE3k:
if (empty($additional_data)) {
goto YvD4D;
}
goto auZfs;
NWA6g:
$this->set_message(
"group_creation_successful"
);
goto D9j0U;
cZLJV:
$this->db->insert($this->tables["groups"], $data);
goto I7TFM;
auZfs:
$data = array_merge(
$this->_filter_data(
$this->tables["groups"],
$additional_data
),
$data
);
goto epZID;
j6YL9:
if (!($existing_group !== 0)) {
goto g8Iq8;
}
goto rn3E2;
epZID:
YvD4D:
goto zWnbg;
D9j0U:
return $group_id;
goto V2MyJ;
bdMNc:
if ($group_name) {
goto HfG_s;
}
goto u_mj0;
V2MyJ:
}
public function update_group(
$group_id = false,
$group_name = false,
$additional_data = []
) {
goto AL3LN;
tXMNU:
$data = array_merge(
$this->_filter_data(
$this->tables["groups"],
$additional_data
),
$data
);
goto SoLYP;
SoLYP:
e9CVL:
goto k13rq;
wwakJ:
YAOjC:
goto Ng_KO;
sXFWj:
if (empty($group_name)) {
goto YAOjC;
}
goto Jkze0;
Ng_KO:
$group = $this->db
->get_where($this->tables["groups"], [
"id" => $group_id,
])
->row();
goto nHcZ1;
eRg1W:
if (!(isset($existing_group->id) && $existing_group->id != $group_id)) {
goto rDt_P;
}
goto LRf0H;
WKlG8:
$data["name"] = $group_name;
goto wwakJ;
k13rq:
$this->db->update($this->tables["groups"], $data, [
"id" => $group_id,
]);
goto jr7yN;
lHtZL:
return false;
goto eVuiA;
Jkze0:
$existing_group = $this->db
->get_where($this->tables["groups"], [
"name" => $group_name,
])
->row();
goto eRg1W;
AL3LN:
if (!empty($group_id)) {
goto T4iGt;
}
goto lHtZL;
r2WBa:
if (empty($additional_data)) {
goto e9CVL;
}
goto tXMNU;
LRf0H:
$this->set_error(
"group_already_exists"
);
goto YvTgB;
nHcZ1:
if (
!(
$this->config->item(
"admin_group",
"ion_auth"
) === $group->name && $group_name !== $group->name
)
) {
goto Yt4rB;
}
goto anrbk;
anrbk:
$this->set_error(
"group_name_admin_not_alter"
);
goto x4AuM;
Ivi7i:
rDt_P:
goto WKlG8;
YvTgB:
return false;
goto Ivi7i;
jr7yN:
$this->set_message(
"group_update_successful"
);
goto usGY3;
eVuiA:
T4iGt:
goto iCjJV;
jYGyx:
Yt4rB:
goto r2WBa;
iCjJV:
$data = [];
goto sXFWj;
x4AuM:
return false;
goto jYGyx;
usGY3:
return true;
goto mjUTM;
mjUTM:
}
public function delete_group($group_id = false)
{
goto KRFaE;
rcO9m:
$this->db->trans_commit();
goto GuzJI;
nouEk:
$this->set_message(
"group_delete_successful"
);
goto KawT0;
nk6K0:
fVetW:
goto rcO9m;
jyqGT:
$this->set_error(
"group_delete_unsuccessful"
);
goto mQCj3;
kI2Cw:
if (!($this->db->trans_status() === false)) {
goto fVetW;
}
goto ukV4f;
KNEed:
IPRhu:
goto ogxQ3;
qnZEH:
$this->db->trans_begin();
goto ndqEm;
ogxQ3:
$this->trigger_events(
"pre_delete_group"
);
goto qnZEH;
vDSSS:
$this->trigger_events([
"post_delete_group",
"post_delete_group_notallowed",
]);
goto FHD3G;
b3SAt:
$this->db->delete($this->tables["groups"], [
"id" => $group_id,
]);
goto kI2Cw;
FgHKP:
return false;
goto KNEed;
GuzJI:
$this->trigger_events([
"post_delete_group",
"post_delete_group_successful",
]);
goto nouEk;
ndqEm:
$this->db->delete(
$this->tables["users_groups"],
[$this->join["groups"] => $group_id]
);
goto b3SAt;
ukV4f:
$this->db->trans_rollback();
goto QGn1z;
SMiUK:
return false;
goto ND3wb;
ND3wb:
xOv9B:
goto h7PLo;
mQCj3:
return false;
goto nk6K0;
QGn1z:
$this->trigger_events([
"post_delete_group",
"post_delete_group_unsuccessful",
]);
goto jyqGT;
KawT0:
return true;
goto ATQ7S;
FHD3G:
$this->set_error(
"group_delete_notallowed"
);
goto FgHKP;
KRFaE:
if (!(!$group_id || empty($group_id))) {
goto xOv9B;
}
goto SMiUK;
M_IQZ:
if (
!(
$group->name ==
$this->config->item(
"admin_group",
"ion_auth"
)
)
) {
goto IPRhu;
}
goto vDSSS;
h7PLo:
$group = $this->group($group_id)->row();
goto M_IQZ;
ATQ7S:
}
public function set_hook($event, $name, $class, $method, $arguments)
{
goto Xuh4D;
SAaEc:
$this->_ion_hooks->{$event}[$name]->method = $method;
goto OdC2_;
OdC2_:
$this->_ion_hooks->{$event}[$name]->arguments = $arguments;
goto b7qX8;
rYmae:
$this->_ion_hooks->{$event}[$name]->class = $class;
goto SAaEc;
Xuh4D:
$this->_ion_hooks->{$event}[$name] = new stdClass();
goto rYmae;
b7qX8:
}
public function remove_hook($event, $name)
{
goto Rpmxt;
cW2cd:
unset($this->_ion_hooks->{$event}[$name]);
goto ei0Dm;
ei0Dm:
pFp9t:
goto ge8zq;
Rpmxt:
if (!isset($this->_ion_hooks->{$event}[$name])) {
goto pFp9t;
}
goto cW2cd;
ge8zq:
}
public function remove_hooks($event)
{
goto yHP1S;
t4lNn:
unset($this->_ion_hooks->{$event});
goto EjEB4;
EjEB4:
kQck3:
goto x6oVn;
yHP1S:
if (!isset($this->_ion_hooks->{$event})) {
goto kQck3;
}
goto t4lNn;
x6oVn:
}
protected function _call_hook($event, $name)
{
goto Y5e21;
oKvRH:
WNeLA:
goto ufzU3;
ufzU3:
return false;
goto Pbxsb;
Gp3Ae:
$hook = $this->_ion_hooks->{$event}[$name];
goto d3B_z;
Y5e21:
if (
!(
isset($this->_ion_hooks->{$event}[$name]) &&
method_exists(
$this->_ion_hooks->{$event}[$name]->class,
$this->_ion_hooks->{$event}[$name]->method
)
)
) {
goto WNeLA;
}
goto Gp3Ae;
d3B_z:
return call_user_func_array(
[$hook->class, $hook->method],
$hook->arguments
);
goto oKvRH;
Pbxsb:
}
public function trigger_events($events)
{
goto tnxGr;
Eo5Z3:
oEvnm:
goto yqNgd;
REQDN:
DHTZc:
goto oCTmD;
PPM5E:
WNU9x:
goto REQDN;
oCTmD:
goto CKBpo;
goto TUITn;
tfbpX:
foreach ($events as $event) {
$this->trigger_events($event);
HPbvF:
}
goto Eo5Z3;
hMU5J:
foreach ($this->_ion_hooks->{$events} as $name => $hook) {
$this->_call_hook($events, $name);
vzaeZ:
}
goto PPM5E;
tnxGr:
if (is_array($events) && !empty($events)) {
goto dr9bN;
}
goto Epcoc;
Epcoc:
if (
!(
isset($this->_ion_hooks->{$events}) &&
!empty($this->_ion_hooks->{$events})
)
) {
goto DHTZc;
}
goto hMU5J;
TUITn:
dr9bN:
goto tfbpX;
yqNgd:
CKBpo:
goto Z05sG;
Z05sG:
}
public function set_message_delimiters($start_delimiter, $end_delimiter)
{
goto fZqkV;
LPZlu:
$this->message_end_delimiter = $end_delimiter;
goto KTHKK;
KTHKK:
return true;
goto h36I6;
fZqkV:
$this->message_start_delimiter = $start_delimiter;
goto LPZlu;
h36I6:
}
public function set_error_delimiters($start_delimiter, $end_delimiter)
{
goto X2ZoU;
x50gn:
return true;
goto ZhFW9;
X2ZoU:
$this->error_start_delimiter = $start_delimiter;
goto iv3ff;
iv3ff:
$this->error_end_delimiter = $end_delimiter;
goto x50gn;
ZhFW9:
}
public function set_message($message)
{
$this->messages[] = $message;
return $message;
}
public function messages()
{
goto As2JM;
L1H3A:
foreach ($this->messages as $message) {
goto sz7c1;
sz7c1:
$messageLang = $this->lang->line($message)
? $this->lang->line($message)
: "##" . $message . "##";
goto s1Abk;
s1Abk:
$_output .=
$this->message_start_delimiter .
$messageLang .
$this->message_end_delimiter;
goto E9UCK;
E9UCK:
K6BCP:
goto pbqww;
pbqww:
}
goto Upz87;
HkUqS:
return $_output;
goto rteAS;
As2JM:
$_output = "";
goto L1H3A;
Upz87:
dTRbR:
goto HkUqS;
rteAS:
}
public function messages_array($langify = true)
{
goto D6pW7;
YPJ0A:
goto sybWl;
goto w0h55;
TjLyO:
MYna0:
goto L94zz;
D6pW7:
if ($langify) {
goto ddOUo;
}
goto v4yKQ;
U9UNa:
foreach ($this->messages as $message) {
goto Y1rC3;
Y1rC3:
$messageLang = $this->lang->line($message)
? $this->lang->line($message)
: "##" . $message . "##";
goto mO33g;
mO33g:
$_output[] =
$this->message_start_delimiter .
$messageLang .
$this->message_end_delimiter;
goto hsWHs;
hsWHs:
e9TUs:
goto MZ9Z0;
MZ9Z0:
}
goto TjLyO;
NjFri:
$_output = [];
goto U9UNa;
v4yKQ:
return $this->messages;
goto YPJ0A;
w0h55:
ddOUo:
goto NjFri;
L94zz:
return $_output;
goto W6iN0;
W6iN0:
sybWl:
goto AFl2M;
AFl2M:
}
public function clear_messages()
{
$this->messages = [];
return true;
}
public function set_error($error)
{
$this->errors[] = $error;
return $error;
}
public function errors()
{
goto SnqLz;
UTkKx:
return $_output;
goto ddoQE;
q2Jtt:
foreach ($this->errors as $error) {
goto Q8xDQ;
Q8xDQ:
$errorLang = $this->lang->line($error)
? $this->lang->line($error)
: "##" . $error . "##";
goto GO0nP;
GO0nP:
$_output .=
$this->error_start_delimiter .
$errorLang .
$this->error_end_delimiter;
goto Ux5NH;
Ux5NH:
oGzYz:
goto MVC1G;
MVC1G:
}
goto XejPh;
SnqLz:
$_output = "";
goto q2Jtt;
XejPh:
Z8_jH:
goto UTkKx;
ddoQE:
}
public function errors_array($langify = true)
{
goto EMsXI;
cR12T:
$_output = [];
goto UKn8z;
IevpU:
CWgT1:
goto XyUHa;
UKn8z:
foreach ($this->errors as $error) {
goto uWkRa;
uWkRa:
$errorLang = $this->lang->line($error)
? $this->lang->line($error)
: "##" . $error . "##";
goto p5ywf;
MeV7T:
JEudu:
goto vueI0;
p5ywf:
$_output[] =
$this->error_start_delimiter .
$errorLang .
$this->error_end_delimiter;
goto MeV7T;
vueI0:
}
goto IevpU;
XyUHa:
return $_output;
goto I3YSR;
P0kUn:
return $this->errors;
goto mBjQd;
mBjQd:
goto TC8qM;
goto ReuUq;
ReuUq:
plgty:
goto cR12T;
I3YSR:
TC8qM:
goto ohpJH;
EMsXI:
if ($langify) {
goto plgty;
}
goto P0kUn;
ohpJH:
}
public function clear_errors()
{
$this->errors = [];
return true;
}
protected function _set_password_db($identity, $password)
{
goto kAAnY;
kAAnY:
$hash = $this->hash_password($password, $identity);
goto udYvy;
RjQ0r:
T2qc6:
goto pgZjN;
Mbg5K:
$this->db->update($this->tables["users"], $data, [
$this->identity_column => $identity,
]);
goto Au_ou;
pgZjN:
$data = [
"password" => $hash,
"remember_code" => null,
"forgotten_password_code" => null,
"forgotten_password_time" => null,
];
goto ywVI5;
ywVI5:
$this->trigger_events("extra_where");
goto Mbg5K;
Z8S0n:
return false;
goto RjQ0r;
Au_ou:
return $this->db->affected_rows() == 1;
goto pPpUy;
udYvy:
if (!($hash === false)) {
goto T2qc6;
}
goto Z8S0n;
pPpUy:
}
protected function _filter_data($table, $data)
{
goto nuYBY;
nuYBY:
$filtered_data = [];
goto XnrVM;
XnrVM:
$columns = $this->db->list_fields($table);
goto cJv9o;
daOTy:
return $filtered_data;
goto nJiaP;
cJv9o:
if (!is_array($data)) {
goto YfGuE;
}
goto qKOHu;
Wydbb:
w7tG1:
goto A4Jx3;
qKOHu:
foreach ($columns as $column) {
goto KyaJb;
KyaJb:
if (!array_key_exists($column, $data)) {
goto xrXnh;
}
goto L_6Jt;
L_6Jt:
$filtered_data[$column] = $data[$column];
goto r5h5R;
O3B6j:
gITJU:
goto SXGI0;
r5h5R:
xrXnh:
goto O3B6j;
SXGI0:
}
goto Wydbb;
A4Jx3:
YfGuE:
goto daOTy;
nJiaP:
}
protected function _random_token($result_length = 32)
{
goto hfnb1;
ddAZL:
return bin2hex(
mcrypt_create_iv($result_length / 2, MCRYPT_DEV_URANDOM)
);
goto YlCVA;
boFkq:
r3buZ:
goto YXw0p;
RtTMq:
if (
!function_exists(
"mcrypt_create_iv"
)
) {
goto LGqMz;
}
goto ddAZL;
W91Vm:
$result_length = 32;
goto boFkq;
ajP9K:
if (
!function_exists(
"openssl_random_pseudo_bytes"
)
) {
goto JNrS2;
}
goto rS6U6;
rS6U6:
return bin2hex(openssl_random_pseudo_bytes($result_length / 2));
goto ntCqb;
hfnb1:
if (!(!isset($result_length) || intval($result_length) <= 8)) {
goto r3buZ;
}
goto W91Vm;
HoIvO:
return bin2hex(random_bytes($result_length / 2));
goto qqRdi;
YXw0p:
if (
!function_exists("random_bytes")
) {
goto W2oBr;
}
goto HoIvO;
wXojB:
return false;
goto krhgN;
ntCqb:
JNrS2:
goto wXojB;
qqRdi:
W2oBr:
goto RtTMq;
YlCVA:
LGqMz:
goto ajP9K;
krhgN:
}
protected function _get_hash_parameters($identity = null)
{
goto kbF0S;
vDLf4:
switch ($this->hash_method) {
case "bcrypt":
$params = [
"cost" => $is_admin
? $this->config->item(
"bcrypt_admin_cost",
"ion_auth"
)
: $this->config->item(
"bcrypt_default_cost",
"ion_auth"
),
];
goto uc25u;
case "argon2":
$params = $is_admin
? $this->config->item(
"argon2_admin_params",
"ion_auth"
)
: $this->config->item(
"argon2_default_params",
"ion_auth"
);
goto uc25u;
default:
}
goto ufejx;
JSYYy:
wOYTl:
goto HeZ6a;
gOqyY:
$is_admin = true;
goto gkmRo;
f0x2o:
if (
!(
$user_id &&
$this->in_group(
$this->config->item(
"admin_group",
"ion_auth"
),
$user_id
)
)
) {
goto EKbX9;
}
goto gOqyY;
m91Bs:
if (!$identity) {
goto wOYTl;
}
goto nSf5O;
kbF0S:
$is_admin = false;
goto m91Bs;
Biwuk:
uc25u:
goto DujPI;
nSf5O:
$user_id = $this->get_user_id_from_identity($identity);
goto f0x2o;
gkmRo:
EKbX9:
goto JSYYy;
HeZ6a:
$params = false;
goto vDLf4;
ufejx:
CZ363:
goto Biwuk;
DujPI:
return $params;
goto Tu2B5;
Tu2B5:
}
protected function _get_hash_algo()
{
goto Rfwll;
rkD9S:
return $algo;
goto AI5m2;
Rfwll:
$algo = false;
goto t4br2;
Fq2Hm:
ilWhc:
goto giY5J;
t4br2:
switch ($this->hash_method) {
case "bcrypt":
$algo = PASSWORD_BCRYPT;
goto LNlHQ;
case "argon2":
$algo = PASSWORD_ARGON2I;
goto LNlHQ;
default:
}
goto Fq2Hm;
giY5J:
LNlHQ:
goto rkD9S;
AI5m2:
}
protected function _generate_selector_validator_couple(
$selector_size = 40,
$validator_size = 128
) {
goto ZVqDy;
ZVqDy:
$selector = $this->_random_token($selector_size);
goto oN9IR;
YtQvV:
$validator_hashed = $this->hash_password($validator);
goto Xd0GL;
nLW9P:
return (object) [
"selector" => $selector,
"validator_hashed" => $validator_hashed,
"user_code" => $user_code,
];
goto UWdhY;
Xd0GL:
$user_code = "{$selector}.{$validator}";
goto nLW9P;
oN9IR:
$validator = $this->_random_token($validator_size);
goto YtQvV;
UWdhY:
}
protected function _retrieve_selector_validator_couple($user_code)
{
goto Cg_iz;
Cg_iz:
if (!$user_code) {
goto C0aTJ;
}
goto mhXF7;
ymCaQ:
if (!(count($tokens) === 2)) {
goto Rs2Y0;
}
goto Vgu9y;
Vgu9y:
return (object) [
"selector" => $tokens[0],
"validator" => $tokens[1],
];
goto IQG8B;
mhXF7:
$tokens = explode(".", $user_code);
goto ymCaQ;
hpebr:
C0aTJ:
goto pI0Rq;
IQG8B:
Rs2Y0:
goto hpebr;
pI0Rq:
return false;
goto g7d6i;
g7d6i:
}
protected function _password_verify_sha1_legacy(
$identity,
$password,
$hashed_password_db
) {
goto Y_a8F;
IjYM5:
HWas_:
goto JVH6c;
VH_so:
if ($salt_length) {
goto XZ4NE;
}
goto bXLHw;
r8aw1:
goto HWas_;
goto UkaPq;
zNqJ3:
if ($result) {
goto y3WEo;
}
goto tjlIh;
bq1ve:
g2LyH:
goto Lx1WX;
Y_a8F:
$this->trigger_events(
"pre_sha1_password_migration"
);
goto mpybt;
jTxLI:
rWzQn:
goto opfSX;
t7337:
$query = $this->db
->select("salt")
->where($this->identity_column, $identity)
->limit(1)
->get($this->tables["users"]);
goto dw_pZ;
Hh8LT:
goto r1jEo;
goto WHdHH;
Mf4vM:
return $result;
goto jTxLI;
mpybt:
if (
$this->config->item(
"store_salt",
"ion_auth"
)
) {
goto pV_8w;
}
goto Nd076;
ydnRF:
$this->trigger_events([
"post_sha1_password_migration",
"post_sha1_password_migration_successful",
]);
goto MqVFV;
MqVFV:
r1jEo:
goto Mf4vM;
Lx1WX:
$result = $this->_set_password_db($identity, $password);
goto zNqJ3;
bXLHw:
$this->trigger_events([
"post_sha1_password_migration",
"post_sha1_password_migration_unsuccessful",
]);
goto Z7ZQ1;
dJJw0:
$this->trigger_events([
"post_sha1_password_migration",
"post_sha1_password_migration_unsuccessful",
]);
goto vFbmr;
LQkTd:
$hashed_password = sha1($password . $salt_db->salt);
goto IjYM5;
dw_pZ:
$salt_db = $query->row();
goto ucz6Q;
vcFW2:
$salt = substr($hashed_password_db, 0, $salt_length);
goto OYbC7;
tjlIh:
$this->trigger_events([
"post_sha1_password_migration",
"post_sha1_password_migration_unsuccessful",
]);
goto Hh8LT;
Z7ZQ1:
return false;
goto Rqkxc;
vFbmr:
return false;
goto qwqXc;
JVH6c:
if ($hashed_password === $hashed_password_db) {
goto g2LyH;
}
goto dJJw0;
UkaPq:
pV_8w:
goto t7337;
Rqkxc:
XZ4NE:
goto vcFW2;
dVyub:
$this->trigger_events([
"post_sha1_password_migration",
"post_sha1_password_migration_unsuccessful",
]);
goto vfujE;
nbM2w:
OufCS:
goto LQkTd;
Nd076:
$salt_length = $this->config->item(
"salt_length",
"ion_auth"
);
goto VH_so;
OYbC7:
$hashed_password =
$salt . substr(sha1($salt . $password), 0, -$salt_length);
goto r8aw1;
ucz6Q:
if (!($query->num_rows() !== 1)) {
goto OufCS;
}
goto dVyub;
vfujE:
return false;
goto nbM2w;
WHdHH:
y3WEo:
goto ydnRF;
qwqXc:
goto rWzQn;
goto bq1ve;
opfSX:
}
}
?>
Did this file decode correctly?
Original Code
<?php
/* ________________________________________
| GarudaCBT |
| https://github.com/garudacbt/cbt |
|________________________________________|
*/
defined("\102\101\123\105\120\x41\x54\x48") or
exit(
"\x4e\x6f\40\144\151\162\x65\143\164\40\163\x63\162\x69\160\x74\x20\141\143\143\145\x73\163\x20\x61\154\154\x6f\x77\x65\x64"
);
class Ion_auth_model extends CI_Model
{
const MAX_COOKIE_LIFETIME = 63072000;
const MAX_PASSWORD_SIZE_BYTES = 4096;
public $tables = [];
public $activation_code;
public $new_password;
public $identity;
public $_ion_where = [];
public $_ion_select = [];
public $_ion_like = [];
public $_ion_limit = null;
public $_ion_offset = null;
public $_ion_order_by = null;
public $_ion_order = null;
protected $_ion_hooks;
protected $response = null;
protected $messages;
protected $errors;
protected $error_start_delimiter;
protected $error_end_delimiter;
public $_cache_user_in_group = [];
protected $_cache_groups = [];
protected $db;
private $identity_column;
private $join;
private $hash_method;
private $message_start_delimiter;
private $message_end_delimiter;
public function __construct()
{
goto YMT81;
T0oJX:
KHmMf:
goto TIQeh;
f1Z0y:
$this->error_start_delimiter = $error_prefix->getValue(
$this->form_validation
);
goto nsQbv;
H8ckW:
sMp9x:
goto nSN3_;
WMbPc:
$this->identity_column = $this->config->item(
"\151\144\145\x6e\164\x69\x74\x79",
"\x69\157\156\x5f\x61\x75\x74\x68"
);
goto hU8E3;
LZ_Fg:
goto H9wzw;
goto T0oJX;
Vpkff:
$this->message_end_delimiter = $this->error_end_delimiter;
goto LNct1;
Nw2bv:
$this->messages = [];
goto HudFR;
MIRbC:
$error_prefix = $form_validation_class->getProperty(
"\137\145\162\x72\x6f\x72\x5f\160\162\x65\x66\151\x78"
);
goto GOURm;
t4qGA:
$this->tables = $this->config->item(
"\x74\x61\x62\x6c\x65\x73",
"\151\x6f\156\x5f\141\x75\164\x68"
);
goto WMbPc;
YMT81:
$this->config->load("\151\157\x6e\137\141\165\x74\x68", true);
goto w49O8;
gkqp3:
$this->error_end_delimiter = $error_suffix->getValue(
$this->form_validation
);
goto Vpkff;
N7XX6:
$this->_ion_hooks = new stdClass();
goto NSDAs;
w49O8:
$this->load->helper("\x63\157\x6f\153\151\145");
goto QPjGB;
nSN3_:
$this->load->library(
"\x66\x6f\x72\x6d\x5f\x76\141\x6c\x69\144\141\164\x69\x6f\156"
);
goto ELS2v;
HudFR:
$this->errors = [];
goto Q6zYS;
VdH_3:
$this->error_start_delimiter = $this->config->item(
"\145\x72\162\x6f\x72\137\x73\164\x61\162\x74\137\x64\x65\154\x69\x6d\151\164\145\162",
"\151\157\x6e\137\x61\165\164\150"
);
goto J1WbU;
QPjGB:
$this->load->helper("\144\141\164\x65");
goto QNhzs;
Tcslx:
$error_suffix->setAccessible(true);
goto gkqp3;
nsQbv:
$this->message_start_delimiter = $this->error_start_delimiter;
goto rAeFD;
GOURm:
$error_prefix->setAccessible(true);
goto f1Z0y;
BxyOR:
H9wzw:
goto t4qGA;
LNct1:
gii_o:
goto N7XX6;
GYT0h:
if (
$delimiters_source ===
"\x66\157\x72\155\137\166\141\x6c\x69\x64\x61\x74\151\157\x6e"
) {
goto sMp9x;
}
goto wp910;
hU8E3:
$this->join = $this->config->item(
"\x6a\157\151\x6e",
"\151\157\x6e\137\141\165\x74\x68"
);
goto Awi0P;
NSDAs:
$this->trigger_events(
"\155\157\144\145\154\137\143\157\x6e\x73\164\x72\x75\x63\x74\x6f\x72"
);
goto A2Sfb;
S8fe7:
goto gii_o;
goto H8ckW;
Q6zYS:
$delimiters_source = $this->config->item(
"\x64\145\154\151\x6d\151\164\145\x72\x73\x5f\163\x6f\x75\x72\x63\x65",
"\x69\x6f\156\x5f\x61\x75\x74\150"
);
goto GYT0h;
oNuRR:
$this->message_end_delimiter = $this->config->item(
"\x6d\145\163\163\x61\x67\x65\137\x65\156\x64\x5f\144\145\x6c\151\x6d\x69\164\x65\x72",
"\x69\x6f\x6e\x5f\x61\165\x74\x68"
);
goto VdH_3;
QNhzs:
$this->lang->load("\151\157\x6e\x5f\141\165\164\150");
goto s1ozu;
Eczx2:
$this->db = $CI->db;
goto BxyOR;
Awi0P:
$this->hash_method = $this->config->item(
"\150\x61\163\x68\x5f\155\145\164\x68\157\x64",
"\151\x6f\x6e\x5f\x61\165\164\x68"
);
goto Nw2bv;
J1WbU:
$this->error_end_delimiter = $this->config->item(
"\145\x72\x72\x6f\x72\x5f\x65\156\x64\137\144\x65\154\151\155\x69\164\x65\162",
"\x69\x6f\156\x5f\141\165\x74\x68"
);
goto S8fe7;
s1ozu:
$group_name = $this->config->item(
"\144\x61\x74\141\142\141\163\145\137\147\x72\157\x75\160\x5f\x6e\x61\155\x65",
"\151\x6f\x6e\x5f\x61\165\x74\x68"
);
goto S4_SW;
TIQeh:
$CI = &get_instance();
goto Eczx2;
S4_SW:
if (empty($group_name)) {
goto KHmMf;
}
goto u_onv;
u_onv:
$this->db = $this->load->database($group_name, true, true);
goto LZ_Fg;
ELS2v:
$form_validation_class = new ReflectionClass(
"\x43\111\137\x46\157\x72\x6d\137\166\x61\154\151\x64\x61\164\151\157\x6e"
);
goto MIRbC;
rAeFD:
$error_suffix = $form_validation_class->getProperty(
"\137\145\162\x72\x6f\162\x5f\x73\165\x66\x66\151\x78"
);
goto Tcslx;
wp910:
$this->message_start_delimiter = $this->config->item(
"\155\145\163\x73\141\147\145\137\x73\164\x61\x72\x74\x5f\144\x65\154\151\x6d\151\x74\145\162",
"\x69\157\156\x5f\141\x75\x74\150"
);
goto oNuRR;
A2Sfb:
}
public function db()
{
return $this->db;
}
public function hash_password($password, $identity = null)
{
goto E3vrU;
YJydC:
WVcRN:
goto TDCit;
pgUkI:
if (!($algo !== false && $params !== false)) {
goto WVcRN;
}
goto ZnndS;
e6pUX:
PbFQV:
goto Rfrm1;
ZnndS:
return password_hash($password, $algo, $params);
goto YJydC;
uLhJg:
$params = $this->_get_hash_parameters($identity);
goto pgUkI;
NAl3v:
return false;
goto e6pUX;
E3vrU:
if (
!(
empty($password) ||
strpos($password, "\x0") !== false ||
strlen($password) > self::MAX_PASSWORD_SIZE_BYTES
)
) {
goto PbFQV;
}
goto NAl3v;
TDCit:
return false;
goto b5f2y;
Rfrm1:
$algo = $this->_get_hash_algo();
goto uLhJg;
b5f2y:
}
public function verify_password(
$password,
$hash_password_db,
$identity = null
) {
goto b5RGg;
xKhg7:
return false;
goto brpKU;
CG20q:
return password_verify($password, $hash_password_db);
goto XktTQ;
RyIp1:
return $this->_password_verify_sha1_legacy(
$identity,
$password,
$hash_password_db
);
goto GxNbx;
b5RGg:
if (
!(
empty($password) ||
empty($hash_password_db) ||
strpos($password, "\0") !== false ||
strlen($password) > self::MAX_PASSWORD_SIZE_BYTES
)
) {
goto uJlpV;
}
goto xKhg7;
brpKU:
uJlpV:
goto UG0MZ;
UG0MZ:
if (strpos($hash_password_db, "\44") === 0) {
goto C4w1z;
}
goto RyIp1;
GxNbx:
goto xbBCo;
goto k556g;
k556g:
C4w1z:
goto CG20q;
XktTQ:
xbBCo:
goto gUFHY;
gUFHY:
}
public function rehash_password_if_needed($hash, $identity, $password)
{
goto Vd0Lg;
y01KM:
if ($this->_set_password_db($identity, $password)) {
goto sfe9_;
}
goto XPYNj;
rLSR3:
$this->trigger_events([
"\162\x65\x68\141\x73\x68\x5f\x70\141\x73\163\167\x6f\162\x64",
"\x72\x65\x68\141\163\150\x5f\160\141\163\x73\167\157\162\144\x5f\x73\165\x63\x63\145\x73\x73\x66\165\x6c",
]);
goto zTECh;
yOKVS:
goto Usl5p;
goto sHbbw;
gdJ0Z:
if (!password_needs_rehash($hash, $algo, $params)) {
goto iXzTC;
}
goto y01KM;
sHbbw:
sfe9_:
goto rLSR3;
Vd0Lg:
$algo = $this->_get_hash_algo();
goto QNua2;
zTECh:
Usl5p:
goto bqC1j;
bqC1j:
iXzTC:
goto Ansh4;
QNua2:
$params = $this->_get_hash_parameters($identity);
goto z10id;
Ansh4:
zsrKq:
goto gHRzR;
XPYNj:
$this->trigger_events([
"\162\145\150\x61\163\150\x5f\160\141\163\163\x77\157\162\x64",
"\162\x65\x68\x61\x73\150\137\x70\141\x73\x73\167\x6f\162\x64\137\x75\x6e\x73\x75\143\x63\145\163\x73\146\x75\154",
]);
goto yOKVS;
z10id:
if (!($algo !== false && $params !== false)) {
goto zsrKq;
}
goto gdJ0Z;
gHRzR:
}
public function get_user_by_activation_code($user_code)
{
goto FKaLU;
aoV5_:
$user = $this->where(
"\x61\x63\x74\x69\x76\x61\164\151\x6f\156\137\163\145\x6c\x65\x63\x74\x6f\162",
$token->selector
)
->users()
->row();
goto R4e4F;
plrZ_:
BGzey:
goto FUK2y;
FKaLU:
$token = $this->_retrieve_selector_validator_couple($user_code);
goto aoV5_;
r9bWA:
return false;
goto UyKtG;
R4e4F:
if (!$user) {
goto UhCbt;
}
goto ZoKlr;
n70Iu:
return $user;
goto plrZ_;
ZoKlr:
if (
!$this->verify_password($token->validator, $user->activation_code)
) {
goto BGzey;
}
goto n70Iu;
FUK2y:
UhCbt:
goto r9bWA;
UyKtG:
}
public function activate($id, $code = false)
{
goto osLrY;
f1q_m:
$this->trigger_events([
"\x70\157\x73\x74\x5f\141\x63\164\151\x76\141\x74\145",
"\x70\x6f\x73\x74\137\x61\143\x74\151\x76\141\164\x65\137\165\156\x73\x75\x63\143\x65\x73\x73\x66\165\154",
]);
goto CnATn;
ajN5T:
vzfxY:
goto f1q_m;
osLrY:
$this->trigger_events(
"\160\x72\x65\x5f\141\143\x74\x69\x76\141\x74\x65"
);
goto iBnkm;
zXlVp:
$this->trigger_events([
"\160\157\x73\164\137\141\x63\164\151\166\141\164\x65",
"\160\x6f\x73\164\137\x61\143\x74\x69\166\x61\164\x65\x5f\x73\x75\143\x63\x65\x73\163\x66\165\x6c",
]);
goto fb3kk;
AB4pV:
$this->db->update($this->tables["\165\x73\145\162\x73"], $data, [
"\x69\144" => $id,
]);
goto Vl7fB;
XumHp:
$this->trigger_events("\145\x78\164\x72\141\137\x77\150\145\162\x65");
goto AB4pV;
Ma6po:
if (!($code === false || ($user && $user->id === $id))) {
goto vzfxY;
}
goto heeC0;
QOOre:
$user = $this->get_user_by_activation_code($code);
goto uJqxz;
fb3kk:
$this->set_message(
"\141\x63\164\151\166\x61\164\145\137\163\x75\x63\143\145\163\163\x66\165\154"
);
goto f2Xf8;
Vl7fB:
if (!($this->db->affected_rows() === 1)) {
goto HauJG;
}
goto zXlVp;
CnATn:
$this->set_error(
"\x61\x63\164\x69\x76\141\x74\x65\x5f\165\x6e\x73\x75\x63\x63\145\x73\163\146\x75\154"
);
goto VsqMp;
VsqMp:
return false;
goto CwwFA;
uJqxz:
Zps8e:
goto Ma6po;
iBnkm:
if (!($code !== false)) {
goto Zps8e;
}
goto QOOre;
hbBs_:
HauJG:
goto ajN5T;
heeC0:
$data = [
"\x61\143\x74\x69\x76\x61\x74\151\157\156\137\x73\145\x6c\x65\143\x74\x6f\x72" => null,
"\x61\143\164\x69\166\x61\164\151\x6f\x6e\x5f\143\157\x64\145" => null,
"\x61\143\164\151\166\x65" => 1,
];
goto XumHp;
f2Xf8:
return true;
goto hbBs_;
CwwFA:
}
public function deactivate($id = null)
{
goto LWdCO;
X4Ogi:
$this->set_error(
"\144\x65\141\x63\164\151\x76\x61\x74\145\137\143\x75\162\162\145\156\x74\x5f\165\x73\x65\x72\x5f\165\x6e\x73\x75\143\143\145\x73\163\x66\x75\154"
);
goto FzeRb;
yzUxb:
$this->set_message(
"\144\145\141\x63\x74\151\166\141\x74\x65\137\163\165\143\x63\x65\163\x73\x66\165\154"
);
goto Qmtrg;
esi4s:
$this->activation_code = $token->user_code;
goto JsPnf;
QnyPK:
$this->trigger_events("\145\170\x74\x72\141\137\167\150\x65\162\145");
goto S8IkR;
U0FOH:
if (!isset($id)) {
goto z5gLf;
}
goto AwipR;
LWdCO:
$this->trigger_events("\x64\145\141\143\x74\151\x76\x61\164\x65");
goto U0FOH;
B2D02:
$this->set_error(
"\144\145\141\x63\164\x69\166\x61\164\x65\137\x75\x6e\163\x75\143\x63\x65\x73\x73\x66\x75\154"
);
goto kBR3v;
AwipR:
if (
!($this->ion_auth->logged_in() && $this->user()->row()->id == $id)
) {
goto wK101;
}
goto X4Ogi;
tUW5X:
$token = $this->_generate_selector_validator_couple(20, 40);
goto esi4s;
TLk8W:
z5gLf:
goto B2D02;
VkmjP:
goto axICd;
goto Cy6yZ;
riKzu:
goto EEBnU;
goto TLk8W;
Wu4eE:
EEBnU:
goto tUW5X;
Sahhx:
if ($return) {
goto WwT16;
}
goto ZvfCl;
FzeRb:
return false;
goto Oy0r9;
JsPnf:
$data = [
"\x61\143\x74\x69\166\141\164\x69\x6f\156\x5f\x73\145\x6c\x65\143\164\157\x72" =>
$token->selector,
"\141\x63\x74\151\x76\x61\164\x69\x6f\156\137\x63\157\144\x65" =>
$token->validator_hashed,
"\141\x63\164\151\166\x65" => 0,
];
goto QnyPK;
Cy6yZ:
WwT16:
goto yzUxb;
jLFbC:
$return = $this->db->affected_rows() == 1;
goto Sahhx;
Oy0r9:
wK101:
goto riKzu;
ZvfCl:
$this->set_error(
"\x64\x65\141\x63\x74\151\166\x61\164\145\137\x75\x6e\x73\x75\143\x63\145\163\163\146\x75\x6c"
);
goto VkmjP;
Qmtrg:
axICd:
goto bLTFD;
kBR3v:
return false;
goto Wu4eE;
S8IkR:
$this->db->update($this->tables["\x75\163\x65\x72\x73"], $data, [
"\x69\144" => $id,
]);
goto jLFbC;
bLTFD:
return $return;
goto umK5n;
umK5n:
}
public function clear_forgotten_password_code($identity)
{
goto eaJmA;
tEmNS:
X9eBT:
goto ucMSw;
eW8d0:
return true;
goto ig4aN;
ucMSw:
$data = [
"\146\157\162\147\157\164\164\145\x6e\137\160\141\163\163\x77\157\x72\144\x5f\x73\145\154\145\x63\x74\157\x72" => null,
"\x66\x6f\162\147\157\x74\x74\145\x6e\x5f\x70\x61\x73\163\167\x6f\162\144\137\x63\x6f\x64\145" => null,
"\146\157\162\147\x6f\164\x74\x65\x6e\x5f\160\141\163\x73\x77\157\162\144\x5f\x74\x69\155\x65" => null,
];
goto LllII;
LllII:
$this->db->update($this->tables["\165\163\145\x72\x73"], $data, [
$this->identity_column => $identity,
]);
goto eW8d0;
eaJmA:
if (!empty($identity)) {
goto X9eBT;
}
goto bRdS5;
bRdS5:
return false;
goto tEmNS;
ig4aN:
}
public function clear_remember_code($identity)
{
goto kSwjj;
DmAVX:
$data = [
"\162\145\155\145\155\x62\145\162\x5f\163\145\x6c\145\143\x74\157\x72" => null,
"\162\x65\155\x65\155\x62\x65\162\x5f\143\x6f\144\145" => null,
];
goto vbEAi;
cGE4O:
return false;
goto M0Q4Y;
pW6dp:
return true;
goto lVO0n;
vbEAi:
$this->db->update($this->tables["\x75\x73\145\x72\163"], $data, [
$this->identity_column => $identity,
]);
goto pW6dp;
M0Q4Y:
FlOBu:
goto DmAVX;
kSwjj:
if (!empty($identity)) {
goto FlOBu;
}
goto cGE4O;
lVO0n:
}
public function reset_password($identity, $new)
{
goto uRF3W;
Swt2m:
H6Mde:
goto qD5ea;
vzRnk:
$this->set_error(
"\160\x61\163\x73\x77\157\162\144\x5f\x63\x68\141\156\x67\145\137\x75\x6e\163\x75\x63\x63\145\x73\x73\x66\165\x6c"
);
goto D5OjS;
HLDqb:
$this->trigger_events([
"\x70\x6f\163\164\x5f\x63\150\x61\156\x67\145\x5f\160\141\163\x73\167\x6f\162\144",
"\160\x6f\163\164\x5f\143\x68\x61\x6e\147\145\x5f\x70\x61\x73\x73\x77\157\162\144\137\163\165\x63\143\145\163\163\x66\165\154",
]);
goto OC4xU;
fmIxq:
if ($this->identity_check($identity)) {
goto OCsjx;
}
goto vChn0;
zgeqh:
eFJAA:
goto HLDqb;
uRF3W:
$this->trigger_events(
"\160\x72\145\x5f\x63\150\x61\x6e\147\145\x5f\x70\x61\x73\163\x77\157\162\144"
);
goto fmIxq;
eckoD:
return false;
goto zEu2_;
vChn0:
$this->trigger_events([
"\160\x6f\163\x74\x5f\x63\x68\141\156\x67\145\x5f\160\141\x73\163\x77\157\x72\x64",
"\x70\157\163\164\x5f\143\150\141\x6e\x67\x65\137\160\x61\x73\x73\167\157\162\x64\137\165\x6e\x73\165\143\143\145\163\163\146\x75\x6c",
]);
goto eckoD;
zEu2_:
OCsjx:
goto tgwR3;
OC4xU:
$this->set_message(
"\160\x61\163\163\167\157\162\144\x5f\x63\x68\x61\x6e\147\x65\137\x73\x75\143\143\x65\x73\163\146\x75\154"
);
goto Swt2m;
qD5ea:
return $return;
goto e0xSG;
NfT3r:
$this->trigger_events([
"\160\x6f\163\164\x5f\x63\150\x61\156\147\145\x5f\160\141\x73\x73\167\x6f\162\x64",
"\x70\x6f\163\x74\x5f\143\150\x61\156\147\x65\x5f\x70\x61\x73\x73\x77\x6f\x72\x64\x5f\165\x6e\163\x75\143\143\145\163\x73\146\x75\x6c",
]);
goto vzRnk;
EafyK:
if ($return) {
goto eFJAA;
}
goto NfT3r;
D5OjS:
goto H6Mde;
goto zgeqh;
tgwR3:
$return = $this->_set_password_db($identity, $new);
goto EafyK;
e0xSG:
}
public function change_password($identity, $old, $new)
{
goto mUbm3;
PTRwI:
$this->set_error(
"\160\x61\x73\x73\167\157\x72\x64\x5f\143\x68\x61\156\x67\145\x5f\x75\x6e\x73\165\143\143\145\x73\163\146\165\154"
);
goto oilZo;
l5Jqg:
$this->set_error(
"\x70\x61\x73\163\x77\157\162\144\x5f\x63\150\141\x6e\x67\x65\137\165\x6e\x73\x75\143\143\145\163\163\x66\165\x6c"
);
goto kD2IS;
desz2:
if (!($query->num_rows() !== 1)) {
goto sIG8E;
}
goto kShpZ;
sGdh_:
$this->trigger_events([
"\x70\x6f\163\164\137\x63\x68\x61\156\x67\145\x5f\x70\x61\163\x73\167\157\162\144",
"\x70\157\x73\164\137\143\x68\x61\156\147\145\x5f\160\141\163\163\x77\157\162\x64\x5f\165\x6e\x73\x75\143\143\x65\163\163\x66\165\154",
]);
goto kjhXQ;
PozLC:
sIG8E:
goto gEcQL;
kShpZ:
$this->trigger_events([
"\160\x6f\x73\164\x5f\x63\x68\141\156\147\145\137\x70\x61\163\x73\x77\x6f\x72\x64",
"\x70\157\163\x74\x5f\x63\150\141\x6e\147\145\137\x70\x61\x73\x73\167\157\x72\144\137\165\x6e\x73\165\143\143\145\x73\x73\146\x75\x6c",
]);
goto PTRwI;
oilZo:
return false;
goto PozLC;
gEcQL:
$user = $query->row();
goto KCKWj;
KCKWj:
if (!$this->verify_password($old, $user->password, $identity)) {
goto HZERS;
}
goto fKE6Y;
eAOtL:
$this->set_message(
"\x70\x61\x73\x73\x77\x6f\162\144\137\143\150\x61\156\x67\x65\x5f\x73\165\x63\x63\145\x73\163\146\x75\x6c"
);
goto WlVJL;
xHTkz:
return $result;
goto Sfko_;
WlVJL:
ERGbF:
goto xHTkz;
Sfko_:
HZERS:
goto l5Jqg;
fKE6Y:
$result = $this->_set_password_db($identity, $new);
goto tb0In;
dRDLT:
$query = $this->db
->select("\x69\144\54\x20\160\x61\163\x73\167\x6f\162\144")
->where($this->identity_column, $identity)
->limit(1)
->order_by("\x69\x64", "\144\x65\x73\x63")
->get($this->tables["\165\x73\145\x72\x73"]);
goto desz2;
tb0In:
if ($result) {
goto nWvu7;
}
goto sGdh_;
du0vt:
goto ERGbF;
goto akX_X;
akX_X:
nWvu7:
goto gMe0m;
mUbm3:
$this->trigger_events(
"\x70\x72\x65\137\143\150\x61\x6e\147\x65\x5f\x70\x61\163\x73\167\x6f\162\x64"
);
goto swSWf;
gMe0m:
$this->trigger_events([
"\x70\x6f\163\164\137\143\150\141\156\147\145\137\160\x61\163\163\167\x6f\162\144",
"\160\x6f\x73\164\137\x63\x68\x61\x6e\x67\x65\x5f\160\x61\163\163\x77\x6f\162\x64\137\163\x75\x63\143\145\163\163\x66\x75\x6c",
]);
goto eAOtL;
swSWf:
$this->trigger_events("\145\x78\164\162\141\x5f\167\x68\145\x72\x65");
goto dRDLT;
kD2IS:
return false;
goto dVqIB;
kjhXQ:
$this->set_error(
"\x70\141\x73\x73\x77\x6f\162\x64\x5f\x63\x68\141\156\147\145\137\x75\x6e\163\x75\143\x63\x65\163\x73\146\165\x6c"
);
goto du0vt;
dVqIB:
}
public function username_check($username = "")
{
goto uX5Dm;
YzV7n:
if (!empty($username)) {
goto BjOMR;
}
goto wI7Pi;
xfUOk:
$this->trigger_events("\x65\x78\x74\162\141\137\x77\150\145\162\x65");
goto BLuhO;
BLuhO:
return $this->db
->where("\165\x73\145\x72\156\141\x6d\145", $username)
->limit(1)
->count_all_results($this->tables["\165\x73\145\x72\163"]) > 0;
goto MF02D;
uX5Dm:
$this->trigger_events(
"\165\163\x65\x72\x6e\141\155\x65\137\x63\x68\x65\143\x6b"
);
goto YzV7n;
wI7Pi:
return false;
goto ladNj;
ladNj:
BjOMR:
goto xfUOk;
MF02D:
}
public function email_check($email = "")
{
goto zD1tV;
RpzVZ:
VpJS2:
goto Tiec8;
DUtNr:
return false;
goto RpzVZ;
f4rix:
if (!empty($email)) {
goto VpJS2;
}
goto DUtNr;
RQUL0:
return $this->db
->where("\x65\155\141\151\x6c", $email)
->limit(1)
->count_all_results($this->tables["\x75\163\x65\162\x73"]) > 0;
goto BGHlz;
zD1tV:
$this->trigger_events("\145\x6d\141\x69\x6c\x5f\x63\150\145\143\x6b");
goto f4rix;
Tiec8:
$this->trigger_events("\145\170\164\162\x61\137\x77\x68\145\162\x65");
goto RQUL0;
BGHlz:
}
public function identity_check($identity = "")
{
goto roxUt;
S8GpD:
return $this->db
->where($this->identity_column, $identity)
->limit(1)
->count_all_results($this->tables["\165\x73\145\x72\x73"]) > 0;
goto sbei0;
PbFtR:
return false;
goto b_E3a;
A0xLa:
if (!empty($identity)) {
goto RnRkv;
}
goto PbFtR;
roxUt:
$this->trigger_events(
"\151\144\x65\x6e\164\151\x74\x79\137\x63\150\x65\143\x6b"
);
goto A0xLa;
b_E3a:
RnRkv:
goto S8GpD;
sbei0:
}
public function get_user_id_from_identity($identity = "")
{
goto uVI3b;
uVI3b:
if (!empty($identity)) {
goto xu9F3;
}
goto fLcwT;
scgUL:
$user = $query->row();
goto vFkWk;
hHvs0:
xu9F3:
goto ewMdH;
fLcwT:
return false;
goto hHvs0;
ewMdH:
$query = $this->db
->select("\x69\x64")
->where($this->identity_column, $identity)
->limit(1)
->get($this->tables["\165\x73\145\x72\x73"]);
goto ISuCj;
Q3_ff:
return false;
goto kJ21l;
vFkWk:
return $user->id;
goto loUwT;
kJ21l:
DVSay:
goto scgUL;
ISuCj:
if (!($query->num_rows() !== 1)) {
goto DVSay;
}
goto Q3_ff;
loUwT:
}
public function forgotten_password($identity)
{
goto F6Lfs;
BS1B3:
$this->trigger_events("\x65\x78\164\162\x61\x5f\x77\x68\145\162\x65");
goto M_hdG;
nz6M8:
AqYmH:
goto LMYjT;
F2BEo:
$update = [
"\146\157\x72\147\x6f\164\x74\x65\156\x5f\160\x61\x73\163\167\157\x72\144\x5f\163\x65\154\x65\143\164\157\162" =>
$token->selector,
"\146\157\x72\x67\x6f\x74\x74\x65\156\137\160\141\x73\163\167\157\x72\144\x5f\x63\x6f\144\145" =>
$token->validator_hashed,
"\x66\x6f\x72\x67\157\x74\164\x65\x6e\137\160\x61\163\x73\x77\157\x72\x64\137\164\x69\155\x65" => time(),
];
goto BS1B3;
sl07i:
$this->trigger_events([
"\x70\157\x73\x74\x5f\146\x6f\x72\147\x6f\164\x74\145\156\x5f\160\x61\163\x73\x77\157\162\144",
"\x70\157\x73\164\137\146\157\162\x67\x6f\x74\x74\145\156\x5f\160\141\x73\x73\x77\157\x72\144\137\x75\x6e\x73\165\x63\x63\x65\163\163\146\x75\x6c",
]);
goto yhIdj;
H2zD3:
L1E_S:
goto agwZt;
NugUY:
if ($this->db->affected_rows() === 1) {
goto HQNn2;
}
goto AvvHY;
F6Lfs:
if (!empty($identity)) {
goto AqYmH;
}
goto sl07i;
AvvHY:
$this->trigger_events([
"\x70\157\x73\x74\x5f\146\157\x72\x67\x6f\164\164\145\156\137\160\x61\x73\x73\x77\157\162\x64",
"\x70\x6f\163\x74\137\146\x6f\x72\x67\157\x74\164\x65\156\x5f\160\141\x73\163\x77\157\x72\x64\x5f\165\156\x73\165\143\x63\x65\x73\x73\x66\x75\x6c",
]);
goto KkjrU;
rsSQ0:
goto L1E_S;
goto pWyBv;
KkjrU:
return false;
goto rsSQ0;
M_hdG:
$this->db->update($this->tables["\165\x73\145\162\x73"], $update, [
$this->identity_column => $identity,
]);
goto NugUY;
DjlAF:
return $token->user_code;
goto H2zD3;
yhIdj:
return false;
goto nz6M8;
pWyBv:
HQNn2:
goto CjMqU;
LMYjT:
$token = $this->_generate_selector_validator_couple(20, 80);
goto F2BEo;
CjMqU:
$this->trigger_events([
"\160\157\163\164\x5f\146\x6f\x72\x67\x6f\164\x74\x65\156\x5f\160\x61\x73\163\167\157\x72\x64",
"\x70\157\163\164\x5f\146\157\x72\147\157\164\164\x65\x6e\x5f\160\141\x73\x73\167\157\162\x64\137\x73\x75\143\143\145\163\x73\x66\165\154",
]);
goto DjlAF;
agwZt:
}
public function get_user_by_forgotten_password_code($user_code)
{
goto g87FE;
g87FE:
$token = $this->_retrieve_selector_validator_couple($user_code);
goto wv1X9;
UOzpr:
if (!$user) {
goto CdhAY;
}
goto egjTc;
BMiLm:
CdhAY:
goto zgCZR;
wv1X9:
$user = $this->where(
"\146\x6f\x72\147\157\164\164\x65\156\x5f\160\141\163\163\167\157\x72\x64\x5f\x73\x65\x6c\x65\143\x74\x6f\162",
$token->selector
)
->users()
->row();
goto UOzpr;
egjTc:
if (
!$this->verify_password(
$token->validator,
$user->forgotten_password_code
)
) {
goto j9E82;
}
goto DOGuY;
c6_Vp:
j9E82:
goto BMiLm;
zgCZR:
return false;
goto LVtbq;
DOGuY:
return $user;
goto c6_Vp;
LVtbq:
}
public function register(
$identity,
$password,
$email,
$additional_data = [],
$groups = []
) {
goto MIfcM;
u3l7x:
foreach ($groups as $group) {
$this->add_to_group($group, $id);
ph9HA:
}
goto HkjmS;
c2YPK:
if (!($password === false)) {
goto tMpwl;
}
goto ct80J;
yCs5U:
$password = $this->hash_password($password);
goto c2YPK;
l_pTL:
return isset($id) ? $id : false;
goto Y9FYA;
HmKcv:
$query = $this->db
->get_where(
$this->tables["\147\162\x6f\x75\x70\163"],
[
"\x6e\x61\x6d\145" => $this->config->item(
"\144\145\x66\x61\165\x6c\x74\137\147\162\x6f\165\160",
"\151\x6f\x6e\x5f\x61\x75\x74\150"
),
],
1
)
->row();
goto Vi7qa;
HkjmS:
DYvl2:
goto NM0EP;
WHc5M:
return false;
goto FDoui;
zjgDm:
$data = [
$this->identity_column => $identity,
"\165\x73\x65\x72\156\141\x6d\x65" => $identity,
"\160\x61\x73\163\x77\157\x72\x64" => $password,
"\x65\155\x61\x69\x6c" => $email,
"\151\160\137\x61\x64\x64\162\x65\163\163" => $ip_address,
"\x63\x72\x65\x61\x74\145\x64\137\157\156" => time(),
"\x61\x63\x74\x69\166\145" => $manual_activation === false ? 1 : 0,
];
goto vdxKq;
Hkyxz:
$groups[] = $default_group->id;
goto lM_BI;
h3cf_:
tMpwl:
goto zjgDm;
WZ2Ib:
$this->set_error(
"\141\143\x63\157\x75\x6e\164\x5f\143\162\x65\141\164\151\x6f\156\137\x6d\151\x73\x73\151\x6e\x67\x5f\144\x65\146\x61\165\x6c\x74\x5f\x67\162\x6f\x75\x70"
);
goto WHc5M;
eJldb:
$id = $this->db->insert_id(
$this->tables["\165\x73\145\162\x73"] .
"\x5f\151\144\x5f\x73\x65\161"
);
goto eGqVr;
pib8k:
goto JpKbU;
goto AoEOh;
D2Wyo:
jWlCC:
goto d7L6D;
NM0EP:
pIjyo:
goto zU_aL;
eGqVr:
if (!(isset($default_group->id) && empty($groups))) {
goto wzXcS;
}
goto Hkyxz;
ct80J:
$this->set_error(
"\141\x63\x63\x6f\165\x6e\x74\x5f\x63\x72\145\141\164\151\x6f\x6e\137\x75\156\x73\x75\x63\143\145\163\x73\146\165\x6c"
);
goto usejn;
InkPp:
if ($this->identity_check($identity)) {
goto FtFH_;
}
goto kqxmG;
kqxmG:
if (
!(
!$this->config->item(
"\144\x65\146\141\165\x6c\x74\137\x67\x72\157\165\x70",
"\151\x6f\x6e\x5f\141\165\x74\150"
) && empty($groups)
)
) {
goto qkdMb;
}
goto WZ2Ib;
MIfcM:
$this->trigger_events(
"\x70\x72\x65\x5f\x72\145\147\x69\x73\164\145\x72"
);
goto ZTL6U;
VYA16:
$this->db->insert($this->tables["\165\x73\x65\x72\163"], $user_data);
goto eJldb;
RWgFU:
$this->trigger_events("\x65\170\x74\162\x61\x5f\163\145\x74");
goto VYA16;
usejn:
return false;
goto h3cf_;
zU_aL:
$this->trigger_events(
"\x70\157\163\x74\137\162\x65\x67\x69\163\164\x65\162"
);
goto l_pTL;
vdxKq:
$user_data = array_merge(
$this->_filter_data(
$this->tables["\x75\163\145\162\x73"],
$additional_data
),
$data
);
goto RWgFU;
KnPdj:
return false;
goto zwOmj;
KKxlH:
$this->set_error(
"\141\x63\143\x6f\165\x6e\164\137\143\x72\x65\x61\164\x69\157\156\137\x64\165\160\x6c\151\x63\x61\x74\145\x5f\x69\x64\145\x6e\x74\x69\x74\171"
);
goto KnPdj;
lM_BI:
wzXcS:
goto YL0eK;
ZTL6U:
$manual_activation = $this->config->item(
"\x6d\141\156\165\x61\x6c\137\x61\143\x74\x69\x76\141\164\x69\157\x6e",
"\x69\157\x6e\137\141\x75\x74\150"
);
goto InkPp;
g4iqU:
$this->set_error(
"\141\x63\143\x6f\165\x6e\164\137\x63\162\x65\x61\164\x69\x6f\156\137\x69\x6e\x76\141\x6c\x69\144\137\144\x65\x66\x61\x75\x6c\164\x5f\x67\162\x6f\x75\x70"
);
goto BzKbQ;
zwOmj:
JpKbU:
goto HmKcv;
YxXs3:
$ip_address = $this->input->ip_address();
goto yCs5U;
AoEOh:
FtFH_:
goto KKxlH;
d7L6D:
$default_group = $query;
goto YxXs3;
FDoui:
qkdMb:
goto pib8k;
BzKbQ:
return false;
goto D2Wyo;
Vi7qa:
if (!(!isset($query->id) && empty($groups))) {
goto jWlCC;
}
goto g4iqU;
YL0eK:
if (empty($groups)) {
goto pIjyo;
}
goto u3l7x;
Y9FYA:
}
public function login($identity, $password, $remember = false)
{
goto hxwEi;
EsBM8:
O7fma:
goto P6UmR;
CR3gh:
$this->set_session($user);
goto KncO0;
yncn3:
goto v3Pe8;
goto mQoM9;
ensJY:
ejtwJ:
goto PigcR;
yLESw:
$this->clear_remember_code($identity);
goto yncn3;
PigcR:
if (!($query->num_rows() === 1)) {
goto tikT_;
}
goto U9eOw;
hxwEi:
$this->trigger_events("\x70\162\x65\x5f\154\x6f\147\x69\156");
goto uKXMH;
P6UmR:
$this->rehash_password_if_needed($user->password, $identity, $password);
goto S1Ad7;
UpQta:
$this->trigger_events([
"\160\157\163\164\137\x6c\x6f\147\151\x6e",
"\x70\157\x73\164\137\154\157\x67\x69\156\x5f\163\x75\143\x63\x65\x73\163\x66\165\x6c",
]);
goto zDoWp;
KncO0:
$this->update_last_login($user->id);
goto DWmC2;
x4KaQ:
return false;
goto ensJY;
HOseE:
return false;
goto wufQC;
uq276:
$this->set_error(
"\154\x6f\147\151\156\137\x74\151\x6d\x65\157\x75\x74"
);
goto x4KaQ;
C9giy:
fosCR:
goto CR3gh;
YkGD4:
v3Pe8:
goto EsBM8;
abTnF:
$this->remember_user($identity);
goto YkGD4;
mQoM9:
dDQ7N:
goto abTnF;
zh0Pl:
$this->hash_password($password);
goto UZ6gq;
I42Nc:
$this->trigger_events("\145\170\x74\x72\141\x5f\x77\x68\x65\162\145");
goto J1xPP;
UZ6gq:
$this->increase_login_attempts($identity);
goto N1ooZ;
yILc2:
if (!$this->is_max_login_attempts_exceeded($identity)) {
goto ejtwJ;
}
goto v1Pju;
kUzQy:
if (
!$this->config->item(
"\x72\x65\155\145\x6d\x62\145\162\137\x75\x73\x65\162\x73",
"\151\x6f\x6e\137\141\x75\164\150"
)
) {
goto O7fma;
}
goto x25cx;
N1ooZ:
$this->trigger_events(
"\x70\x6f\x73\x74\137\154\157\x67\151\x6e\137\x75\x6e\163\x75\x63\143\x65\x73\x73\x66\165\154"
);
goto Nr7Jz;
jmE2A:
if (!$this->verify_password($password, $user->password, $identity)) {
goto fkCTv;
}
goto pjbv3;
YQ22O:
$this->trigger_events(
"\160\x6f\163\x74\x5f\x6c\x6f\147\x69\156\x5f\165\x6e\x73\165\143\143\145\x73\163\x66\x75\x6c"
);
goto uq276;
U9eOw:
$user = $query->row();
goto jmE2A;
pjbv3:
if (!($user->active == 0)) {
goto fosCR;
}
goto JhXvR;
zDoWp:
$this->set_message(
"\x6c\x6f\x67\151\156\137\x73\x75\143\x63\x65\x73\163\x66\x75\154"
);
goto C3MmD;
v1Pju:
$this->hash_password($password);
goto YQ22O;
f1Gd_:
return false;
goto MnLLA;
Nr7Jz:
$this->set_error(
"\x6c\x6f\x67\x69\156\x5f\165\156\x73\165\x63\143\x65\x73\x73\x66\x75\154"
);
goto HOseE;
jx4Hh:
fkCTv:
goto mXTHS;
H2r4J:
$this->set_error(
"\x6c\157\x67\151\x6e\137\x75\156\x73\165\x63\x63\145\163\163\x66\x75\x6c"
);
goto f1Gd_;
DWmC2:
$this->clear_login_attempts($identity);
goto mq33g;
J1xPP:
$query = $this->db
->select(
$this->identity_column .
"\x2c\40\x65\x6d\141\151\154\x2c\40\151\x64\54\40\x70\141\163\x73\x77\157\x72\x64\54\x20\141\143\164\x69\166\x65\54\40\154\141\x73\x74\x5f\154\157\x67\x69\156"
)
->where($this->identity_column, $identity)
->limit(1)
->order_by("\x69\x64", "\x64\x65\x73\143")
->get($this->tables["\x75\163\145\x72\x73"]);
goto yILc2;
C3MmD:
return true;
goto jx4Hh;
mq33g:
$this->clear_forgotten_password_code($identity);
goto kUzQy;
A4xjV:
$this->set_error(
"\x6c\x6f\147\x69\156\137\165\156\x73\x75\143\x63\145\163\163\x66\x75\x6c\x5f\x6e\157\x74\x5f\x61\143\x74\x69\166\145"
);
goto vLPZW;
mXTHS:
tikT_:
goto zh0Pl;
uKXMH:
if (!(empty($identity) || empty($password))) {
goto LV96I;
}
goto H2r4J;
x25cx:
if ($remember) {
goto dDQ7N;
}
goto yLESw;
S1Ad7:
$this->session->sess_regenerate(false);
goto UpQta;
JhXvR:
$this->trigger_events(
"\x70\x6f\163\x74\137\154\x6f\x67\x69\156\x5f\165\x6e\x73\165\x63\143\145\163\163\146\165\154"
);
goto A4xjV;
MnLLA:
LV96I:
goto I42Nc;
vLPZW:
return false;
goto C9giy;
wufQC:
}
public function recheck_session()
{
goto WT_hm;
vUIAA:
K5YTD:
goto h4YB9;
WT_hm:
$recheck =
null !==
$this->config->item(
"\162\145\143\150\x65\x63\153\137\x74\x69\155\145\x72",
"\x69\x6f\156\137\141\x75\x74\150"
)
? $this->config->item(
"\162\145\143\150\145\143\153\x5f\x74\151\155\145\x72",
"\x69\x6f\x6e\x5f\x61\x75\164\x68"
)
: 0;
goto JbFDO;
trr3e:
goto rjf4G;
goto ABgf0;
DEs50:
if ($query->num_rows() === 1) {
goto NV8m_;
}
goto K89uF;
JwPhi:
return false;
goto trr3e;
kAB5Y:
rjf4G:
goto vUIAA;
GIxKO:
$last_login = $this->session->userdata(
"\x6c\x61\163\x74\x5f\143\x68\145\143\153"
);
goto mJ_xU;
h4YB9:
D05m_:
goto kAIc9;
XBK_P:
$query = $this->db
->select("\151\x64")
->where([
$this->identity_column => $this->session->userdata(
"\x69\x64\x65\x6e\164\151\164\171"
),
"\x61\x63\x74\x69\x76\145" => "\x31",
])
->limit(1)
->order_by("\x69\144", "\144\145\x73\x63")
->get($this->tables["\x75\163\145\x72\x73"]);
goto DEs50;
mJ_xU:
if (!($last_login + $recheck < time())) {
goto K5YTD;
}
goto XBK_P;
PAynh:
$this->session->set_userdata(
"\x6c\x61\163\164\137\x63\150\145\x63\153",
time()
);
goto kAB5Y;
Hn6Ww:
$identity = $this->config->item(
"\151\144\145\x6e\x74\x69\x74\x79",
"\151\157\156\x5f\141\165\x74\x68"
);
goto CBXxX;
ABgf0:
NV8m_:
goto PAynh;
kAIc9:
return (bool) $this->session->userdata(
"\151\144\x65\x6e\x74\151\x74\171"
);
goto GAXQo;
JbFDO:
if (!($recheck !== 0)) {
goto D05m_;
}
goto GIxKO;
CBXxX:
$this->session->unset_userdata([
$identity,
"\x69\x64",
"\x75\163\x65\x72\137\151\144",
]);
goto JwPhi;
K89uF:
$this->trigger_events("\x6c\x6f\147\x6f\165\x74");
goto Hn6Ww;
GAXQo:
}
public function is_max_login_attempts_exceeded(
$identity,
$ip_address = null
) {
goto kpge_;
ZBr06:
t0pGb:
goto kFmMA;
grEv9:
return $attempts >= $max_attempts;
goto ZBr06;
F6bjr:
$max_attempts = $this->config->item(
"\155\x61\x78\x69\155\x75\155\137\x6c\157\x67\151\156\137\x61\x74\164\x65\x6d\x70\164\163",
"\151\157\x6e\x5f\141\165\x74\150"
);
goto k33uU;
kFmMA:
ChwVj:
goto OH8fL;
k33uU:
if (!($max_attempts > 0)) {
goto t0pGb;
}
goto ycyLD;
ycyLD:
$attempts = $this->get_attempts_num($identity, $ip_address);
goto grEv9;
kpge_:
if (
!$this->config->item(
"\164\162\x61\x63\153\x5f\x6c\x6f\147\x69\x6e\x5f\141\x74\164\145\x6d\x70\x74\x73",
"\x69\157\x6e\137\x61\x75\x74\x68"
)
) {
goto ChwVj;
}
goto F6bjr;
OH8fL:
return false;
goto aDnnD;
aDnnD:
}
public function get_attempts_num($identity, $ip_address = null)
{
goto pTTDp;
W3njJ:
if (
!$this->config->item(
"\x74\x72\141\x63\x6b\x5f\154\x6f\x67\x69\156\137\151\160\x5f\x61\144\x64\162\145\163\163",
"\151\157\156\x5f\141\x75\164\150"
)
) {
goto xYbu2;
}
goto tpM8U;
tpM8U:
if (isset($ip_address)) {
goto vvvF7;
}
goto enU73;
v8uPd:
M5zmi:
goto Axxuc;
mZVbu:
$qres = $this->db->get(
$this->tables[
"\154\x6f\147\151\156\137\141\164\164\145\155\x70\x74\163"
]
);
goto xAvNV;
enU73:
$ip_address = $this->input->ip_address();
goto URaBB;
URaBB:
vvvF7:
goto eKDCs;
pTTDp:
if (
!$this->config->item(
"\x74\162\141\x63\153\x5f\154\157\x67\151\x6e\x5f\141\164\164\x65\155\x70\164\x73",
"\x69\x6f\156\x5f\141\165\x74\x68"
)
) {
goto M5zmi;
}
goto wR_Z8;
wR_Z8:
$this->db->select("\x31", false);
goto MQLIH;
bmYz2:
xYbu2:
goto nW4nI;
nW4nI:
$this->db->where(
"\164\151\155\x65\x20\76",
time() -
$this->config->item(
"\154\157\143\153\157\165\164\x5f\x74\x69\155\x65",
"\151\x6f\x6e\137\x61\165\164\150"
),
false
);
goto mZVbu;
xAvNV:
return $qres->num_rows();
goto v8uPd;
Axxuc:
return 0;
goto OGoIS;
MQLIH:
$this->db->where("\x6c\157\x67\151\156", $identity);
goto W3njJ;
eKDCs:
$this->db->where(
"\x69\x70\x5f\x61\x64\144\162\x65\x73\163",
$ip_address
);
goto bmYz2;
OGoIS:
}
public function get_last_attempt_time($identity, $ip_address = null)
{
goto j5OaN;
mJdjX:
$ip_address = $this->input->ip_address();
goto CVXTW;
j5OaN:
if (
!$this->config->item(
"\x74\x72\x61\x63\x6b\137\154\157\x67\x69\156\x5f\141\164\164\145\x6d\160\x74\163",
"\x69\x6f\x6e\137\x61\x75\164\x68"
)
) {
goto tlm3D;
}
goto L_mEh;
hEscl:
$this->db->order_by("\151\x64", "\x64\x65\163\143");
goto JXcy_;
j9xCb:
eUwyk:
goto w2N9H;
fb1PI:
$this->db->where(
"\x69\x70\137\141\x64\144\x72\145\163\x73",
$ip_address
);
goto U8Bxc;
JXcy_:
$qres = $this->db->get(
$this->tables[
"\154\157\147\x69\156\x5f\x61\x74\x74\145\x6d\160\164\163"
],
1
);
goto NSdpT;
NSdpT:
if (!($qres->num_rows() > 0)) {
goto eUwyk;
}
goto ToW84;
L_mEh:
$this->db->select("\x74\x69\x6d\145");
goto rFoQ0;
rFoQ0:
$this->db->where("\154\157\147\151\156", $identity);
goto SpXMe;
CVXTW:
eEPoM:
goto fb1PI;
PrZtt:
if (isset($ip_address)) {
goto eEPoM;
}
goto mJdjX;
w2N9H:
tlm3D:
goto uWBX0;
ToW84:
return $qres->row()->time;
goto j9xCb;
U8Bxc:
srQ4A:
goto hEscl;
uWBX0:
return 0;
goto JjJKc;
SpXMe:
if (
!$this->config->item(
"\x74\x72\x61\143\153\137\x6c\x6f\147\x69\x6e\x5f\151\x70\137\x61\144\144\162\145\x73\x73",
"\151\x6f\156\137\x61\165\164\x68"
)
) {
goto srQ4A;
}
goto PrZtt;
JjJKc:
}
public function get_last_attempt_ip($identity)
{
goto HUZ3q;
hvm63:
mYELs:
goto q1jSi;
MEScp:
$this->db->where("\154\157\x67\x69\x6e", $identity);
goto lZsf9;
lZsf9:
$this->db->order_by("\151\x64", "\144\x65\x73\x63");
goto y0WG7;
DSneM:
return "";
goto eVVwd;
rfBnv:
$this->db->select("\151\x70\x5f\x61\x64\144\x72\145\x73\x73");
goto MEScp;
y0WG7:
$qres = $this->db->get(
$this->tables[
"\x6c\x6f\147\x69\156\137\141\x74\164\x65\155\x70\x74\163"
],
1
);
goto SpKQ5;
q1jSi:
nv5Sl:
goto DSneM;
SpKQ5:
if (!($qres->num_rows() > 0)) {
goto mYELs;
}
goto lFdrW;
HUZ3q:
if (
!(
$this->config->item(
"\164\162\x61\143\153\137\154\x6f\147\x69\156\137\x61\164\x74\145\x6d\x70\x74\163",
"\x69\157\x6e\x5f\x61\x75\164\x68"
) &&
$this->config->item(
"\164\162\x61\143\x6b\137\x6c\157\147\x69\156\x5f\x69\160\137\141\144\144\162\x65\x73\163",
"\151\x6f\156\x5f\x61\165\x74\150"
)
)
) {
goto nv5Sl;
}
goto rfBnv;
lFdrW:
return $qres->row()->ip_address;
goto hvm63;
eVVwd:
}
public function increase_login_attempts($identity)
{
goto pi_3Z;
pi_3Z:
if (
!$this->config->item(
"\x74\162\141\x63\153\137\154\157\147\151\156\137\141\x74\164\145\x6d\x70\164\163",
"\x69\x6f\x6e\x5f\141\x75\x74\x68"
)
) {
goto bUIit;
}
goto YmEFR;
HkRWW:
UuxId:
goto AIz1X;
PQTP_:
if (
!$this->config->item(
"\164\x72\141\x63\153\137\154\157\x67\x69\156\137\x69\x70\137\141\x64\x64\162\145\x73\163",
"\151\157\x6e\x5f\141\165\x74\x68"
)
) {
goto UuxId;
}
goto aYMUZ;
zO4rb:
bUIit:
goto TGT_2;
aYMUZ:
$data[
"\151\160\x5f\x61\144\144\x72\145\163\163"
] = $this->input->ip_address();
goto HkRWW;
YmEFR:
$data = [
"\x69\x70\137\x61\144\144\x72\x65\163\163" => "",
"\154\x6f\147\151\156" => $identity,
"\164\x69\155\145" => time(),
];
goto PQTP_;
AIz1X:
return $this->db->insert(
$this->tables[
"\x6c\157\147\151\x6e\137\141\164\164\x65\155\x70\x74\163"
],
$data
);
goto zO4rb;
TGT_2:
return false;
goto XivJK;
XivJK:
}
public function clear_login_attempts(
$identity,
$old_attempts_expire_period = 86400,
$ip_address = null
) {
goto pG_Ld;
yMBVK:
$this->db->where(
"\x69\x70\x5f\141\144\x64\x72\x65\x73\x73",
$ip_address
);
goto V1frP;
jlAVm:
$old_attempts_expire_period = max(
$old_attempts_expire_period,
$this->config->item(
"\154\157\x63\153\157\x75\164\137\x74\151\x6d\145",
"\151\157\x6e\137\141\165\164\150"
)
);
goto UfjeY;
V1frP:
VSrzk:
goto Yw4wV;
li5TH:
return false;
goto QzR7N;
h_BpS:
Oqt34:
goto li5TH;
Yw4wV:
$this->db->or_where(
"\x74\151\x6d\145\40\x3c",
time() - $old_attempts_expire_period,
false
);
goto ooUw_;
I0Jk9:
if (isset($ip_address)) {
goto zY24z;
}
goto NUzUf;
ZHgj4:
zY24z:
goto yMBVK;
ooUw_:
return $this->db->delete(
$this->tables[
"\x6c\x6f\x67\151\x6e\x5f\x61\x74\164\145\155\160\x74\x73"
]
);
goto h_BpS;
gMRAj:
if (
!$this->config->item(
"\x74\x72\141\x63\x6b\x5f\x6c\x6f\147\151\x6e\x5f\x69\160\137\x61\144\144\x72\x65\x73\x73",
"\x69\157\x6e\x5f\141\x75\x74\x68"
)
) {
goto VSrzk;
}
goto I0Jk9;
pG_Ld:
if (
!$this->config->item(
"\164\162\141\143\x6b\137\x6c\x6f\147\151\156\137\x61\164\x74\145\155\x70\164\163",
"\151\x6f\x6e\x5f\x61\165\x74\x68"
)
) {
goto Oqt34;
}
goto jlAVm;
NUzUf:
$ip_address = $this->input->ip_address();
goto ZHgj4;
UfjeY:
$this->db->where("\154\x6f\x67\151\156", $identity);
goto gMRAj;
QzR7N:
}
public function limit($limit)
{
goto l7Q0v;
TfNC5:
return $this;
goto U2Bof;
l7Q0v:
$this->trigger_events("\x6c\151\155\x69\164");
goto voP9r;
voP9r:
$this->_ion_limit = $limit;
goto TfNC5;
U2Bof:
}
public function offset($offset)
{
goto p51oi;
PNv1_:
$this->_ion_offset = $offset;
goto SdcWx;
SdcWx:
return $this;
goto obL_z;
p51oi:
$this->trigger_events("\157\x66\146\x73\145\x74");
goto PNv1_;
obL_z:
}
public function where($where, $value = null)
{
goto Y7LG5;
Y7LG5:
$this->trigger_events("\x77\x68\x65\162\145");
goto oJOgx;
oJOgx:
if (is_array($where)) {
goto DDrIk;
}
goto z7Mj_;
z7Mj_:
$where = [$where => $value];
goto u_GfG;
u_GfG:
DDrIk:
goto PwUDT;
PwUDT:
array_push($this->_ion_where, $where);
goto iyPmw;
iyPmw:
return $this;
goto yuZ8q;
yuZ8q:
}
public function like($like, $value = null, $position = "\x62\157\x74\150")
{
goto aoM3V;
aoM3V:
$this->trigger_events("\154\x69\x6b\x65");
goto ikqLI;
ikqLI:
array_push($this->_ion_like, [
"\x6c\151\x6b\145" => $like,
"\166\141\154\x75\145" => $value,
"\x70\x6f\163\151\x74\x69\x6f\x6e" => $position,
]);
goto S8yt9;
S8yt9:
return $this;
goto M3Ssn;
M3Ssn:
}
public function select($select)
{
goto dU7E4;
dU7E4:
$this->trigger_events("\163\145\154\x65\143\164");
goto QzicS;
KEm5M:
return $this;
goto N5_7F;
QzicS:
$this->_ion_select[] = $select;
goto KEm5M;
N5_7F:
}
public function order_by($by, $order = "\144\x65\x73\x63")
{
goto ONkOl;
rpcQi:
$this->_ion_order = $order;
goto FlEeO;
FlEeO:
return $this;
goto tKvre;
dw9jM:
$this->_ion_order_by = $by;
goto rpcQi;
ONkOl:
$this->trigger_events("\x6f\162\x64\x65\162\x5f\142\x79");
goto dw9jM;
tKvre:
}
public function row()
{
goto MAP9A;
WGixa:
$row = $this->response->row();
goto nGuDj;
MAP9A:
$this->trigger_events("\162\157\167");
goto WGixa;
nGuDj:
return $row;
goto jL9gG;
jL9gG:
}
public function row_array()
{
goto nw90y;
ncatd:
return $row;
goto g1Mma;
nw90y:
$this->trigger_events([
"\162\x6f\167",
"\x72\x6f\167\x5f\141\162\162\141\x79",
]);
goto kfAiM;
kfAiM:
$row = $this->response->row_array();
goto ncatd;
g1Mma:
}
public function result()
{
goto gtf1L;
ruU6H:
$result = $this->response->result();
goto BpD29;
BpD29:
return $result;
goto NBMr_;
gtf1L:
$this->trigger_events("\162\x65\x73\165\x6c\x74");
goto ruU6H;
NBMr_:
}
public function result_array()
{
goto c8TW6;
vAV4g:
return $result;
goto joqBF;
c8TW6:
$this->trigger_events([
"\162\x65\163\165\154\x74",
"\162\145\163\165\x6c\164\137\x61\162\162\141\171",
]);
goto i0ccT;
i0ccT:
$result = $this->response->result_array();
goto vAV4g;
joqBF:
}
public function num_rows()
{
goto NWEzy;
NWEzy:
$this->trigger_events(["\x6e\165\155\x5f\x72\157\x77\163"]);
goto h3QOO;
Hi275:
return $result;
goto DSjIN;
h3QOO:
$result = $this->response->num_rows();
goto Hi275;
DSjIN:
}
public function users($groups = null)
{
goto Y364V;
JyBQr:
$this->response = $this->db->get($this->tables["\165\163\x65\x72\x73"]);
goto j7Fhj;
HNC9b:
$this->db->join(
$this->tables["\165\163\x65\162\x73\137\x67\162\x6f\165\x70\x73"],
$this->tables["\165\163\x65\162\x73\137\x67\x72\157\x75\160\163"] .
"\56" .
$this->join["\x75\x73\x65\162\163"] .
"\x3d" .
$this->tables["\x75\163\145\x72\163"] .
"\56\x69\x64",
"\151\x6e\156\x65\162"
);
goto joXMx;
Bhd1N:
VUmJa:
goto audrP;
FrRwo:
$this->_ion_select = [];
goto MMPtm;
klhcP:
$this->_ion_order = null;
goto CJgmh;
ZhK_z:
if (empty($group_names)) {
goto VUmJa;
}
goto rG15t;
klmzT:
$this->_ion_limit = null;
goto WJ_y0;
FCdpX:
$this->db->limit($this->_ion_limit);
goto klmzT;
u6Y6S:
$this->_ion_like = [];
goto A61It;
CJgmh:
$this->_ion_order_by = null;
goto C7ydp;
ULdB6:
if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) {
goto bZAwI;
}
goto hi4Zc;
aBMOT:
$group_ids = [];
goto GYvoo;
UAdad:
$this->_ion_limit = null;
goto A0FcU;
vKGHg:
if (!isset($groups)) {
goto Jnp6P;
}
goto G6S3j;
PDxss:
goto BryVU;
goto BB0Jn;
vwL9O:
Jnp6P:
goto pKLg7;
GCssq:
foreach ($this->_ion_select as $select) {
$this->db->select($select);
PtzjD:
}
goto Al0wR;
BB0Jn:
XvqFr:
goto LekAI;
rG15t:
$this->db->join(
$this->tables["\147\162\157\165\160\163"],
$this->tables["\x75\x73\x65\162\163\x5f\x67\x72\x6f\165\x70\x73"] .
"\x2e" .
$this->join["\147\x72\157\165\160\x73"] .
"\x20\x3d\40" .
$this->tables["\x67\x72\x6f\x75\160\163"] .
"\56\x69\x64",
"\151\x6e\156\x65\x72"
);
goto NAmj2;
kD31c:
BryVU:
goto ULdB6;
hi4Zc:
$this->db->order_by($this->_ion_order_by, $this->_ion_order);
goto klhcP;
PSfaS:
Z81cZ:
goto HQcyz;
MMPtm:
z8MVq:
goto vKGHg;
E1lET:
dKFtt:
goto u6Y6S;
j7Fhj:
return $this;
goto bey_b;
okqFW:
XTalR:
goto vj22b;
G6S3j:
if (is_array($groups)) {
goto XTalR;
}
goto YGpSh;
ZkKXm:
$this->db->{$or_where_in}(
$this->tables["\165\163\145\162\163\x5f\x67\162\157\x75\x70\163"] .
"\x2e" .
$this->join["\147\x72\x6f\165\x70\163"],
$group_ids
);
goto FD3TC;
n4IXz:
foreach ($this->_ion_like as $like) {
$this->db->or_like(
$like["\x6c\x69\x6b\145"],
$like["\166\141\x6c\165\145"],
$like["\160\157\x73\x69\164\151\x6f\x6e"]
);
MKdTg:
}
goto E1lET;
g5ved:
$or_where_in =
!empty($group_ids) && !empty($group_names)
? "\157\162\137\x77\x68\x65\x72\x65\x5f\x69\x6e"
: "\167\x68\x65\162\145\x5f\151\156";
goto ZhK_z;
YGpSh:
$groups = [$groups];
goto okqFW;
audrP:
if (empty($group_ids)) {
goto mIWQy;
}
goto ZkKXm;
zITMt:
if (!isset($this->_ion_limit)) {
goto EFi4J;
}
goto FCdpX;
ThQzb:
Hz1nd:
goto OatyK;
blNmN:
goto z8MVq;
goto zjG0U;
A61It:
OwJfU:
goto fPOrw;
gm9BX:
if (!(isset($this->_ion_where) && !empty($this->_ion_where))) {
goto Z81cZ;
}
goto GUkPQ;
vj22b:
if (!(isset($groups) && !empty($groups))) {
goto yzhgh;
}
goto X_z1X;
qdYQz:
if (isset($this->_ion_select) && !empty($this->_ion_select)) {
goto khLv9;
}
goto Lment;
HQcyz:
if (!(isset($this->_ion_like) && !empty($this->_ion_like))) {
goto OwJfU;
}
goto n4IXz;
hrPOy:
foreach ($groups as $group) {
goto vZoER;
gZa_H:
goto L7pzO;
goto FGv9o;
FGv9o:
IAL3i:
goto KmVxF;
fQs7n:
L7pzO:
goto K99Ox;
KmVxF:
$group_ids[] = $group;
goto fQs7n;
K99Ox:
WH80D:
goto znddm;
vZoER:
if (is_numeric($group)) {
goto IAL3i;
}
goto iBEqb;
iBEqb:
$group_names[] = $group;
goto gZa_H;
znddm:
}
goto K_D13;
pKLg7:
$this->trigger_events("\145\x78\164\x72\141\137\167\x68\x65\162\145");
goto gm9BX;
Al0wR:
n10j2:
goto FrRwo;
GYvoo:
$group_names = [];
goto hrPOy;
Y364V:
$this->trigger_events("\x75\x73\x65\x72\163");
goto qdYQz;
fPOrw:
if (isset($this->_ion_limit) && isset($this->_ion_offset)) {
goto XvqFr;
}
goto zITMt;
WJ_y0:
EFi4J:
goto PDxss;
zjG0U:
khLv9:
goto GCssq;
X_z1X:
$this->db->distinct();
goto HNC9b;
LekAI:
$this->db->limit($this->_ion_limit, $this->_ion_offset);
goto UAdad;
OatyK:
$this->_ion_where = [];
goto PSfaS;
joXMx:
yzhgh:
goto aBMOT;
GUkPQ:
foreach ($this->_ion_where as $where) {
$this->db->where($where);
sNeO_:
}
goto ThQzb;
FD3TC:
mIWQy:
goto vwL9O;
K_D13:
uy_4i:
goto g5ved;
Lment:
$this->db->select([
$this->tables["\x75\x73\x65\162\x73"] . "\x2e\52",
$this->tables["\x75\163\x65\x72\x73"] .
"\x2e\x69\x64\x20\x61\x73\40\x69\x64",
$this->tables["\x75\x73\145\162\x73"] .
"\x2e\151\x64\x20\141\163\40\x75\x73\145\x72\x5f\x69\x64",
]);
goto blNmN;
A0FcU:
$this->_ion_offset = null;
goto kD31c;
NAmj2:
$this->db->where_in(
$this->tables["\147\162\157\165\160\x73"] . "\56\x6e\141\155\145",
$group_names
);
goto Bhd1N;
C7ydp:
bZAwI:
goto JyBQr;
bey_b:
}
public function user($id = null)
{
goto kpGOu;
rx4cz:
$this->users();
goto k0oIq;
ROSfA:
$this->where(
$this->tables["\x75\163\145\162\163"] . "\56\x69\144",
$id
);
goto rx4cz;
kpGOu:
$this->trigger_events("\165\x73\145\162");
goto fNB5k;
UPIJP:
$this->limit(1);
goto EDXtE;
fNB5k:
$id = isset($id)
? $id
: $this->session->userdata("\165\163\145\162\137\x69\x64");
goto UPIJP;
k0oIq:
return $this;
goto aso27;
EDXtE:
$this->order_by(
$this->tables["\x75\163\145\162\x73"] . "\56\151\144",
"\x64\145\163\143"
);
goto ROSfA;
aso27:
}
public function get_users_groups($id = false)
{
goto Rz7ox;
Rz7ox:
$this->trigger_events(
"\x67\x65\x74\x5f\x75\163\x65\x72\x73\x5f\x67\162\x6f\x75\x70"
);
goto ieINE;
Jwtsu:
return $this->db
->select(
$this->tables[
"\165\x73\145\x72\163\x5f\147\162\157\x75\x70\163"
] .
"\56" .
$this->join["\147\x72\157\x75\160\163"] .
"\x20\141\x73\40\x69\144\54\x20" .
$this->tables["\147\162\157\x75\160\x73"] .
"\56\x6e\141\x6d\145\x2c\40" .
$this->tables["\147\x72\157\x75\160\163"] .
"\56\x64\x65\x73\x63\162\151\x70\164\151\x6f\x6e"
)
->where(
$this->tables[
"\x75\163\145\x72\163\x5f\x67\162\157\165\160\163"
] .
"\56" .
$this->join["\165\163\x65\x72\x73"],
$id
)
->join(
$this->tables["\147\x72\x6f\165\160\x73"],
$this->tables[
"\165\163\x65\162\163\137\x67\162\157\165\160\x73"
] .
"\56" .
$this->join["\147\x72\x6f\x75\160\163"] .
"\75" .
$this->tables["\x67\x72\157\165\x70\x73"] .
"\56\x69\x64"
)
->get(
$this->tables[
"\165\x73\x65\x72\163\137\x67\x72\x6f\165\160\163"
]
);
goto BsyvA;
ieINE:
$id || ($id = $this->session->userdata("\x75\163\145\162\137\x69\144"));
goto Jwtsu;
BsyvA:
}
public function in_group($check_group, $id = false, $check_all = false)
{
goto Sw7Tq;
h1aSH:
return $check_all;
goto eKMGW;
eClR1:
$id || ($id = $this->session->userdata("\165\163\145\x72\137\151\x64"));
goto UNUMI;
dympe:
uC1yp:
goto AB4vd;
MIe5w:
goto nxQ0l;
goto RwQHg;
kJTwM:
A1RVi:
goto h1aSH;
IrFoA:
eMKdI:
goto c4_RA;
huZK6:
foreach ($users_groups as $group) {
$groups_array[$group->id] = $group->name;
Q8X2p:
}
goto IrFoA;
BhnFg:
$groups_array = $this->_cache_user_in_group[$id];
goto Jc0yw;
VFFHn:
$check_group = [$check_group];
goto dympe;
diAdp:
$groups_array = [];
goto huZK6;
Fnx2C:
foreach ($check_group as $key => $value) {
goto nlfji;
dxGGI:
uy8z0:
goto AtZ71;
AtZ71:
XTieh:
goto S7s9I;
NdrID:
return !$check_all;
goto dxGGI;
nlfji:
$groups = is_numeric($value)
? array_keys($groups_array)
: $groups_array;
goto HuoWo;
HuoWo:
if (!(in_array($value, $groups) xor $check_all)) {
goto uy8z0;
}
goto NdrID;
S7s9I:
}
goto kJTwM;
AB4vd:
if (isset($this->_cache_user_in_group[$id])) {
goto JooCe;
}
goto pkbvL;
Sw7Tq:
$this->trigger_events("\x69\156\137\147\x72\x6f\165\x70");
goto eClR1;
c4_RA:
$this->_cache_user_in_group[$id] = $groups_array;
goto MIe5w;
UNUMI:
if (is_array($check_group)) {
goto uC1yp;
}
goto VFFHn;
pkbvL:
$users_groups = $this->get_users_groups($id)->result();
goto diAdp;
RwQHg:
JooCe:
goto BhnFg;
Jc0yw:
nxQ0l:
goto Fnx2C;
eKMGW:
}
public function add_to_group($group_ids, $user_id = false)
{
goto vgnE5;
P349a:
$group_ids = [$group_ids];
goto J7QQ4;
vgnE5:
$this->trigger_events(
"\x61\x64\144\x5f\164\x6f\137\147\162\157\165\x70"
);
goto kSbjV;
kSbjV:
$user_id ||
($user_id = $this->session->userdata(
"\x75\x73\x65\162\x5f\151\144"
));
goto OMNWX;
Cbyfw:
dBwBB:
goto OL7Zo;
J7QQ4:
uQcAz:
goto nFpV9;
OL7Zo:
return $return;
goto iLzXX;
OMNWX:
if (is_array($group_ids)) {
goto uQcAz;
}
goto P349a;
DqNw1:
foreach ($group_ids as $group_id) {
goto hwujH;
Gdoda:
$return++;
goto T06yO;
X9PS_:
$group = $this->group($group_id)->result();
goto Nmp3a;
LyAiA:
$this->_cache_user_in_group[$user_id][$group_id] = $group_name;
goto Gdoda;
Nmp3a:
$group_name = $group[0]->name;
goto tmB1B;
YWYAL:
if (isset($this->_cache_groups[$group_id])) {
goto u5EJk;
}
goto X9PS_;
tmB1B:
$this->_cache_groups[$group_id] = $group_name;
goto b3Ir5;
T06yO:
C93Se:
goto Dl4Au;
aeEvz:
vZySV:
goto LyAiA;
hwujH:
if (
!$this->db->insert(
$this->tables[
"\165\163\145\162\163\x5f\147\x72\157\x75\160\163"
],
[
$this->join[
"\x67\x72\x6f\x75\160\163"
] => (float) $group_id,
$this->join["\x75\163\145\162\163"] => (float) $user_id,
]
)
) {
goto C93Se;
}
goto YWYAL;
b3Ir5:
goto vZySV;
goto W_bq1;
nWNrp:
$group_name = $this->_cache_groups[$group_id];
goto aeEvz;
Dl4Au:
MRlb2:
goto hECuh;
W_bq1:
u5EJk:
goto nWNrp;
hECuh:
}
goto Cbyfw;
nFpV9:
$return = 0;
goto DqNw1;
iLzXX:
}
public function remove_from_group($group_ids = false, $user_id = false)
{
goto nJZ2k;
kMl1e:
if (
!($return = $this->db->delete(
$this->tables[
"\165\163\145\x72\163\x5f\147\x72\157\x75\x70\x73"
],
[$this->join["\x75\x73\145\162\x73"] => (float) $user_id]
))
) {
goto lSH9I;
}
goto SeYcJ;
Sagrp:
goto Gg_Yr;
goto ytXZB;
SeYcJ:
$this->_cache_user_in_group[$user_id] = [];
goto LBdQU;
nC4LH:
if (is_array($group_ids)) {
goto WhfRP;
}
goto PK087;
RCubN:
if (!empty($user_id)) {
goto cbDYY;
}
goto MR_0r;
ERVC1:
return $return;
goto KOpw3;
PK087:
$group_ids = [$group_ids];
goto Vaxfr;
ytXZB:
eVeOo:
goto nC4LH;
RzCjf:
mKoxO:
goto CL7e1;
t1VOQ:
cbDYY:
goto Ty8V7;
BNUpN:
Gg_Yr:
goto ERVC1;
Vaxfr:
WhfRP:
goto o_43t;
Ty8V7:
if (!empty($group_ids)) {
goto eVeOo;
}
goto kMl1e;
LBdQU:
lSH9I:
goto Sagrp;
CL7e1:
$return = true;
goto BNUpN;
MR_0r:
return false;
goto t1VOQ;
nJZ2k:
$this->trigger_events(
"\x72\x65\x6d\x6f\x76\145\137\x66\x72\x6f\x6d\137\147\x72\x6f\165\160"
);
goto RCubN;
o_43t:
foreach ($group_ids as $group_id) {
goto WvExf;
WvExf:
$this->db->delete(
$this->tables[
"\165\163\x65\x72\163\x5f\x67\162\x6f\165\x70\163"
],
[
$this->join[
"\147\x72\x6f\165\x70\x73"
] => (float) $group_id,
$this->join["\x75\x73\145\162\x73"] => (float) $user_id,
]
);
goto SyfQg;
n4r8J:
GGsJJ:
goto DGagB;
YiMKN:
QZER3:
goto n4r8J;
Snw0K:
unset($this->_cache_user_in_group[$user_id][$group_id]);
goto YiMKN;
SyfQg:
if (
!(
isset($this->_cache_user_in_group[$user_id]) &&
isset($this->_cache_user_in_group[$user_id][$group_id])
)
) {
goto QZER3;
}
goto Snw0K;
DGagB:
}
goto RzCjf;
KOpw3:
}
public function groups()
{
goto WcJbc;
lsp_q:
$this->db->limit($this->_ion_limit);
goto QSFF3;
sjX1l:
if (isset($this->_ion_limit) && isset($this->_ion_offset)) {
goto Or8f1;
}
goto BL9vs;
o_VJ7:
Or8f1:
goto ZM_K0;
ZM_K0:
$this->db->limit($this->_ion_limit, $this->_ion_offset);
goto fWGfR;
iiCM6:
if (!(isset($this->_ion_where) && !empty($this->_ion_where))) {
goto KU4cZ;
}
goto Pj3je;
BL9vs:
if (!isset($this->_ion_limit)) {
goto m3aPO;
}
goto lsp_q;
fWGfR:
$this->_ion_limit = null;
goto HPjHY;
Qi3JL:
Kvwc7:
goto ByLli;
KKrLH:
$this->response = $this->db->get(
$this->tables["\147\162\x6f\x75\160\163"]
);
goto cGKXu;
SLecO:
zdgen:
goto KKrLH;
WcJbc:
$this->trigger_events("\147\162\x6f\165\x70\163");
goto iiCM6;
I76xG:
m3aPO:
goto OZTBS;
fN8uW:
$this->_ion_where = [];
goto x6uvc;
OZTBS:
goto Kvwc7;
goto o_VJ7;
S8U07:
$this->db->order_by($this->_ion_order_by, $this->_ion_order);
goto SLecO;
cGKXu:
return $this;
goto Oj1MP;
Pj3je:
foreach ($this->_ion_where as $where) {
$this->db->where($where);
rRIgJ:
}
goto gTx7U;
HPjHY:
$this->_ion_offset = null;
goto Qi3JL;
ByLli:
if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) {
goto zdgen;
}
goto S8U07;
x6uvc:
KU4cZ:
goto sjX1l;
QSFF3:
$this->_ion_limit = null;
goto I76xG;
gTx7U:
uoIyn:
goto fN8uW;
Oj1MP:
}
public function group($id = null)
{
goto dmBa6;
dmBa6:
$this->trigger_events("\x67\x72\157\x75\x70");
goto aoexM;
oJXG7:
WOaMR:
goto t845Q;
aoexM:
if (!isset($id)) {
goto WOaMR;
}
goto kLleZ;
D5dpP:
return $this->groups();
goto sfzdj;
t845Q:
$this->limit(1);
goto UrL6I;
UrL6I:
$this->order_by("\151\144", "\x64\145\163\143");
goto D5dpP;
kLleZ:
$this->where(
$this->tables["\x67\x72\157\x75\x70\163"] . "\x2e\x69\x64",
$id
);
goto oJXG7;
sfzdj:
}
public function update($id, array $data)
{
goto u8x3k;
fcOcq:
if (!($data["\160\x61\163\x73\167\157\162\x64"] === false)) {
goto kkLOu;
}
goto ty7qG;
l25kL:
$this->trigger_events([
"\160\157\x73\x74\x5f\165\160\144\141\x74\145\x5f\x75\x73\145\162",
"\160\157\x73\164\x5f\x75\160\144\141\164\x65\137\x75\x73\x65\x72\x5f\x75\x6e\x73\165\x63\x63\145\x73\163\146\165\154",
]);
goto nHUWP;
lu4ow:
$this->trigger_events("\x65\x78\x74\x72\141\x5f\x77\150\145\162\145");
goto pogkY;
opwjQ:
fWrCn:
goto lu4ow;
p92PT:
if (!empty($data["\160\x61\163\163\x77\157\162\144"])) {
goto lwPgV;
}
goto bQKPL;
MhwUg:
$this->db->trans_begin();
goto fvWvb;
jNPI5:
lwPgV:
goto nQdZ4;
Rfl7M:
IURtw:
goto opwjQ;
y_0Ok:
if (!($this->db->trans_status() === false)) {
goto VO5_a;
}
goto qf1uX;
iwXWN:
return false;
goto QkQ1f;
JvBAe:
kkLOu:
goto RO8WE;
FsLiq:
if (
!(
array_key_exists($this->identity_column, $data) ||
array_key_exists("\x70\141\x73\163\x77\157\x72\x64", $data) ||
array_key_exists("\x65\x6d\x61\151\x6c", $data)
)
) {
goto fWrCn;
}
goto BOQgp;
wN963:
$this->db->trans_commit();
goto e84d_;
v5E_3:
$this->set_error(
"\165\160\x64\x61\164\x65\137\165\156\163\x75\x63\x63\145\x73\x73\146\165\x6c"
);
goto iwXWN;
qf1uX:
$this->db->trans_rollback();
goto qrSAe;
Hbvp3:
$user = $this->user($id)->row();
goto MhwUg;
QkQ1f:
m1ioW:
goto emyq8;
fvWvb:
if (
!(
array_key_exists($this->identity_column, $data) &&
$this->identity_check($data[$this->identity_column]) &&
$user->{$this->identity_column} !==
$data[$this->identity_column]
)
) {
goto m1ioW;
}
goto L5x7h;
nQdZ4:
$data["\x70\141\163\x73\x77\x6f\162\x64"] = $this->hash_password(
$data["\160\141\x73\163\167\x6f\162\144"],
$user->{$this->identity_column}
);
goto fcOcq;
emyq8:
$data = $this->_filter_data(
$this->tables["\165\163\x65\x72\x73"],
$data
);
goto FsLiq;
u8x3k:
$this->trigger_events(
"\x70\162\145\137\x75\160\144\x61\164\145\137\165\163\x65\162"
);
goto Hbvp3;
BOQgp:
if (!array_key_exists("\x70\x61\163\x73\x77\x6f\162\x64", $data)) {
goto IURtw;
}
goto p92PT;
iVrM2:
VO5_a:
goto wN963;
R4CAp:
$this->trigger_events([
"\x70\x6f\163\x74\137\x75\160\144\x61\164\x65\137\165\163\x65\x72",
"\x70\157\163\164\137\165\x70\144\x61\164\145\x5f\x75\163\x65\162\x5f\165\x6e\163\x75\x63\x63\145\163\x73\146\x75\x6c",
]);
goto v5E_3;
MrHhS:
$this->set_message(
"\x75\x70\144\x61\x74\x65\137\x73\x75\x63\x63\145\x73\163\146\x75\x6c"
);
goto kp0Wc;
bQKPL:
unset($data["\160\141\x73\x73\167\157\162\144"]);
goto EmAUl;
kp0Wc:
return true;
goto C_zbK;
HQjMa:
$this->set_error(
"\x75\x70\x64\141\164\145\137\165\x6e\x73\x75\x63\143\x65\x73\163\x66\x75\154"
);
goto g86G2;
bkY4f:
$this->set_error(
"\x61\143\x63\x6f\x75\x6e\164\137\x63\162\145\x61\x74\151\157\x6e\137\x64\165\160\x6c\151\143\x61\x74\x65\x5f\151\x64\x65\x6e\164\151\x74\171"
);
goto R4CAp;
pogkY:
$this->db->update($this->tables["\x75\163\x65\x72\x73"], $data, [
"\151\144" => $user->id,
]);
goto y_0Ok;
nHUWP:
$this->set_error(
"\165\160\x64\141\x74\145\x5f\165\x6e\163\x75\143\143\x65\163\163\146\x75\x6c"
);
goto kYQjU;
qrSAe:
$this->trigger_events([
"\x70\x6f\163\164\x5f\x75\x70\144\x61\164\145\137\x75\x73\x65\162",
"\160\157\x73\x74\x5f\x75\160\x64\141\x74\145\137\165\163\x65\x72\137\x75\x6e\x73\x75\x63\x63\145\163\163\146\x75\x6c",
]);
goto HQjMa;
kYQjU:
return false;
goto JvBAe;
ty7qG:
$this->db->trans_rollback();
goto l25kL;
e84d_:
$this->trigger_events([
"\160\x6f\x73\x74\x5f\165\x70\x64\x61\164\x65\137\x75\x73\145\162",
"\160\x6f\163\164\137\x75\x70\x64\141\164\145\x5f\x75\x73\145\x72\137\163\x75\x63\143\x65\x73\163\146\165\x6c",
]);
goto MrHhS;
L5x7h:
$this->db->trans_rollback();
goto bkY4f;
RO8WE:
AX6sn:
goto Rfl7M;
g86G2:
return false;
goto iVrM2;
EmAUl:
goto AX6sn;
goto jNPI5;
C_zbK:
}
public function delete_user($id)
{
goto NQGfJ;
gNt3k:
gLuRf:
goto Tc2OT;
Tc2OT:
$this->db->trans_commit();
goto OYyaw;
ErJnY:
$this->set_error(
"\144\145\x6c\x65\164\145\137\x75\x6e\163\165\143\x63\x65\163\163\146\165\x6c"
);
goto dYoMY;
DFumR:
return true;
goto RuiYY;
cv6yZ:
$this->trigger_events([
"\160\157\x73\164\x5f\144\145\154\145\164\x65\x5f\165\163\x65\162",
"\160\157\163\x74\x5f\144\x65\x6c\145\164\x65\x5f\165\x73\x65\x72\x5f\165\x6e\x73\165\x63\143\145\x73\x73\146\x75\x6c",
]);
goto ErJnY;
xNcO4:
$this->remove_from_group(null, $id);
goto AHGT6;
Tt36I:
$this->set_message(
"\144\x65\x6c\145\164\145\137\x73\x75\143\143\145\163\x73\x66\165\x6c"
);
goto DFumR;
Ie2dp:
$this->db->trans_rollback();
goto cv6yZ;
NQGfJ:
$this->trigger_events(
"\160\162\145\x5f\x64\145\x6c\x65\164\x65\137\165\163\x65\x72"
);
goto a04Ls;
OYyaw:
$this->trigger_events([
"\160\157\x73\164\137\x64\145\x6c\145\x74\145\x5f\165\163\145\x72",
"\x70\157\x73\164\x5f\144\145\x6c\x65\164\145\137\165\163\x65\162\137\163\165\143\143\145\x73\x73\146\x75\154",
]);
goto Tt36I;
ZcpOG:
if (!($this->db->trans_status() === false)) {
goto gLuRf;
}
goto Ie2dp;
a04Ls:
$this->db->trans_begin();
goto xNcO4;
dYoMY:
return false;
goto gNt3k;
AHGT6:
$this->db->delete($this->tables["\165\163\x65\x72\x73"], [
"\151\144" => $id,
]);
goto ZcpOG;
RuiYY:
}
public function update_last_login($id)
{
goto ERtPd;
TVt_u:
return $this->db->affected_rows() == 1;
goto hi9my;
LCuGc:
$this->db->update(
$this->tables["\x75\x73\145\x72\163"],
["\x6c\141\163\164\137\154\157\147\151\x6e" => time()],
["\x69\x64" => $id]
);
goto TVt_u;
ERtPd:
$this->trigger_events(
"\x75\x70\144\x61\x74\145\137\x6c\141\x73\164\137\x6c\x6f\x67\x69\x6e"
);
goto Q3dtO;
Q3dtO:
$this->load->helper("\x64\x61\164\x65");
goto k_XQT;
k_XQT:
$this->trigger_events("\145\170\164\162\141\137\x77\150\x65\x72\145");
goto LCuGc;
hi9my:
}
public function set_lang($lang = "\x65\x6e")
{
goto KEfrj;
TvmBe:
$expire = $this->config->item(
"\x75\163\x65\x72\137\x65\170\x70\x69\x72\x65",
"\x69\157\x6e\x5f\141\165\x74\150"
);
goto Wzndx;
WB1a_:
$expire = self::MAX_COOKIE_LIFETIME;
goto rINs2;
VtR8a:
return true;
goto GtYgJ;
cKjHj:
viDbY:
goto WB1a_;
Wzndx:
goto lwwbB;
goto cKjHj;
A98LS:
if (
$this->config->item(
"\x75\163\145\162\x5f\145\x78\x70\x69\162\145",
"\x69\157\156\x5f\141\x75\164\x68"
) === 0
) {
goto viDbY;
}
goto TvmBe;
JtiwX:
set_cookie([
"\x6e\141\x6d\x65" => "\154\141\156\147\x5f\143\x6f\x64\x65",
"\x76\141\x6c\x75\145" => $lang,
"\x65\170\x70\151\x72\145" => $expire,
]);
goto VtR8a;
KEfrj:
$this->trigger_events("\x73\x65\x74\137\154\x61\x6e\147");
goto A98LS;
rINs2:
lwwbB:
goto JtiwX;
GtYgJ:
}
public function set_session($user)
{
goto fCSKw;
a6M63:
return true;
goto zQMl8;
Th8Hi:
$this->trigger_events(
"\x70\157\163\x74\x5f\163\x65\164\137\163\145\163\163\x69\x6f\x6e"
);
goto a6M63;
fCSKw:
$this->trigger_events(
"\160\x72\x65\x5f\x73\145\x74\137\163\145\163\163\151\x6f\156"
);
goto pvVCR;
f5AeU:
$this->session->set_userdata($session_data);
goto Th8Hi;
pvVCR:
$session_data = [
"\x69\x64\145\156\164\151\164\171" =>
$user->{$this->identity_column},
$this->identity_column => $user->{$this->identity_column},
"\145\155\x61\151\154" => $user->email,
"\x75\163\x65\162\x5f\x69\x64" => $user->id,
"\157\154\x64\x5f\x6c\141\163\x74\137\x6c\x6f\x67\151\156" =>
$user->last_login,
"\x6c\141\163\164\x5f\143\150\x65\x63\153" => time(),
];
goto f5AeU;
zQMl8:
}
public function remember_user($identity)
{
goto eEqmg;
MGhcY:
if ($identity) {
goto i8zqk;
}
goto UU2o9;
RuLYk:
$this->trigger_events([
"\x70\x6f\x73\x74\137\162\145\x6d\145\155\x62\145\x72\137\165\163\145\x72",
"\162\145\x6d\x65\155\x62\x65\x72\x5f\x75\x73\x65\162\137\165\156\x73\x75\143\143\x65\x73\163\146\x75\x6c",
]);
goto g77iO;
G0C8J:
JWNSF:
goto BcusD;
DX1sH:
set_cookie([
"\x6e\141\155\x65" => $this->config->item(
"\162\145\x6d\145\x6d\x62\x65\x72\137\x63\157\x6f\153\x69\x65\137\x6e\141\155\145",
"\x69\x6f\156\137\x61\x75\x74\150"
),
"\166\141\154\165\145" => $token->user_code,
"\x65\170\x70\x69\x72\145" => $expire,
]);
goto Jdyg4;
ucYz3:
Vun7M:
goto DX1sH;
eEqmg:
$this->trigger_events(
"\160\162\x65\x5f\162\145\x6d\145\x6d\142\x65\x72\x5f\165\163\x65\162"
);
goto MGhcY;
fnvc4:
if (!($this->db->affected_rows() > -1)) {
goto JWNSF;
}
goto xZYEJ;
UU2o9:
return false;
goto nH5Vb;
ymzPj:
$expire = $this->config->item(
"\x75\x73\145\x72\x5f\x65\x78\160\151\x72\145",
"\151\157\156\137\x61\165\164\x68"
);
goto gx83f;
g77iO:
return false;
goto f9akc;
nH5Vb:
i8zqk:
goto VdY7N;
BcusD:
S1BeJ:
goto RuLYk;
VdY7N:
$token = $this->_generate_selector_validator_couple();
goto pyU5Q;
JAZHz:
XfPYb:
goto M2dSf;
M2dSf:
$expire = self::MAX_COOKIE_LIFETIME;
goto ucYz3;
gx83f:
goto Vun7M;
goto JAZHz;
xZYEJ:
if (
$this->config->item(
"\165\x73\x65\x72\x5f\145\x78\x70\151\x72\x65",
"\x69\157\156\x5f\x61\165\x74\150"
) === 0
) {
goto XfPYb;
}
goto ymzPj;
pyU5Q:
if (!$token->validator_hashed) {
goto S1BeJ;
}
goto mEYNI;
mEYNI:
$this->db->update(
$this->tables["\165\163\x65\x72\163"],
[
"\x72\x65\155\145\x6d\142\x65\162\x5f\163\x65\x6c\145\143\x74\157\x72" =>
$token->selector,
"\x72\x65\155\x65\155\142\145\x72\x5f\x63\157\144\145" =>
$token->validator_hashed,
],
[$this->identity_column => $identity]
);
goto fnvc4;
Jdyg4:
$this->trigger_events([
"\x70\157\163\164\137\x72\145\155\x65\x6d\x62\145\162\x5f\165\163\145\x72",
"\162\145\155\x65\x6d\142\x65\x72\137\165\163\x65\162\137\163\x75\143\143\x65\163\x73\146\165\154",
]);
goto HFXMo;
HFXMo:
return true;
goto G0C8J;
f9akc:
}
public function login_remembered_user()
{
goto hWI3X;
j0aZF:
l9YcC:
goto kAmBt;
FzLTM:
g6q9r:
goto YFqLX;
f95FJ:
$this->trigger_events([
"\x70\157\163\x74\137\x6c\x6f\147\151\156\x5f\x72\145\x6d\145\x6d\x62\x65\x72\x65\x64\137\165\x73\x65\162",
"\160\x6f\x73\164\x5f\x6c\x6f\147\x69\156\x5f\162\x65\x6d\145\x6d\142\x65\x72\x65\x64\137\165\163\x65\162\x5f\165\156\163\165\143\x63\x65\163\163\146\165\x6c",
]);
goto boQFJ;
oNE8b:
return false;
goto Tg682;
vRm0A:
$this->trigger_events("\145\x78\x74\162\x61\137\167\150\x65\x72\145");
goto Kt4w_;
boQFJ:
return false;
goto nlPc_;
FMEVG:
$this->clear_forgotten_password_code($identity);
goto X4jXc;
By3Kt:
$this->update_last_login($user->id);
goto tnae9;
tnae9:
$this->set_session($user);
goto FMEVG;
X4jXc:
if (
!$this->config->item(
"\x75\163\x65\x72\137\x65\170\x74\145\x6e\144\x5f\x6f\156\137\x6c\157\147\151\x6e",
"\151\x6f\156\x5f\x61\165\x74\x68"
)
) {
goto g6q9r;
}
goto o3eKn;
o3eKn:
$this->remember_user($identity);
goto FzLTM;
Tg682:
oWNm3:
goto vRm0A;
kAmBt:
delete_cookie(
$this->config->item(
"\x72\x65\x6d\145\155\x62\x65\162\x5f\x63\157\157\x6b\151\145\137\x6e\141\x6d\145",
"\151\x6f\x6e\x5f\141\x75\x74\150"
)
);
goto f95FJ;
YFqLX:
$this->session->sess_regenerate(false);
goto fEy4X;
BL1MQ:
$user = $query->row();
goto xmdut;
h3sq1:
$token = $this->_retrieve_selector_validator_couple($remember_cookie);
goto lYBM3;
vyZpO:
return true;
goto rjfWT;
xmdut:
$identity = $user->{$this->identity_column};
goto waNEk;
m7kvo:
$this->trigger_events([
"\160\x6f\163\164\137\x6c\157\147\x69\x6e\137\162\x65\155\x65\x6d\142\145\x72\x65\x64\x5f\165\x73\145\x72",
"\x70\x6f\163\164\137\154\157\x67\x69\x6e\x5f\162\x65\x6d\x65\x6d\142\145\x72\145\x64\137\x75\x73\x65\x72\137\x75\156\163\165\143\143\145\163\x73\146\x75\x6c",
]);
goto oNE8b;
rjfWT:
idMH6:
goto j0aZF;
rG26K:
$remember_cookie = get_cookie(
$this->config->item(
"\162\x65\x6d\145\x6d\142\145\162\x5f\143\157\x6f\x6b\151\x65\137\156\x61\x6d\145",
"\x69\157\156\137\141\165\164\x68"
)
);
goto h3sq1;
fEy4X:
$this->trigger_events([
"\x70\157\x73\x74\137\x6c\157\147\151\x6e\137\162\x65\x6d\x65\155\x62\145\162\145\144\137\x75\x73\145\x72",
"\160\157\x73\x74\x5f\154\x6f\147\x69\156\137\162\145\155\145\155\142\x65\162\145\x64\137\x75\x73\x65\x72\137\x73\x75\x63\143\x65\163\163\x66\165\154",
]);
goto vyZpO;
lYBM3:
if (!($token === false)) {
goto oWNm3;
}
goto m7kvo;
waNEk:
if (
!$this->verify_password(
$token->validator,
$user->remember_code,
$identity
)
) {
goto idMH6;
}
goto By3Kt;
qF581:
if (!($query->num_rows() === 1)) {
goto l9YcC;
}
goto BL1MQ;
hWI3X:
$this->trigger_events(
"\x70\x72\x65\x5f\154\157\x67\x69\156\x5f\x72\145\155\x65\x6d\142\x65\x72\x65\144\137\165\163\145\x72"
);
goto rG26K;
Kt4w_:
$query = $this->db
->select(
$this->identity_column .
"\54\x20\x69\144\54\40\x65\155\141\x69\x6c\54\x20\x72\x65\x6d\x65\x6d\142\x65\x72\137\x63\x6f\144\x65\54\40\x6c\x61\163\164\x5f\x6c\157\x67\151\156"
)
->where(
"\x72\x65\155\x65\x6d\142\145\x72\x5f\x73\x65\x6c\145\x63\x74\x6f\x72",
$token->selector
)
->where("\141\143\164\x69\x76\145", 1)
->limit(1)
->get($this->tables["\165\163\145\x72\163"]);
goto qF581;
nlPc_:
}
public function create_group(
$group_name = false,
$group_description = "",
$additional_data = []
) {
goto bdMNc;
rn3E2:
$this->set_error(
"\147\x72\x6f\x75\x70\x5f\x61\x6c\x72\145\141\x64\171\137\x65\x78\151\x73\x74\163"
);
goto y6ftk;
I7TFM:
$group_id = $this->db->insert_id(
$this->tables["\147\x72\x6f\x75\x70\163"] .
"\137\151\144\x5f\x73\x65\x71"
);
goto NWA6g;
u_mj0:
$this->set_error(
"\147\162\x6f\x75\x70\x5f\x6e\141\x6d\145\137\162\x65\x71\165\151\x72\x65\x64"
);
goto Kd2Q1;
rp2h_:
g8Iq8:
goto vU0NJ;
Kd2Q1:
return false;
goto RDoUk;
RDoUk:
HfG_s:
goto QbRHd;
zWnbg:
$this->trigger_events(
"\145\170\x74\x72\x61\x5f\x67\x72\x6f\165\x70\137\163\145\x74"
);
goto cZLJV;
vU0NJ:
$data = [
"\156\141\155\x65" => $group_name,
"\x64\145\x73\x63\162\151\160\164\151\157\x6e" => $group_description,
];
goto VlE3k;
QbRHd:
$existing_group = $this->db
->get_where($this->tables["\x67\x72\x6f\x75\x70\x73"], [
"\156\x61\155\x65" => $group_name,
])
->num_rows();
goto j6YL9;
y6ftk:
return false;
goto rp2h_;
VlE3k:
if (empty($additional_data)) {
goto YvD4D;
}
goto auZfs;
NWA6g:
$this->set_message(
"\x67\x72\157\165\160\x5f\143\x72\x65\x61\164\151\157\x6e\137\x73\165\x63\143\x65\163\163\146\x75\x6c"
);
goto D9j0U;
cZLJV:
$this->db->insert($this->tables["\x67\x72\157\165\x70\x73"], $data);
goto I7TFM;
auZfs:
$data = array_merge(
$this->_filter_data(
$this->tables["\147\162\x6f\165\160\163"],
$additional_data
),
$data
);
goto epZID;
j6YL9:
if (!($existing_group !== 0)) {
goto g8Iq8;
}
goto rn3E2;
epZID:
YvD4D:
goto zWnbg;
D9j0U:
return $group_id;
goto V2MyJ;
bdMNc:
if ($group_name) {
goto HfG_s;
}
goto u_mj0;
V2MyJ:
}
public function update_group(
$group_id = false,
$group_name = false,
$additional_data = []
) {
goto AL3LN;
tXMNU:
$data = array_merge(
$this->_filter_data(
$this->tables["\x67\x72\x6f\165\x70\x73"],
$additional_data
),
$data
);
goto SoLYP;
SoLYP:
e9CVL:
goto k13rq;
wwakJ:
YAOjC:
goto Ng_KO;
sXFWj:
if (empty($group_name)) {
goto YAOjC;
}
goto Jkze0;
Ng_KO:
$group = $this->db
->get_where($this->tables["\147\x72\x6f\x75\x70\x73"], [
"\x69\x64" => $group_id,
])
->row();
goto nHcZ1;
eRg1W:
if (!(isset($existing_group->id) && $existing_group->id != $group_id)) {
goto rDt_P;
}
goto LRf0H;
WKlG8:
$data["\156\141\x6d\145"] = $group_name;
goto wwakJ;
k13rq:
$this->db->update($this->tables["\147\x72\157\x75\160\x73"], $data, [
"\151\144" => $group_id,
]);
goto jr7yN;
lHtZL:
return false;
goto eVuiA;
Jkze0:
$existing_group = $this->db
->get_where($this->tables["\x67\162\157\165\x70\x73"], [
"\156\141\x6d\145" => $group_name,
])
->row();
goto eRg1W;
AL3LN:
if (!empty($group_id)) {
goto T4iGt;
}
goto lHtZL;
r2WBa:
if (empty($additional_data)) {
goto e9CVL;
}
goto tXMNU;
LRf0H:
$this->set_error(
"\147\162\x6f\165\160\x5f\x61\x6c\162\145\x61\144\171\137\145\x78\151\163\x74\x73"
);
goto YvTgB;
nHcZ1:
if (
!(
$this->config->item(
"\141\144\155\151\x6e\137\x67\x72\157\x75\x70",
"\151\157\x6e\x5f\x61\165\164\150"
) === $group->name && $group_name !== $group->name
)
) {
goto Yt4rB;
}
goto anrbk;
anrbk:
$this->set_error(
"\147\x72\157\165\x70\x5f\x6e\x61\155\145\x5f\141\144\x6d\151\156\x5f\x6e\157\164\137\141\154\x74\145\162"
);
goto x4AuM;
Ivi7i:
rDt_P:
goto WKlG8;
YvTgB:
return false;
goto Ivi7i;
jr7yN:
$this->set_message(
"\x67\162\157\165\160\x5f\x75\x70\x64\x61\x74\145\137\163\x75\143\143\x65\x73\x73\146\165\x6c"
);
goto usGY3;
eVuiA:
T4iGt:
goto iCjJV;
jYGyx:
Yt4rB:
goto r2WBa;
iCjJV:
$data = [];
goto sXFWj;
x4AuM:
return false;
goto jYGyx;
usGY3:
return true;
goto mjUTM;
mjUTM:
}
public function delete_group($group_id = false)
{
goto KRFaE;
rcO9m:
$this->db->trans_commit();
goto GuzJI;
nouEk:
$this->set_message(
"\147\162\157\165\160\x5f\144\145\x6c\145\164\145\x5f\x73\x75\x63\143\x65\x73\x73\x66\x75\154"
);
goto KawT0;
nk6K0:
fVetW:
goto rcO9m;
jyqGT:
$this->set_error(
"\147\162\157\x75\160\x5f\x64\x65\x6c\145\164\x65\x5f\x75\156\163\165\143\x63\x65\163\163\x66\165\x6c"
);
goto mQCj3;
kI2Cw:
if (!($this->db->trans_status() === false)) {
goto fVetW;
}
goto ukV4f;
KNEed:
IPRhu:
goto ogxQ3;
qnZEH:
$this->db->trans_begin();
goto ndqEm;
ogxQ3:
$this->trigger_events(
"\160\162\145\x5f\x64\145\x6c\x65\164\x65\x5f\x67\162\157\x75\x70"
);
goto qnZEH;
vDSSS:
$this->trigger_events([
"\160\157\x73\x74\x5f\x64\x65\x6c\145\164\x65\137\147\162\x6f\165\160",
"\160\157\163\164\x5f\x64\x65\x6c\x65\164\x65\x5f\147\x72\x6f\x75\x70\137\156\157\164\141\154\154\157\x77\145\x64",
]);
goto FHD3G;
b3SAt:
$this->db->delete($this->tables["\x67\162\157\165\x70\x73"], [
"\x69\x64" => $group_id,
]);
goto kI2Cw;
FgHKP:
return false;
goto KNEed;
GuzJI:
$this->trigger_events([
"\x70\x6f\163\164\137\x64\x65\154\x65\x74\145\137\x67\x72\x6f\165\x70",
"\160\157\163\164\x5f\x64\x65\154\x65\x74\145\x5f\147\x72\157\x75\160\x5f\x73\x75\x63\x63\145\x73\x73\146\x75\154",
]);
goto nouEk;
ndqEm:
$this->db->delete(
$this->tables["\165\x73\x65\162\x73\x5f\x67\162\x6f\x75\x70\x73"],
[$this->join["\x67\162\157\165\160\x73"] => $group_id]
);
goto b3SAt;
ukV4f:
$this->db->trans_rollback();
goto QGn1z;
SMiUK:
return false;
goto ND3wb;
ND3wb:
xOv9B:
goto h7PLo;
mQCj3:
return false;
goto nk6K0;
QGn1z:
$this->trigger_events([
"\160\157\x73\164\x5f\144\x65\154\145\164\145\137\147\162\x6f\165\160",
"\160\157\163\164\x5f\144\x65\154\145\x74\145\137\147\x72\157\165\x70\x5f\x75\x6e\163\x75\143\x63\145\x73\163\146\x75\154",
]);
goto jyqGT;
KawT0:
return true;
goto ATQ7S;
FHD3G:
$this->set_error(
"\147\162\157\165\x70\x5f\144\x65\x6c\145\164\145\x5f\x6e\x6f\164\x61\154\154\157\167\x65\144"
);
goto FgHKP;
KRFaE:
if (!(!$group_id || empty($group_id))) {
goto xOv9B;
}
goto SMiUK;
M_IQZ:
if (
!(
$group->name ==
$this->config->item(
"\x61\x64\155\151\x6e\137\147\162\x6f\x75\160",
"\151\x6f\x6e\137\141\165\164\150"
)
)
) {
goto IPRhu;
}
goto vDSSS;
h7PLo:
$group = $this->group($group_id)->row();
goto M_IQZ;
ATQ7S:
}
public function set_hook($event, $name, $class, $method, $arguments)
{
goto Xuh4D;
SAaEc:
$this->_ion_hooks->{$event}[$name]->method = $method;
goto OdC2_;
OdC2_:
$this->_ion_hooks->{$event}[$name]->arguments = $arguments;
goto b7qX8;
rYmae:
$this->_ion_hooks->{$event}[$name]->class = $class;
goto SAaEc;
Xuh4D:
$this->_ion_hooks->{$event}[$name] = new stdClass();
goto rYmae;
b7qX8:
}
public function remove_hook($event, $name)
{
goto Rpmxt;
cW2cd:
unset($this->_ion_hooks->{$event}[$name]);
goto ei0Dm;
ei0Dm:
pFp9t:
goto ge8zq;
Rpmxt:
if (!isset($this->_ion_hooks->{$event}[$name])) {
goto pFp9t;
}
goto cW2cd;
ge8zq:
}
public function remove_hooks($event)
{
goto yHP1S;
t4lNn:
unset($this->_ion_hooks->{$event});
goto EjEB4;
EjEB4:
kQck3:
goto x6oVn;
yHP1S:
if (!isset($this->_ion_hooks->{$event})) {
goto kQck3;
}
goto t4lNn;
x6oVn:
}
protected function _call_hook($event, $name)
{
goto Y5e21;
oKvRH:
WNeLA:
goto ufzU3;
ufzU3:
return false;
goto Pbxsb;
Gp3Ae:
$hook = $this->_ion_hooks->{$event}[$name];
goto d3B_z;
Y5e21:
if (
!(
isset($this->_ion_hooks->{$event}[$name]) &&
method_exists(
$this->_ion_hooks->{$event}[$name]->class,
$this->_ion_hooks->{$event}[$name]->method
)
)
) {
goto WNeLA;
}
goto Gp3Ae;
d3B_z:
return call_user_func_array(
[$hook->class, $hook->method],
$hook->arguments
);
goto oKvRH;
Pbxsb:
}
public function trigger_events($events)
{
goto tnxGr;
Eo5Z3:
oEvnm:
goto yqNgd;
REQDN:
DHTZc:
goto oCTmD;
PPM5E:
WNU9x:
goto REQDN;
oCTmD:
goto CKBpo;
goto TUITn;
tfbpX:
foreach ($events as $event) {
$this->trigger_events($event);
HPbvF:
}
goto Eo5Z3;
hMU5J:
foreach ($this->_ion_hooks->{$events} as $name => $hook) {
$this->_call_hook($events, $name);
vzaeZ:
}
goto PPM5E;
tnxGr:
if (is_array($events) && !empty($events)) {
goto dr9bN;
}
goto Epcoc;
Epcoc:
if (
!(
isset($this->_ion_hooks->{$events}) &&
!empty($this->_ion_hooks->{$events})
)
) {
goto DHTZc;
}
goto hMU5J;
TUITn:
dr9bN:
goto tfbpX;
yqNgd:
CKBpo:
goto Z05sG;
Z05sG:
}
public function set_message_delimiters($start_delimiter, $end_delimiter)
{
goto fZqkV;
LPZlu:
$this->message_end_delimiter = $end_delimiter;
goto KTHKK;
KTHKK:
return true;
goto h36I6;
fZqkV:
$this->message_start_delimiter = $start_delimiter;
goto LPZlu;
h36I6:
}
public function set_error_delimiters($start_delimiter, $end_delimiter)
{
goto X2ZoU;
x50gn:
return true;
goto ZhFW9;
X2ZoU:
$this->error_start_delimiter = $start_delimiter;
goto iv3ff;
iv3ff:
$this->error_end_delimiter = $end_delimiter;
goto x50gn;
ZhFW9:
}
public function set_message($message)
{
$this->messages[] = $message;
return $message;
}
public function messages()
{
goto As2JM;
L1H3A:
foreach ($this->messages as $message) {
goto sz7c1;
sz7c1:
$messageLang = $this->lang->line($message)
? $this->lang->line($message)
: "\x23\43" . $message . "\x23\x23";
goto s1Abk;
s1Abk:
$_output .=
$this->message_start_delimiter .
$messageLang .
$this->message_end_delimiter;
goto E9UCK;
E9UCK:
K6BCP:
goto pbqww;
pbqww:
}
goto Upz87;
HkUqS:
return $_output;
goto rteAS;
As2JM:
$_output = "";
goto L1H3A;
Upz87:
dTRbR:
goto HkUqS;
rteAS:
}
public function messages_array($langify = true)
{
goto D6pW7;
YPJ0A:
goto sybWl;
goto w0h55;
TjLyO:
MYna0:
goto L94zz;
D6pW7:
if ($langify) {
goto ddOUo;
}
goto v4yKQ;
U9UNa:
foreach ($this->messages as $message) {
goto Y1rC3;
Y1rC3:
$messageLang = $this->lang->line($message)
? $this->lang->line($message)
: "\43\43" . $message . "\43\43";
goto mO33g;
mO33g:
$_output[] =
$this->message_start_delimiter .
$messageLang .
$this->message_end_delimiter;
goto hsWHs;
hsWHs:
e9TUs:
goto MZ9Z0;
MZ9Z0:
}
goto TjLyO;
NjFri:
$_output = [];
goto U9UNa;
v4yKQ:
return $this->messages;
goto YPJ0A;
w0h55:
ddOUo:
goto NjFri;
L94zz:
return $_output;
goto W6iN0;
W6iN0:
sybWl:
goto AFl2M;
AFl2M:
}
public function clear_messages()
{
$this->messages = [];
return true;
}
public function set_error($error)
{
$this->errors[] = $error;
return $error;
}
public function errors()
{
goto SnqLz;
UTkKx:
return $_output;
goto ddoQE;
q2Jtt:
foreach ($this->errors as $error) {
goto Q8xDQ;
Q8xDQ:
$errorLang = $this->lang->line($error)
? $this->lang->line($error)
: "\43\x23" . $error . "\43\x23";
goto GO0nP;
GO0nP:
$_output .=
$this->error_start_delimiter .
$errorLang .
$this->error_end_delimiter;
goto Ux5NH;
Ux5NH:
oGzYz:
goto MVC1G;
MVC1G:
}
goto XejPh;
SnqLz:
$_output = "";
goto q2Jtt;
XejPh:
Z8_jH:
goto UTkKx;
ddoQE:
}
public function errors_array($langify = true)
{
goto EMsXI;
cR12T:
$_output = [];
goto UKn8z;
IevpU:
CWgT1:
goto XyUHa;
UKn8z:
foreach ($this->errors as $error) {
goto uWkRa;
uWkRa:
$errorLang = $this->lang->line($error)
? $this->lang->line($error)
: "\x23\x23" . $error . "\x23\43";
goto p5ywf;
MeV7T:
JEudu:
goto vueI0;
p5ywf:
$_output[] =
$this->error_start_delimiter .
$errorLang .
$this->error_end_delimiter;
goto MeV7T;
vueI0:
}
goto IevpU;
XyUHa:
return $_output;
goto I3YSR;
P0kUn:
return $this->errors;
goto mBjQd;
mBjQd:
goto TC8qM;
goto ReuUq;
ReuUq:
plgty:
goto cR12T;
I3YSR:
TC8qM:
goto ohpJH;
EMsXI:
if ($langify) {
goto plgty;
}
goto P0kUn;
ohpJH:
}
public function clear_errors()
{
$this->errors = [];
return true;
}
protected function _set_password_db($identity, $password)
{
goto kAAnY;
kAAnY:
$hash = $this->hash_password($password, $identity);
goto udYvy;
RjQ0r:
T2qc6:
goto pgZjN;
Mbg5K:
$this->db->update($this->tables["\165\163\145\x72\163"], $data, [
$this->identity_column => $identity,
]);
goto Au_ou;
pgZjN:
$data = [
"\x70\141\x73\163\167\x6f\x72\144" => $hash,
"\x72\x65\155\145\155\x62\145\162\x5f\x63\x6f\x64\x65" => null,
"\146\x6f\162\147\157\164\164\145\x6e\137\160\x61\163\x73\167\x6f\x72\x64\x5f\143\157\144\145" => null,
"\146\157\162\147\x6f\x74\164\145\156\x5f\160\141\x73\163\167\157\162\144\137\164\x69\155\x65" => null,
];
goto ywVI5;
ywVI5:
$this->trigger_events("\145\170\164\x72\x61\137\x77\x68\x65\x72\x65");
goto Mbg5K;
Z8S0n:
return false;
goto RjQ0r;
Au_ou:
return $this->db->affected_rows() == 1;
goto pPpUy;
udYvy:
if (!($hash === false)) {
goto T2qc6;
}
goto Z8S0n;
pPpUy:
}
protected function _filter_data($table, $data)
{
goto nuYBY;
nuYBY:
$filtered_data = [];
goto XnrVM;
XnrVM:
$columns = $this->db->list_fields($table);
goto cJv9o;
daOTy:
return $filtered_data;
goto nJiaP;
cJv9o:
if (!is_array($data)) {
goto YfGuE;
}
goto qKOHu;
Wydbb:
w7tG1:
goto A4Jx3;
qKOHu:
foreach ($columns as $column) {
goto KyaJb;
KyaJb:
if (!array_key_exists($column, $data)) {
goto xrXnh;
}
goto L_6Jt;
L_6Jt:
$filtered_data[$column] = $data[$column];
goto r5h5R;
O3B6j:
gITJU:
goto SXGI0;
r5h5R:
xrXnh:
goto O3B6j;
SXGI0:
}
goto Wydbb;
A4Jx3:
YfGuE:
goto daOTy;
nJiaP:
}
protected function _random_token($result_length = 32)
{
goto hfnb1;
ddAZL:
return bin2hex(
mcrypt_create_iv($result_length / 2, MCRYPT_DEV_URANDOM)
);
goto YlCVA;
boFkq:
r3buZ:
goto YXw0p;
RtTMq:
if (
!function_exists(
"\x6d\143\162\171\160\x74\x5f\x63\162\x65\x61\164\x65\137\151\166"
)
) {
goto LGqMz;
}
goto ddAZL;
W91Vm:
$result_length = 32;
goto boFkq;
ajP9K:
if (
!function_exists(
"\x6f\x70\145\156\x73\x73\154\137\x72\x61\156\144\157\155\x5f\x70\163\x65\165\144\x6f\x5f\142\171\164\x65\163"
)
) {
goto JNrS2;
}
goto rS6U6;
rS6U6:
return bin2hex(openssl_random_pseudo_bytes($result_length / 2));
goto ntCqb;
hfnb1:
if (!(!isset($result_length) || intval($result_length) <= 8)) {
goto r3buZ;
}
goto W91Vm;
HoIvO:
return bin2hex(random_bytes($result_length / 2));
goto qqRdi;
YXw0p:
if (
!function_exists("\162\141\x6e\144\157\155\137\x62\x79\x74\x65\163")
) {
goto W2oBr;
}
goto HoIvO;
wXojB:
return false;
goto krhgN;
ntCqb:
JNrS2:
goto wXojB;
qqRdi:
W2oBr:
goto RtTMq;
YlCVA:
LGqMz:
goto ajP9K;
krhgN:
}
protected function _get_hash_parameters($identity = null)
{
goto kbF0S;
vDLf4:
switch ($this->hash_method) {
case "\x62\x63\162\171\x70\x74":
$params = [
"\x63\157\163\x74" => $is_admin
? $this->config->item(
"\x62\143\x72\171\160\164\x5f\x61\144\155\x69\156\x5f\143\157\163\x74",
"\151\x6f\156\137\141\x75\164\150"
)
: $this->config->item(
"\x62\143\x72\171\x70\164\137\x64\145\146\x61\x75\154\164\137\x63\x6f\163\x74",
"\x69\x6f\156\x5f\x61\165\164\150"
),
];
goto uc25u;
case "\x61\162\x67\x6f\156\x32":
$params = $is_admin
? $this->config->item(
"\141\162\x67\157\156\62\x5f\141\144\155\x69\156\x5f\x70\141\162\x61\155\x73",
"\151\157\x6e\137\141\165\x74\150"
)
: $this->config->item(
"\141\162\147\x6f\156\x32\x5f\x64\x65\x66\141\165\154\x74\x5f\160\141\x72\141\155\x73",
"\x69\x6f\x6e\x5f\141\165\164\x68"
);
goto uc25u;
default:
}
goto ufejx;
JSYYy:
wOYTl:
goto HeZ6a;
gOqyY:
$is_admin = true;
goto gkmRo;
f0x2o:
if (
!(
$user_id &&
$this->in_group(
$this->config->item(
"\141\144\x6d\151\x6e\x5f\x67\162\x6f\165\160",
"\151\x6f\x6e\137\x61\165\164\150"
),
$user_id
)
)
) {
goto EKbX9;
}
goto gOqyY;
m91Bs:
if (!$identity) {
goto wOYTl;
}
goto nSf5O;
kbF0S:
$is_admin = false;
goto m91Bs;
Biwuk:
uc25u:
goto DujPI;
nSf5O:
$user_id = $this->get_user_id_from_identity($identity);
goto f0x2o;
gkmRo:
EKbX9:
goto JSYYy;
HeZ6a:
$params = false;
goto vDLf4;
ufejx:
CZ363:
goto Biwuk;
DujPI:
return $params;
goto Tu2B5;
Tu2B5:
}
protected function _get_hash_algo()
{
goto Rfwll;
rkD9S:
return $algo;
goto AI5m2;
Rfwll:
$algo = false;
goto t4br2;
Fq2Hm:
ilWhc:
goto giY5J;
t4br2:
switch ($this->hash_method) {
case "\x62\143\162\171\x70\x74":
$algo = PASSWORD_BCRYPT;
goto LNlHQ;
case "\x61\x72\x67\x6f\156\x32":
$algo = PASSWORD_ARGON2I;
goto LNlHQ;
default:
}
goto Fq2Hm;
giY5J:
LNlHQ:
goto rkD9S;
AI5m2:
}
protected function _generate_selector_validator_couple(
$selector_size = 40,
$validator_size = 128
) {
goto ZVqDy;
ZVqDy:
$selector = $this->_random_token($selector_size);
goto oN9IR;
YtQvV:
$validator_hashed = $this->hash_password($validator);
goto Xd0GL;
nLW9P:
return (object) [
"\163\x65\154\145\143\164\157\162" => $selector,
"\166\141\x6c\151\x64\141\x74\157\x72\x5f\x68\x61\x73\x68\x65\144" => $validator_hashed,
"\165\x73\x65\162\137\x63\x6f\x64\x65" => $user_code,
];
goto UWdhY;
Xd0GL:
$user_code = "{$selector}\x2e{$validator}";
goto nLW9P;
oN9IR:
$validator = $this->_random_token($validator_size);
goto YtQvV;
UWdhY:
}
protected function _retrieve_selector_validator_couple($user_code)
{
goto Cg_iz;
Cg_iz:
if (!$user_code) {
goto C0aTJ;
}
goto mhXF7;
ymCaQ:
if (!(count($tokens) === 2)) {
goto Rs2Y0;
}
goto Vgu9y;
Vgu9y:
return (object) [
"\x73\145\x6c\145\143\x74\x6f\162" => $tokens[0],
"\166\141\154\151\x64\141\x74\157\x72" => $tokens[1],
];
goto IQG8B;
mhXF7:
$tokens = explode("\x2e", $user_code);
goto ymCaQ;
hpebr:
C0aTJ:
goto pI0Rq;
IQG8B:
Rs2Y0:
goto hpebr;
pI0Rq:
return false;
goto g7d6i;
g7d6i:
}
protected function _password_verify_sha1_legacy(
$identity,
$password,
$hashed_password_db
) {
goto Y_a8F;
IjYM5:
HWas_:
goto JVH6c;
VH_so:
if ($salt_length) {
goto XZ4NE;
}
goto bXLHw;
r8aw1:
goto HWas_;
goto UkaPq;
zNqJ3:
if ($result) {
goto y3WEo;
}
goto tjlIh;
bq1ve:
g2LyH:
goto Lx1WX;
Y_a8F:
$this->trigger_events(
"\160\x72\145\x5f\x73\x68\x61\61\137\x70\x61\x73\163\x77\157\162\x64\x5f\x6d\151\x67\162\x61\x74\x69\x6f\x6e"
);
goto mpybt;
jTxLI:
rWzQn:
goto opfSX;
t7337:
$query = $this->db
->select("\x73\141\154\164")
->where($this->identity_column, $identity)
->limit(1)
->get($this->tables["\x75\163\x65\x72\163"]);
goto dw_pZ;
Hh8LT:
goto r1jEo;
goto WHdHH;
Mf4vM:
return $result;
goto jTxLI;
mpybt:
if (
$this->config->item(
"\163\164\x6f\x72\145\137\163\x61\154\164",
"\151\x6f\x6e\x5f\x61\165\x74\150"
)
) {
goto pV_8w;
}
goto Nd076;
ydnRF:
$this->trigger_events([
"\160\x6f\x73\164\137\x73\x68\x61\x31\137\x70\x61\163\x73\167\x6f\162\x64\137\155\151\147\162\141\x74\151\x6f\156",
"\x70\157\x73\164\x5f\163\x68\141\61\x5f\160\x61\x73\x73\167\x6f\162\144\137\x6d\x69\x67\162\x61\x74\151\157\x6e\137\163\165\143\143\x65\163\x73\x66\165\154",
]);
goto MqVFV;
MqVFV:
r1jEo:
goto Mf4vM;
Lx1WX:
$result = $this->_set_password_db($identity, $password);
goto zNqJ3;
bXLHw:
$this->trigger_events([
"\160\x6f\x73\x74\137\163\x68\141\61\137\160\x61\x73\163\x77\157\162\x64\137\x6d\151\x67\x72\141\x74\x69\157\156",
"\160\157\x73\164\x5f\x73\150\141\61\x5f\160\x61\x73\x73\x77\x6f\162\144\137\155\x69\x67\x72\141\164\x69\157\156\x5f\165\x6e\x73\165\143\x63\x65\x73\163\x66\165\154",
]);
goto Z7ZQ1;
dJJw0:
$this->trigger_events([
"\x70\157\163\164\x5f\x73\x68\x61\x31\x5f\x70\x61\163\163\x77\157\x72\144\x5f\155\151\x67\x72\x61\x74\x69\157\x6e",
"\160\157\163\x74\137\163\150\141\61\x5f\160\141\x73\163\167\x6f\162\144\x5f\155\151\147\x72\141\164\151\x6f\x6e\x5f\165\x6e\x73\165\143\143\145\163\x73\146\165\154",
]);
goto vFbmr;
LQkTd:
$hashed_password = sha1($password . $salt_db->salt);
goto IjYM5;
dw_pZ:
$salt_db = $query->row();
goto ucz6Q;
vcFW2:
$salt = substr($hashed_password_db, 0, $salt_length);
goto OYbC7;
tjlIh:
$this->trigger_events([
"\x70\157\163\164\x5f\x73\x68\141\x31\x5f\160\x61\x73\x73\x77\157\162\144\137\155\151\147\x72\141\164\x69\157\156",
"\160\157\x73\x74\x5f\x73\x68\x61\x31\137\160\x61\x73\x73\x77\x6f\x72\144\137\x6d\x69\x67\x72\x61\x74\x69\x6f\x6e\x5f\x75\x6e\163\x75\x63\x63\145\163\163\146\x75\x6c",
]);
goto Hh8LT;
Z7ZQ1:
return false;
goto Rqkxc;
vFbmr:
return false;
goto qwqXc;
JVH6c:
if ($hashed_password === $hashed_password_db) {
goto g2LyH;
}
goto dJJw0;
UkaPq:
pV_8w:
goto t7337;
Rqkxc:
XZ4NE:
goto vcFW2;
dVyub:
$this->trigger_events([
"\160\157\163\x74\x5f\x73\150\x61\x31\137\160\141\x73\x73\167\x6f\162\144\137\155\151\x67\x72\141\164\x69\157\156",
"\160\x6f\163\x74\x5f\x73\150\141\61\137\160\141\x73\163\x77\x6f\162\144\x5f\x6d\151\x67\x72\x61\164\x69\157\x6e\x5f\165\x6e\x73\x75\x63\x63\x65\x73\x73\146\165\154",
]);
goto vfujE;
nbM2w:
OufCS:
goto LQkTd;
Nd076:
$salt_length = $this->config->item(
"\163\141\154\x74\137\154\145\156\x67\x74\150",
"\x69\157\x6e\137\141\165\x74\x68"
);
goto VH_so;
OYbC7:
$hashed_password =
$salt . substr(sha1($salt . $password), 0, -$salt_length);
goto r8aw1;
ucz6Q:
if (!($query->num_rows() !== 1)) {
goto OufCS;
}
goto dVyub;
vfujE:
return false;
goto nbM2w;
WHdHH:
y3WEo:
goto ydnRF;
qwqXc:
goto rWzQn;
goto bq1ve;
opfSX:
}
}
Function Calls
None |
Stats
MD5 | af2027524944c7aada980b1cdaca0ff8 |
Eval Count | 0 |
Decode Time | 121 ms |