Esempio n. 1
0
 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;
 }
Esempio n. 2
0
File: view.php Progetto: uldisn/ace
        $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 
Esempio n. 3
0
 /**
  * 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));
 }