Example #1
0
 public function index()
 {
     if (Session::getActiveUserid() != null) {
         App::redirect(__ADMINPANE__ . '/mainside');
     }
     $form = new FormEngine\Elements\Form(array('name' => 'forgotlogin', 'action' => '', 'method' => 'post', 'class' => 'login-form'));
     $form->AddChild(new FormEngine\Elements\TextField(array('name' => 'login', 'label' => _('TXT_EMAIL_FORM_LOGIN'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_LOGIN_FORM_LOGIN'))))));
     $form->AddChild(new FormEngine\Elements\Submit(array('name' => 'log_in', 'label' => _('TXT_FORGOT_PASSWORD'))));
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\NoCode());
     if ($form->Validate(FormEngine\FE::SubmittedData())) {
         $loginValues = $form->getSubmitValues(FormEngine\Elements\Form::FORMAT_FLAT);
         $result = App::getModel('login')->checkUsers($loginValues['login']);
         if ($result == 0) {
             Session::setVolatileLoginError(1, false);
         } else {
             $password = Core::passwordGenerate();
             App::getModel('login')->changeUsersPassword($result, $password);
             $this->registry->template->assign('password', $password);
             App::getModel('mailer')->sendEmail(array('template' => 'forgotUsers', 'email' => array($_POST['login']), 'bcc' => false, 'subject' => _('TXT_FORGOT_PASSWORD'), 'viewid' => Helper::getViewId()));
             Session::setVolatileMessage("Nowe hasło zostało wysłane na podany adres e-mail.");
             App::redirect('login');
         }
     }
     $error = Session::getVolatileLoginError();
     if ($error[0] == 1) {
         $this->registry->template->assign('error', _('ERR_BAD_EMAIL'));
     }
     $languages = App::getModel('language')->getLanguages();
     $this->registry->xajax->processRequest();
     $this->registry->template->assign('xajax', $this->registry->xajax->getJavascript());
     $this->registry->template->assign('form', $form->Render());
     $this->registry->template->assign('languages', json_encode($languages));
     $this->registry->template->display($this->loadTemplate('index.tpl'));
 }
Example #2
0
 public function index()
 {
     if (strlen($this->registry->core->getParam()) > 0) {
         $result = App::getModel('login')->authProccessSha($this->registry->core->getParam());
         if ($result == 1) {
             Session::setActiveLoginError(null);
             Session::setActiveUserid($result);
             App::getModel('login')->checkInstanceIsValid();
             App::getModel('login')->setLoginTime();
             App::getModel('login')->getUserData();
             App::getModel('login')->setDefaultView($result);
             App::redirect(__ADMINPANE__ . '/mainside');
         }
     }
     if (Session::getActiveUserid() != null) {
         App::redirect(__ADMINPANE__ . '/mainside');
     }
     $form = new FormEngine\Elements\Form(array('name' => 'login', 'action' => '', 'method' => 'post', 'class' => 'login-form', 'csrf' => false));
     $form->AddChild(new FormEngine\Elements\TextField(array('name' => 'login', 'label' => _('TXT_EMAIL_FORM_LOGIN'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_EMAIL_FORM_LOGIN'))))));
     $form->AddChild(new FormEngine\Elements\Password(array('name' => 'password', 'label' => _('TXT_LOGIN_FORM_PASSWORD'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_LOGIN_FORM_PASSWORD'))))));
     $form->AddChild(new FormEngine\Elements\Checkbox(array('name' => 'autologin', 'label' => _('TXT_AUTOLOGIN'))));
     $form->AddChild(new FormEngine\Elements\Submit(array('name' => 'log_in', 'label' => _('TXT_LOG_IN'))));
     $form->AddChild(new FormEngine\Elements\StaticText(array('text' => '<a href="' . App::getURLAdress() . 'forgotlogin">' . _('TXT_LOGIN_FORM_RESET_PASSWORD') . '</a>')));
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\NoCode());
     if ($form->Validate(FormEngine\FE::SubmittedData())) {
         $loginValues = $form->getSubmitValues(FormEngine\Elements\Form::FORMAT_FLAT);
         $result = App::getModel('login')->authProccess($loginValues['login'], $loginValues['password']);
         if ($result == 0) {
             Session::setVolatileLoginError(1, false);
         } else {
             if (isset($loginValues['autologin']) && $loginValues['autologin'] == 1) {
                 App::getModel('login')->setAdminAutologinKey($result);
             } else {
                 App::getModel('login')->destroyAdminAutologinKey();
             }
             Session::setActiveLoginError(null);
             Session::setActiveUserid($result);
             App::getModel('login')->checkInstanceIsValid();
             App::getModel('login')->setLoginTime();
             App::getModel('login')->getUserData();
             App::getModel('login')->setDefaultView($result);
             App::redirect(__ADMINPANE__ . '/mainside');
         }
     }
     $error = Session::getVolatileLoginError();
     if ($error[0] == 1) {
         $this->registry->template->assign('error', _('ERR_BAD_LOGIN_OR_PASSWORD'));
     }
     $languages = App::getModel('language')->getLanguages();
     $this->registry->xajax->processRequest();
     $this->registry->template->assign('xajax', $this->registry->xajax->getJavascript());
     $this->registry->template->assign('form', $form->Render());
     $this->registry->template->assign('languages', json_encode($languages));
     $this->registry->template->display($this->loadTemplate('index.tpl'));
 }
Example #3
0
 public function getProductById($id)
 {
     $sql = "SELECT\n\t\t\t\t\tP.`status`,\n\t\t\t\t\tP.enable,\n\t\t\t\t\tP.ean,\n\t\t\t\t\tP.delivelercode,\n\t\t\t\t\tP.stock,\n\t\t\t\t\tIF(P.trackstock IS NULL, 0, P.trackstock) AS trackstock,\n\t\t\t\t\tPT.name as productname,\n\t\t\t\t\tPT.shortdescription,\n\t\t\t\t\tPT.description,\n\t\t\t\t\tPT.longdescription,\n\t\t\t\t\tPT.seo,\n\t\t\t\t\tPRODT.name AS producername,\n\t\t\t\t\tPRODT.seo AS producerurl,\n\t\t\t\t\tPROD.photoid AS producerphoto,\n\t\t\t\t\tIF(PHOTO.photoid IS NOT NULL, IF(PHOTO.mainphoto = 1, PHOTO.photoid, 0), 1) as mainphotoid,\n\t\t\t\t\tPT.keyword_title AS keyword_title,\n\t\t\t\t\tIF(PT.keyword = '', VT.keyword, PT.keyword) AS keyword,\n\t\t\t\t\tIF(PT.keyword_description = '',VT.keyword_description,PT.keyword_description) AS keyword_description,\n\t\t\t\t\tP.weight,\n\t\t\t\t\tP.packagesize,\n\t\t\t\t\tIF(PN.active = 1 AND (PN.enddate IS NULL OR PN.enddate >= CURDATE()), 1, 0) AS new,\n\t\t\t\t\tP.unit,\n\t\t\t\t\tCOUNT(DISTINCT PREV.idproductreview) AS opinions,\n\t\t\t\t\tIF(CEILING(AVG(PRANGE.value)) IS NULL, 0, CEILING(AVG(PRANGE.value))) AS rating,\n\t\t\t\t\tUT.name AS unit,\n\t\t\t\t\tC.photoid AS categoryphoto,\n\t\t\t\t\tC.idcategory AS categoryid,\n\t\t\t\t\tCT.name AS categoryname,\n\t\t\t\t\tCT.seo AS categoryseo,\n\t\t\t\t\tAT.name AS availablityname,\n\t\t\t\t   \tAT.description AS availablitydescription\n\t\t\t\tFROM product P\n\t\t\t\t\tLEFT JOIN producttranslation PT ON P.idproduct= PT.productid AND PT.languageid= :languageid\n\t\t\t\t\tLEFT JOIN productcategory PROCAT ON P.idproduct = PROCAT.productid\n\t\t\t\t\tLEFT JOIN categorytranslation CT ON PROCAT.categoryid = CT.categoryid AND CT.languageid = :languageid\n\t\t\t\t\tLEFT JOIN category C ON PROCAT.categoryid = C.idcategory\n\t\t\t\t\tLEFT JOIN viewcategory VC ON PROCAT.categoryid = VC.categoryid\n\t\t\t\t\tLEFT JOIN viewtranslation VT ON VT.viewid = VC.viewid\n\t\t\t\t\tLEFT JOIN producer AS PROD ON P.producerid= PROD.idproducer\n\t\t\t\t\tLEFT JOIN producertranslation PRODT ON PROD.idproducer= PRODT.producerid AND PRODT.languageid= :languageid\n\t\t\t\t\tLEFT JOIN productphoto PHOTO ON P.idproduct= PHOTO.productid AND PHOTO.mainphoto = 1\n\t\t\t\t\tLEFT JOIN productnew PN ON P.idproduct = PN.productid\n\t\t\t\t\tLEFT JOIN productreview PREV ON PREV.productid = P.idproduct AND PREV.enable = 1\n\t\t\t\t\tLEFT JOIN productrange PRANGE ON PRANGE.productid = P.idproduct\n\t\t\t\t\tLEFT JOIN unitmeasuretranslation UT ON P.unit = UT.unitmeasureid AND UT.languageid= :languageid\n\t\t\t\t\tLEFT JOIN availablity A ON A.idavailablity = P.availablityid\n\t\t\t\t\tLEFT JOIN availablitytranslation AT ON AT.availablityid = P.availablityid AND AT.languageid = :languageid\n\t\t\t\t\tWHERE P.idproduct= :productid AND P.enable = 1 AND IF(:userid = 0, VC.viewid = :viewid, 1)\n\t\t\t\t\tGROUP BY P.idproduct";
     $stmt = Db::getInstance()->prepare($sql);
     $stmt->bindValue('userid', (int) Session::getActiveUserid());
     $stmt->bindValue('viewid', Helper::getViewId());
     $stmt->bindValue('productid', $id);
     $stmt->bindValue('languageid', Helper::getLanguageId());
     $Data = array();
     try {
         $stmt->execute();
         $rs = $stmt->fetch();
         if ($rs) {
             $price = $this->getProductPrices($id);
             $Data = array('idproduct' => $id, 'seo' => $rs['seo'], 'enable' => $rs['enable'], 'previous' => $this->previousProduct($id, $rs['categoryid']), 'next' => $this->nextProduct($id, $rs['categoryid']), 'ean' => $rs['ean'], 'unit' => $rs['unit'], 'delivelercode' => $rs['delivelercode'], 'producername' => $rs['producername'], 'producerurl' => urlencode($rs['producerurl']), 'producerphotoid' => $rs['producerphoto'], 'producerphoto' => App::getModel('gallery')->getImagePath(App::getModel('gallery')->getSmallImageById($rs['producerphoto'], 0)), 'stock' => $rs['stock'], 'trackstock' => $rs['trackstock'], 'new' => $rs['new'], 'pricewithoutvat' => $price['pricenetto'], 'pricenetto' => $price['pricenetto'], 'price' => $price['price'], 'discountpricenetto' => $price['discountpricenetto'], 'discountprice' => $price['discountprice'], 'buypricenetto' => $price['buypricenetto'], 'buyprice' => $price['buyprice'], 'vatvalue' => $price['vatvalue'], 'currencysymbol' => $price['currencysymbol'], 'mainphotoid' => $rs['mainphotoid'], 'description' => $rs['description'], 'longdescription' => $rs['longdescription'], 'productname' => $rs['productname'], 'shortdescription' => $rs['shortdescription'], 'keyword_title' => $rs['keyword_title'] == NULL || $rs['keyword_title'] == '' ? $rs['productname'] : $rs['keyword_title'], 'keyword_description' => $rs['keyword_description'], 'keyword' => $rs['keyword'], 'weight' => $rs['weight'], 'packagesize' => is_float($rs['packagesize']) ? $rs['packagesize'] : round($rs['packagesize']), 'unit' => $rs['unit'], 'categoryphoto' => App::getModel('gallery')->getImagePath(App::getModel('gallery')->getSmallImageById($rs['categoryphoto'], 0)), 'categoryname' => $rs['categoryname'], 'categoryid' => $rs['categoryid'], 'categoryseo' => $rs['categoryseo'], 'availablityname' => $rs['availablityname'], 'availablitydescription' => $rs['availablitydescription'], 'opinions' => $rs['opinions'], 'rating' => $rs['rating'], 'statuses' => $this->getProductStatuses($id));
         }
     } catch (Exception $e) {
         throw new FrontendException($e->getMessage());
     }
     return $Data;
 }
Example #4
0
 public static function Run()
 {
     if (isset(self::$config['profiler']) && self::$config['profiler'] == $_SERVER['REMOTE_ADDR']) {
         Profiler::start();
     }
     App::init();
     self::$registry->router->setVariables();
     self::$registry->xajax = new Xajax();
     if (self::$registry->router->getMode() == 0) {
         $url = preg_replace_callback('~[^a-zA-Z0-9:/\\?,_-]+~', function ($s) {
             return urlencode($s[0]);
         }, self::$registry->router->getUri());
         self::$registry->xajax->configure('requestURI', $url);
     } else {
         // force language in admin mode
         Session::unsetActiveLanguage();
         self::$registry->core->setLanguage('pl');
         Translation::loadTranslations();
     }
     self::$registry->xajaxInterface = new XajaxInterface();
     self::$registry->right = new Right(self::$registry);
     Session::clearTemp();
     DEFINE('URL', App::getHost(1) . '/' . LOCAL_CATALOG);
     App::checkSSL();
     if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
         DEFINE('DESIGNPATH', str_replace('http://', 'https://', App::getURLForDesignDirectory()));
     } else {
         DEFINE('DESIGNPATH', App::getURLForDesignDirectory());
     }
     // remember login and password
     if (self::$registry->router->getModeFromRoute() == 'admin') {
         if ((int) Session::getActiveUserid() === 0) {
             App::getModel('login')->getAdminAutologinKey();
         }
     } else {
         if ((int) Session::getActiveClientid() === 0) {
             App::getModel('clientlogin')->getAutologinKey();
         }
     }
     self::$registry->template = new Template(self::$registry, self::$registry->router->getMode());
     self::$registry->template->setStaticTemplateVariables();
     $content = self::$registry->router->controllerLoader();
     if (isset(self::$config['profiler']) && self::$config['profiler'] == $_SERVER['REMOTE_ADDR']) {
         Profiler::stop();
         $content .= Profiler::getInfo();
     }
     $response = new Response($content);
     $response->send();
     App::getModel('csrfprotection')->reindex();
 }
Example #5
0
 public function index()
 {
     $clientData = App::getModel('client')->getClient();
     $this->registry->xajax->registerFunction(array('addOpinion', $this->productModel, 'addAJAXOpinionAboutProduct'));
     //$this->registry->xajax->registerFunction(array(
     //'addProductRangeOpinion',
     //$this->productModel,
     //'addAJAXProductRangeOpinion'
     //));
     if (isset($this->_boxAttributes['tabbed'])) {
         $tabbed = $this->_boxAttributes['tabbed'];
     } else {
         $tabbed = 1;
     }
     if (isset($this->product['idproduct'])) {
         $range = $this->productModel->getRangeType((int) $this->productid);
         $this->productModel->getPhotos($this->product);
         $this->productModel->getOtherPhotos($this->product);
         $selectAttributes = $this->productModel->getProductAttributeGroups($this->product);
         foreach ($selectAttributes as $key => $val) {
             natsort($val['attributes']);
             $selectAttributes[$key]['attributes'] = $val['attributes'];
         }
         $attset = $this->productModel->getProductVariant($this->product);
         $Data = array();
         foreach ($attset as $group => $data) {
             $keys = array_keys($data['variant']);
             natsort($keys);
             $Data[implode(',', $keys)] = array('setid' => $group, 'stock' => $data['stock'], 'sellprice' => $this->registry->core->processPrice($data['sellprice']), 'sellpricenetto' => $this->registry->core->processPrice($data['sellpricenetto']), 'sellpriceold' => $this->registry->core->processPrice($data['attributepricegrossbeforepromotion']), 'sellpricenettoold' => $this->registry->core->processPrice($data['attributepricenettobeforepromotion']), 'availablity' => $data['availablity'], 'photos' => $data['photos']);
         }
         $productreview = App::getModel('productreview')->getProductReviews((int) $this->productid);
         $delivery = App::getModel('delivery')->getDispatchmethodPriceForProduct($this->product['price'], $this->product['weight']);
         $deliverymin = PHP_INT_MAX;
         foreach ($delivery as $i) {
             $deliverymin = min($deliverymin, $i['dispatchmethodcost']);
         }
         $files = App::getModel('product')->getFilesByProductId((int) $this->productid);
         $warranty = App::getModel('product')->getWarrantyByProductId((int) $this->productid);
         $tabs = $this->registry->template->assign('tabbed', $tabbed);
         $eventData = Event::filter($this, 'frontend.productbox.assign', array(), NULL);
         foreach ($eventData as $Data) {
             foreach ($Data as $tab => $values) {
                 $this->registry->template->assign($tab, $values);
             }
         }
         $opinion = Session::getVolatileOpinionAdded();
         if ($opinion[0] == 1) {
             $this->registry->template->assign('opinionadded', _('TXT_CLIENT_OPINION_ADDED'));
         } elseif ($opinion[0] == 2) {
             $this->registry->template->assign('opinionadded', _('TXT_GUEST_OPINION_ADDED'));
         }
         if ($this->product['enable'] == 0 && (int) Session::getActiveUserid() > 0) {
             $this->registry->template->assign('draft', _('TXT_PRODUCT_DRAFT'));
         }
         $this->registry->template->assign('range', $range);
         $this->registry->template->assign('files', $files);
         $this->registry->template->assign('warranty', $warranty);
         $this->registry->template->assign('variants', json_encode($Data));
         $this->registry->template->assign('product', $this->product);
         $this->registry->template->assign('attributes', $selectAttributes);
         $this->registry->template->assign('attset', $attset);
         $this->registry->template->assign('humanProductReviewCount', App::getModel('productreview')->getHumanOpinionsCount(count($productreview)));
         $this->registry->template->assign('productreview', $productreview);
         $this->registry->template->assign('delivery', $delivery);
         $this->registry->template->assign('deliverymin', $deliverymin);
         $this->productModel->updateViewedCount((int) $this->productid);
     } else {
         App::redirectSeo(App::getURLAdress());
     }
     return $this->registry->template->fetch($this->loadTemplate('index.tpl'));
 }
Example #6
0
 protected function setAdministrativeMode($value = 0)
 {
     $this->adminitrativeMode = 0 == $value || NULL == Session::getActiveUserid() ? 0 : 1;
 }
Example #7
0
    public function getViews()
    {
        $globaluser = Session::getActiveUserIsGlobal();
        $Data = array();
        $Data[] = array('id' => 0, 'name' => _('TXT_GLOBAL_LAYER'), 'active' => Helper::getViewId() == 0 ? true : false);
        if ($globaluser == 1) {
            $sql = 'SELECT 
						V.idview AS id,
						V.name,
						V.storeid
					FROM view V
					ORDER BY 
					V.name ASC
				';
            $stmt = Db::getInstance()->prepare($sql);
            $stmt->execute();
            while ($rs = $stmt->fetch()) {
                $Data[] = array('id' => $rs['id'], 'name' => $rs['name'], 'active' => Helper::getViewId() == $rs['id'] ? true : false);
            }
        } else {
            $sql = 'SELECT
						UGV.viewid,
						V.name
					FROM usergroupview UGV 
					LEFT JOIN view V ON UGV.viewid = V.idview
					WHERE UGV.userid = :userid';
            $stmt = Db::getInstance()->prepare($sql);
            $stmt->bindValue('userid', Session::getActiveUserid());
            $stmt->execute();
            while ($rs = $stmt->fetch()) {
                $Data[] = array('id' => $rs['viewid'], 'name' => $rs['name'], 'active' => Helper::getViewId() == $rs['id'] ? true : false);
            }
        }
        return $Data;
    }
Example #8
0
 public function edit()
 {
     $rawUserData = App::getModel('users')->getUserById($this->registry->core->getParam());
     if (empty($rawUserData)) {
         App::redirect(__ADMINPANE__ . '/users');
     }
     $layers = App::getModel('users')->getLayersAll();
     $form = new FormEngine\Elements\Form(array('name' => 'user', 'action' => '', 'method' => 'post'));
     $personalData = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'personal_data', 'label' => _('TXT_PERSONAL_DATA'))));
     $personalData->AddChild(new FormEngine\Elements\TextField(array('name' => 'firstname', 'label' => _('TXT_FIRSTNAME'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_FIRSTNAME'))))));
     $personalData->AddChild(new FormEngine\Elements\TextField(array('name' => 'surname', 'label' => _('TXT_SURNAME'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_SURNAME'))))));
     $personalData->AddChild(new FormEngine\Elements\TextField(array('name' => 'email', 'label' => _('TXT_EMAIL'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_EMAIL')), new FormEngine\Rules\Email(_('ERR_WRONG_EMAIL')), new FormEngine\Rules\Unique(_('ERR_EMAIL_ALREADY_EXISTS'), 'userdata', 'email', null, array('column' => 'userid', 'values' => $this->registry->core->getParam()))))));
     $changePassword = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'change_password', 'label' => _('TXT_CHANGE_USERS_PASSWORD'))));
     $userid = Session::getActiveUserid();
     $edituserid = $this->registry->core->getParam();
     if ($userid == $edituserid) {
         $newPasswordChange = $changePassword->AddChild(new FormEngine\Elements\Checkbox(array('name' => 'changepassword', 'label' => _('TXT_CHANGE_PASS'))));
         $oldPassword = $changePassword->AddChild(new FormEngine\Elements\Password(array('name' => 'oldpasswd', 'label' => _('TXT_PASSWORD_OLD'), 'dependencies' => array(new FormEngine\Dependency(FormEngine\Dependency::SHOW, $newPasswordChange, new FormEngine\Conditions\Equals('1'))))));
         $newPassword = $changePassword->AddChild(new FormEngine\Elements\Password(array('name' => 'newppasswd', 'label' => _('TXT_PASSWORD_NEW'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_PASSWORD')), new FormEngine\Rules\Format(_('ERR_PASSWORD_NEW_INVALID'), '/^.{6,}$/')), 'dependencies' => array(new FormEngine\Dependency(FormEngine\Dependency::SHOW, $newPasswordChange, new FormEngine\Conditions\Equals('1'))))));
         $changePassword->AddChild(new FormEngine\Elements\Password(array('name' => 'newpasswdrep', 'label' => _('TXT_PASSWORD_REPEAT'), 'rules' => array(new FormEngine\Rules\Compare(_('ERR_PASSWORDS_NOT_COMPATIBILE'), $newPassword)), 'dependencies' => array(new FormEngine\Dependency(FormEngine\Dependency::SHOW, $newPasswordChange, new FormEngine\Conditions\Equals('1'))))));
     } else {
         $changePassword->AddChild(new FormEngine\Elements\StaticText(array('text' => '<p>' . _('TXT_PASSWORD_CHANGE_INSTRUCTION') . '</p>')));
         $newPassword = $changePassword->AddChild(new FormEngine\Elements\Checkbox(array('name' => 'newpassword', 'label' => _('TXT_PASSWORD_NEW'))));
     }
     $isglobal = App::getModel('users')->checkActiveUserIsGlobal();
     if ($isglobal == 1) {
         $rightsData = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'rights_data', 'label' => _('TXT_RIGHTS'))));
         $rightsData->AddChild(new FormEngine\Elements\StaticText(array('text' => '<p>' . _('TXT_SET_USER_LAYER_RIGHTS') . '</p>')));
         $global = $rightsData->AddChild(new FormEngine\Elements\Checkbox(array('name' => 'global', 'label' => _('TXT_GLOBAL_USER'))));
         $rightsData->AddChild(new FormEngine\Elements\Select(array('name' => 'group', 'label' => _('TXT_GROUPS'), 'options' => FormEngine\Option::Make(App::getModel('groups/groups')->getGroupsAllToSelect()), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_GROUP'))), 'dependencies' => array(new FormEngine\Dependency(FormEngine\Dependency::HIDE, $global, new FormEngine\Conditions\Not(new FormEngine\Conditions\Equals('1')))))));
         $layers = App::getModel('users')->getLayersAll();
         foreach ($layers as $key => $store) {
             $storeRightsData[$store['id']] = $rightsData->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'store_' . $store['id'], 'label' => _('TXT_RIGHTS') . ' dla ' . $store['name'], 'dependencies' => array(new FormEngine\Dependency(FormEngine\Dependency::SHOW, $global, new FormEngine\Conditions\Not(new FormEngine\Conditions\Equals('1')))))));
             foreach ($store['views'] as $v => $view) {
                 $storeRightsData[$store['id']]->AddChild(new FormEngine\Elements\Select(array('name' => 'view_' . $view['id'], 'label' => $view['name'], 'options' => FormEngine\Option::Make($this->registry->core->getDefaultValueToSelect() + App::getModel('groups/groups')->getGroupsAllToSelect()))));
             }
         }
     }
     $additionalData = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'additional_data', 'label' => _('TXT_ADDITIONAL_DATA'))));
     $additionalData->AddChild(new FormEngine\Elements\Textarea(array('name' => 'description', 'label' => _('TXT_DESCRIPTION'), 'comment' => _('TXT_MAX_LENGTH') . ' 3000', 'max_length' => 3000)));
     $additionalData->AddChild(new FormEngine\Elements\Checkbox(array('name' => 'active', 'label' => _('TXT_ENABLE_USER'))));
     $photosPane = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'photos_pane', 'label' => _('TXT_PHOTO'))));
     $photosPane->AddChild(new FormEngine\Elements\Image(array('name' => 'photo', 'label' => _('TXT_PHOTO'), 'repeat_min' => 0, 'repeat_max' => 1, 'upload_url' => App::getURLAdressWithAdminPane() . 'files/add')));
     $form->AddFilter(new FormEngine\Filters\NoCode());
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\Secure());
     $userData = array('personal_data' => array('firstname' => $rawUserData['firstname'], 'surname' => $rawUserData['surname'], 'email' => $rawUserData['email']), 'additional_data' => array('description' => $rawUserData['description'], 'active' => $rawUserData['active']), 'photos_pane' => array('photo' => $rawUserData['photo']), 'rights_data' => array('global' => $rawUserData['globaluser'], 'group' => $rawUserData['idgroup']));
     foreach ($rawUserData['layer'] as $key => $layer) {
         $userData['rights_data']['store_' . $layer['store']][] = array('view_' . $layer['view'] => $layer['group']);
     }
     $form->Populate($userData);
     if ($form->Validate(FormEngine\FE::SubmittedData())) {
         try {
             $edituser = $form->getSubmitValues();
             App::getModel('users')->updateUser($edituser, $this->registry->core->getParam());
             if ($userid == $edituserid) {
                 if ($edituser['change_password']['changepassword'] == 1) {
                     $editpassword = $edituser['change_password']['newppasswd'];
                     $changPassword = App::getModel('users')->updateUserPassword($edituser['change_password']['newppasswd']);
                     Session::setActiveUserFirstname($edituser['personal_data']['firstname']);
                     Session::setActiveUserSurname($edituser['personal_data']['surname']);
                     Session::setActiveUserEmail($edituser['personal_data']['email']);
                 }
             } else {
                 if ($edituser['change_password']['newpassword'] == 1) {
                     $editpassword = Core::passwordGenerate();
                     $changPassword = App::getModel('users')->updateUserPassword($editpassword);
                     if ($changPassword == true) {
                         $password = Core::passwordGenerate();
                         $this->registry->template->assign('password', $editpassword);
                         App::getModel('mailer')->sendEmail(array('template' => 'newPasswordForUser', 'email' => array($edituser['personal_data']['email']), 'bcc' => false, 'subject' => _('TXT_EDIT_PASSWORD_USER'), 'viewid' => Helper::getViewId()));
                     }
                 }
             }
         } catch (Exception $e) {
             Session::setVolatileUsereditError(1, false);
         }
         App::redirect(__ADMINPANE__ . '/users');
     }
     $error = Session::getVolatileUsereditError();
     if ($error[0] == 1) {
         $this->registry->template->assign('error', $e->getMessage());
     }
     $this->registry->template->assign('form', $form->Render());
     $this->registry->xajax->processRequest();
     $this->registry->template->assign('xajax', $this->registry->xajax->getJavascript());
     $this->registry->template->display($this->loadTemplate('edit.tpl'));
 }
Example #9
0
    protected function checkControllerRightMenu($name, $action, $layer)
    {
        $globaluser = Session::getActiveUserIsGlobal();
        if ($globaluser == 0) {
            if (Helper::getViewId() > 0) {
                $sql = 'SELECT permission
								FROM  `right` R
								LEFT JOIN controller C ON C.idcontroller = R.controllerid
								LEFT JOIN usergroupview UGV ON UGV.groupid = R.groupid
								WHERE C.name = :name
								AND C.enable = 1
								AND UGV.userid = :userid
								AND C.mode = 1
								AND UGV.viewid = :viewid';
                $stmt = Db::getInstance()->prepare($sql);
                $stmt->bindValue('name', $name);
                $stmt->bindValue('userid', Session::getActiveUserid());
                $stmt->bindValue('viewid', Helper::getViewId());
            } else {
                $sql = 'SELECT permission
								FROM  `right` R
								LEFT JOIN controller C ON C.idcontroller = R.controllerid
								LEFT JOIN usergroupview UGV ON UGV.groupid = R.groupid
								WHERE C.name = :name
								AND C.enable = 1
								AND UGV.userid = :userid
								AND C.mode = 1
								AND UGV.viewid IN (' . implode(',', Helper::getViewIds()) . ')';
                $stmt = Db::getInstance()->prepare($sql);
                $stmt->bindValue('name', $name);
                $stmt->bindValue('userid', Session::getActiveUserid());
            }
        } else {
            $sql = 'SELECT permission FROM `right` R
	    			LEFT JOIN controller C ON C.idcontroller = R.controllerid
	    			WHERE name = :name AND `enable` = 1
	    			AND groupid = :groupid AND mode = 1';
            $stmt = Db::getInstance()->prepare($sql);
            $stmt->bindValue('name', $name);
            $stmt->bindValue('groupid', Session::getActiveUserGroupid());
        }
        $stmt->execute();
        $rs = $stmt->fetch();
        if ($rs) {
            if (($rs['permission'] & $this->_RIGHTS[$action]) == $this->_RIGHTS[$action]) {
                $this->_CONTROLLERRIGHTS[$name][(int) $layer] = $rs['permission'];
                return $rs['permission'];
            }
            return false;
        }
        return false;
    }