コード例 #1
0
ファイル: forgotlogin.php プロジェクト: krisldz/Gekosale2
 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'));
 }
コード例 #2
0
ファイル: login.php プロジェクト: krisldz/Gekosale2
 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'));
 }
コード例 #3
0
ファイル: product.php プロジェクト: volfen/Gekosale2
 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;
 }
コード例 #4
0
ファイル: App.php プロジェクト: krisldz/Gekosale2
 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();
 }
コード例 #5
0
ファイル: productbox.php プロジェクト: volfen/Gekosale2
 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'));
 }
コード例 #6
0
ファイル: Router.php プロジェクト: krisldz/Gekosale2
 protected function setAdministrativeMode($value = 0)
 {
     $this->adminitrativeMode = 0 == $value || NULL == Session::getActiveUserid() ? 0 : 1;
 }
コード例 #7
0
ファイル: view.php プロジェクト: krisldz/Gekosale2
    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;
    }
コード例 #8
0
ファイル: users.php プロジェクト: krisldz/Gekosale2
 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'));
 }
コード例 #9
0
ファイル: Right.php プロジェクト: krisldz/Gekosale2
    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;
    }