You've already forked joomla_test
							
							
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * @version		$Id: permissions.j16.php 1812 2013-01-14 18:45:06Z lefteris.kavadas $
 | 
						|
 * @package		K2
 | 
						|
 * @author		JoomlaWorks http://www.joomlaworks.net
 | 
						|
 * @copyright	Copyright (c) 2006 - 2013 JoomlaWorks Ltd. All rights reserved.
 | 
						|
 * @license		GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 | 
						|
 */
 | 
						|
 | 
						|
// no direct access
 | 
						|
defined('_JEXEC') or die;
 | 
						|
 | 
						|
jimport('joomla.html.parameter');
 | 
						|
 | 
						|
class K2HelperPermissions
 | 
						|
{
 | 
						|
 | 
						|
    public static function checkPermissions()
 | 
						|
    {
 | 
						|
        // Set some variables
 | 
						|
        $mainframe = JFactory::getApplication();
 | 
						|
        $user = JFactory::getUser();
 | 
						|
        $option = JRequest::getCmd('option');
 | 
						|
        $view = JRequest::getCmd('view');
 | 
						|
        $task = JRequest::getCmd('task');
 | 
						|
        $id = JRequest::getInt('cid');
 | 
						|
 | 
						|
        //Generic manage check
 | 
						|
        if (!$user->authorise('core.manage', $option))
 | 
						|
        {
 | 
						|
            JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
 | 
						|
            $mainframe->redirect('index.php');
 | 
						|
        }
 | 
						|
 | 
						|
        // Determine action for rest checks
 | 
						|
        $action = false;
 | 
						|
        if ($mainframe->isAdmin() && $view != '' && $view != 'info')
 | 
						|
        {
 | 
						|
            switch($task)
 | 
						|
            {
 | 
						|
                case '' :
 | 
						|
                case 'save' :
 | 
						|
                case 'apply' :
 | 
						|
                    if (!$id)
 | 
						|
                    {
 | 
						|
                        $action = 'core.create';
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        $action = 'core.edit';
 | 
						|
                    }
 | 
						|
                    break;
 | 
						|
                case 'trash' :
 | 
						|
                case 'remove' :
 | 
						|
                    $action = 'core.delete';
 | 
						|
                    break;
 | 
						|
                case 'publish' :
 | 
						|
                case 'unpublish' :
 | 
						|
                    $action = 'core.edit.state';
 | 
						|
            }
 | 
						|
 | 
						|
            // Edit or Edit own action
 | 
						|
            if ($action == 'core.edit' && $view == 'item' && $id)
 | 
						|
            {
 | 
						|
                JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
 | 
						|
                $item = JTable::getInstance('K2Item', 'Table');
 | 
						|
                $item->load($id);
 | 
						|
                if ($item->created_by == $user->id)
 | 
						|
                {
 | 
						|
                    $action = 'core.edit.own';
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            // Check the determined action
 | 
						|
            if ($action)
 | 
						|
            {
 | 
						|
                if (!$user->authorise($action, $option))
 | 
						|
                {
 | 
						|
                    JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
 | 
						|
                    $mainframe->redirect('index.php?option=com_k2');
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 |