Exemplo n.º 1
0
	/**
	 * Return an array of custom tags, indexed by name
	 */
	public function getCustomtagsByName() {
		if (!$this->_objects) {
			global $icmsConfig;

			$ret = array();

			$criteria = new icms_db_criteria_Compo();

			$criteria_language = new icms_db_criteria_Compo();
			$criteria_language->add(new icms_db_criteria_Item('language', $icmsConfig['language']));
			$criteria_language->add(new icms_db_criteria_Item('language', 'all'), 'OR');
			$criteria->add($criteria_language);

			$icms_permissions_handler = new icms_ipf_permission_Handler($this);
			$granted_ids = $icms_permissions_handler->getGrantedItems('view_customtag');

			if ($granted_ids && count($granted_ids) > 0) {
				$criteria->add(new icms_db_criteria_Item('customtagid', '(' . implode(', ', $granted_ids) . ')', 'IN'));
				$customtagsObj = $this->getObjects($criteria, TRUE);
				foreach ($customtagsObj as $customtagObj) {
					$ret[$customtagObj->getVar('name')] = $customtagObj;
				}
			}
			$this->_objects = $ret;
		}
		return $this->_objects;
	}
Exemplo n.º 2
0
 /**
  *
  * @param obj $criteria
  * @param str $perm_name
  */
 public function setGrantedObjectsCriteria(&$criteria, $perm_name)
 {
     $icmspermissions_handler = new icms_ipf_permission_Handler($this);
     $grantedItems = $icmspermissions_handler->getGrantedItems($perm_name);
     if (count($grantedItems) > 0) {
         $criteria->add(new icms_db_criteria_Item($this->keyName, '(' . implode(', ', $grantedItems) . ')', 'IN'));
         return true;
     } else {
         return false;
     }
 }
 public function __construct(&$handler)
 {
     parent::__construct($handler);
     $this->_deprecated = icms_core_Debug::setDeprecated('icms_ipf_permission_Handler', sprintf(_CORE_REMOVE_IN_VERSION, '1.4'));
 }
Exemplo n.º 4
0
 /**
  *
  * @param	obj		$icmsObj	Object
  * @param	int		$objectid
  * @param	str		$created_success_msg	Message to display on successful creation
  * @param	str		$modified_success_msg	Message to display on successful modification
  * @param	bool	$redirect_page			Whether to redirect afterwards, or not
  * @param	bool	$debug					Whether to display debug information, or not
  */
 public function &doStoreFromDefaultForm(&$icmsObj, $objectid, $created_success_msg, $modified_success_msg, $redirect_page = false, $debug = false)
 {
     global $impresscms;
     $this->postDataToObject($icmsObj);
     if ($icmsObj->isNew()) {
         $redirect_msg = $created_success_msg;
     } else {
         $redirect_msg = $modified_success_msg;
     }
     // Check if there were uploaded files
     $uploaderResult = true;
     if (isset($_POST['icms_upload_image']) || isset($_POST['icms_upload_file'])) {
         $uploaderObj = new icms_file_MediaUploadHandler($icmsObj->getImageDir(true), $this->handler->_allowedMimeTypes, $this->handler->_maxFileSize, $this->handler->_maxWidth, $this->handler->_maxHeight);
         foreach ($_FILES as $name => $file_array) {
             if (isset($file_array['name']) && $file_array['name'] != "" && in_array(str_replace('upload_', '', $name), array_keys($icmsObj->vars))) {
                 if ($uploaderObj->fetchMedia($name)) {
                     $uploaderObj->setTargetFileName(time() . "_" . $uploaderObj->getMediaName());
                     if ($uploaderObj->upload()) {
                         $uploaderResult = $uploaderResult && true;
                         // Find the related field in the icms_ipf_Object
                         $related_field = str_replace('upload_', '', $name);
                         $uploadedArray[] = $related_field;
                         // if it's a richfile
                         if ($icmsObj->vars[$related_field]['data_type'] == XOBJ_DTYPE_FILE) {
                             $object_fileurl = $icmsObj->getUploadDir();
                             $fileObj = $icmsObj->getFileObj($related_field);
                             $fileObj->setVar('url', $object_fileurl . $uploaderObj->getSavedFileName());
                             $fileObj->setVar('mid', $_POST['mid_' . $related_field]);
                             $fileObj->setVar('caption', $_POST['caption_' . $related_field]);
                             $fileObj->setVar('description', $_POST['desc_' . $related_field]);
                             $icmsObj->storeFileObj($fileObj);
                             $icmsObj->setVar($related_field, $fileObj->getVar('fileid'));
                         } else {
                             $eventResult = $this->handler->executeEvent('beforeFileUnlink', $icmsObj);
                             if (!$eventResult) {
                                 $icmsObj->setErrors("An error occured during the beforeFileUnlink event");
                                 $uploaderResult = $uploaderResult && false;
                             }
                             $old_file = $icmsObj->getUploadDir(true) . $icmsObj->getVar($related_field);
                             if (is_file($old_file)) {
                                 unlink($old_file);
                             }
                             $icmsObj->setVar($related_field, $uploaderObj->getSavedFileName());
                             $eventResult = $this->handler->executeEvent('afterFileUnlink', $icmsObj);
                             if (!$eventResult) {
                                 $icmsObj->setErrors("An error occured during the afterFileUnlink event");
                                 $uploaderResult = $uploaderResult && false;
                             }
                         }
                     } else {
                         $icmsObj->setErrors($uploaderObj->getErrors(false));
                         $uploaderResult = $uploaderResult && false;
                     }
                 } else {
                     $icmsObj->setErrors($uploaderObj->getErrors(false));
                     $uploaderResult = $uploaderResult && false;
                 }
             }
         }
     }
     if ($uploaderResult) {
         if ($debug) {
             $storeResult = $this->handler->insertD($icmsObj);
         } else {
             $storeResult = $this->handler->insert($icmsObj);
         }
     } else {
         $storeResult = false;
     }
     if ($storeResult) {
         if ($this->handler->getPermissions()) {
             $icmspermissions_handler = new icms_ipf_permission_Handler($this->handler);
             $icmspermissions_handler->storeAllPermissionsForId($icmsObj->id());
         }
     }
     if ($redirect_page === null) {
         return $icmsObj;
     } else {
         if (!$storeResult) {
             redirect_header($impresscms->urls['previouspage'], 3, _CO_ICMS_SAVE_ERROR . $icmsObj->getHtmlErrors());
         } else {
             $redirect_page = $redirect_page ? $redirect_page : icms_get_page_before_form();
             redirect_header($redirect_page, 2, $redirect_msg);
         }
     }
 }
Exemplo n.º 5
0
 /**
  * Retreive the group that have been granted access to a specific permission for this object
  *
  * @return string $group_perm name of the permission
  */
 public function getGroupPerm($group_perm)
 {
     if (!$this->handler->getPermissions()) {
         $this->setError("Trying to access a permission that does not exists for this object's handler");
         return false;
     }
     $icmspermissions_handler = new icms_ipf_permission_Handler($this->handler);
     $ret = $icmspermissions_handler->getGrantedGroups($group_perm, $this->id());
     if (count($ret) == 0) {
         return false;
     } else {
         return $ret;
     }
 }
Exemplo n.º 6
0
	/**
	 * 
	 * @return	array
	 */
	public function UserCanUpload() {
		$handler = new icms_ipf_permission_Handler($this);
		return $handler->getGrantedItems('use_extension');
	}