public static function validate($user_id) { if (empty($_SERVER['REMOTE_ADDR'])) { return false; } $long_ip = self::_ip2long($_SERVER['REMOTE_ADDR']); if ($long_ip === false) { return false; } $criteria = new CDbCriteria(); $criteria->compare('t.uxip_user_id', $user_id); $user_ip_list = UxipUserXIpTable::model()->findAll($criteria); foreach ($user_ip_list as $user_ip) { $ip = IptbIpTable::model()->findByPk($user_ip->uxip_iptb_id); if ($ip->iptb_status == BaseIptbIpTable::IPTB_STATUS_ACTIVE) { $long_from = self::_ip2long($ip->iptb_from); $long_to = self::_ip2long($ip->iptb_to); if ($long_from === false || $long_to === false) { continue; } if ($long_ip >= $long_from && $long_ip <= $long_to) { return true; } } } return false; }
$list[$ccmp['ccmp_id']] = $ccmp['ccmp_name']; } } else { //get user sys companies foreach ($companies_list as $mCcmp) { $list[$mCcmp['ccmp_id']] = $mCcmp['ccmp_name']; } } $body = CHtml::checkBoxList('user_sys_ccmp_id', $aChecked, $list, array('labelOptions' => array('style' => 'display: inline'), 'template' => '{input}<span class="lbl"></span> {label}', 'class' => 'ace')); $this->widget('AceBox', array('header_text' => UserModule::t('Sys companies'), 'body' => $body)); /** * IP Tables */ $security_policy = Yii::app()->getModule('user')->SecurityPolicy; if ($security_policy['useIpTables']) { $aChecked = UxipUserXIpTable::model()->getUserIpTables($model->id); $Iptb_list = IptbIpTable::model()->findAll(); $list = array(); foreach ($Iptb_list as $Iptb) { $list[$Iptb['iptb_id']] = Yii::t('roles', $Iptb['iptb_name']); } $body = CHtml::checkBoxList('ip_tables', $aChecked, $list, array('labelOptions' => array('style' => 'display: inline'), 'template' => '{input}<span class="lbl"></span> {label}', 'class' => 'ace')); $this->widget('AceBox', array('header_text' => UserModule::t('IP Tables'), 'body' => $body)); } ?> <div class="btn-toolbar pull-left"> <div class="btn-group"> <?php
/** * Displays a particular model. */ public function actionView() { $this->layout = ''; $model = $this->loadModel(); //update record if (Yii::app()->user->checkAccess("UserAdmin") && (isset($_POST['user_role_name']) || isset($_POST['user_sys_ccmp_id']) || isset($_POST['ip_tables']))) { //cheked roles $aChecked = Authassignment::model()->getUserRoles($model->id); $admin_role = Yii::app()->getModule('rights')->superuserName; //for administrator can not save changes of roles if (!in_array($admin_role, $aChecked)) { //get in form checked $aPostRole = array(); if (isset($_POST['user_role_name'])) { foreach ($_POST['user_role_name'] as $nRoleId) { $aPostRole[] = $nRoleId; } } $aDelRole = array_diff($aChecked, $aPostRole); $aNewRole = array_diff($aPostRole, $aChecked); $UserAdminRoles = Yii::app()->getModule('user')->UserAdminRoles; foreach ($aNewRole as $sRoleName) { // can not add no User Admin roles defined in main config if (!in_array($sRoleName, $UserAdminRoles)) { continue; } $aa_model = new Authassignment(); $aa_model->itemname = $sRoleName; $aa_model->userid = $model->id; if (!$aa_model->save()) { print_r($aa_model->errors); exit; } } if (!empty($aDelRole)) { $criteria = new CDbCriteria(); $criteria->compare('userid', $model->id)->compare('itemname', $aDelRole); Authassignment::model()->deleteAll($criteria); } } //checked companies $aUserCompanies = CcucUserCompany::model()->getUserCompnies($model->id, CcucUserCompany::CCUC_STATUS_SYS); $aChecked = array(); foreach ($aUserCompanies as $UC) { $aChecked[] = $UC->ccuc_ccmp_id; } //get in form checked $aPostSysCcmp = array(); if (isset($_POST['user_sys_ccmp_id'])) { foreach ($_POST['user_sys_ccmp_id'] as $ccmp_id) { $aPostSysCcmp[] = $ccmp_id; } } $aDelSysCcmpid = array_diff($aChecked, $aPostSysCcmp); $aNewSysCcmpid = array_diff($aPostSysCcmp, $aChecked); $list = array(); if (UserModule::isAdmin()) { //for admin get all sys companies $criteria = new CDbCriteria(); $criteria->compare('t.ccxg_ccgr_id', 1); //1 - syscompany $model_ccxg = CcxgCompanyXGroup::model()->findAll($criteria); foreach ($model_ccxg as $mCcxg) { $list[$mCcxg->ccxg_ccmp_id] = 1; } } else { foreach (Yii::app()->sysCompany->getClientCompanies() as $mCcmp) { $list[$mCcmp['ccmp_id']] = 1; } } foreach ($aNewSysCcmpid as $cmmp_id) { // can not add no User Admin sys ccmp if (!isset($list[$cmmp_id])) { continue; } //create ccuc (company <==> person) $mCcuc = new CcucUserCompany(); $mCcuc->ccuc_ccmp_id = $cmmp_id; $mCcuc->ccuc_status = CcucUserCompany::CCUC_STATUS_SYS; $mCcuc->ccuc_person_id = $model->profile->person_id; //$mCcuc->save(); if (!$mCcuc->save()) { print_r($mCcuc->errors); exit; } } if (!empty($aDelSysCcmpid)) { $criteria = new CDbCriteria(); $criteria->compare('ccuc_status', CcucUserCompany::CCUC_STATUS_SYS)->compare('ccuc_person_id', $model->profile->person_id)->compare('ccuc_ccmp_id', $aDelSysCcmpid); CcucUserCompany::model()->deleteAll($criteria); } $security_policy = Yii::app()->getModule('user')->SecurityPolicy; if ($security_policy['useIpTables']) { UxipUserXIpTable::model()->deleteAll("`uxip_user_id` = :uxip_user_id ", [':uxip_user_id' => $model->id]); if (!empty($_POST['ip_tables'])) { foreach ($_POST['ip_tables'] as $ip) { $Iptb = new UxipUserXIpTable(); $Iptb->uxip_user_id = $model->id; $Iptb->uxip_iptb_id = $ip; if (!$Iptb->save()) { print_r($Iptb->errors); exit; } } } } } $view = 'view'; if (Yii::app()->getModule('user')->view) { $alt_view = Yii::app()->getModule('user')->view . '.admin.' . $view; if (is_readable(Yii::getPathOfAlias($alt_view) . '.php')) { $view = $alt_view; $this->layout = Yii::app()->getModule('user')->layout; } } $model = $this->loadModel(); $this->render($view, array('model' => $model)); }