Merged in bugfix/PMC-815 (pull request #6915)
PMC-815 Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
committed by
Julio Cesar Laura Avendaño
commit
c73ee5c2e0
@@ -70,6 +70,7 @@ workflow/engine/methods/setup/jasper.php
|
||||
workflow/engine/methods/setup/webServices.php
|
||||
workflow/engine/methods/setup/webServicesAjax.php
|
||||
workflow/engine/methods/setup/webServicesList.php
|
||||
workflow/engine/methods/users/data_usersList.php
|
||||
workflow/engine/plugins/openFlash.php
|
||||
workflow/engine/plugins/openFlash/chart-data.php
|
||||
workflow/engine/plugins/openFlash/chart.php
|
||||
|
||||
137
tests/unit/workflow/engine/bin/tasks/CliWorkspacesTest.php
Normal file
137
tests/unit/workflow/engine/bin/tasks/CliWorkspacesTest.php
Normal file
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\bin\tasks;
|
||||
|
||||
use Tests\TestCase;
|
||||
|
||||
class CliWorkspacesTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Test that the deprecated files are removed successfully
|
||||
*
|
||||
* @covers WorkspaceTools::removeDeprecatedFiles
|
||||
* @test
|
||||
*/
|
||||
public function it_should_delete_the_deprecated_files()
|
||||
{
|
||||
include(PATH_TRUNK . PATH_SEP . 'workflow/engine/bin/tasks/cliWorkspaces.php');
|
||||
if (!file_exists(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php')) {
|
||||
$filename = PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php';
|
||||
$handle = fopen($filename, 'w');
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
// This assert the data_usersList.php file do exists before being deleted
|
||||
$this->assertTrue(file_exists(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'));
|
||||
|
||||
$path = PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/';
|
||||
|
||||
if (getmyuid() == fileowner($path)) {
|
||||
if (substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'),
|
||||
1, 2) == 'rw' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'), 2, 1) == 'w' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/'), 3, 1) == 'x' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/'), 3, 1) == 'x' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/'), 3, 1) == 'x'
|
||||
) {
|
||||
remove_deprecated_files();
|
||||
} else {
|
||||
dd("Could not delete the file. Please, make sure the file have write permission for the direct parent directory and
|
||||
execute permission for all parent directories.");
|
||||
}
|
||||
} else {
|
||||
if (getmygid() == filegroup($path)) {
|
||||
if (substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'),
|
||||
4, 2) == 'rw' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'), 5,
|
||||
1) == 'w' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/'), 6, 1) == 'x' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/'), 6, 1) == 'x' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/'), 6, 1) == 'x'
|
||||
) {
|
||||
remove_deprecated_files();
|
||||
} else {
|
||||
dd("Could not delete the file. Please, make sure the file have write permission for the direct parent directory and
|
||||
execute permission for all parent directories.");
|
||||
}
|
||||
|
||||
} else {
|
||||
if (substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'),
|
||||
7, 2) == 'rw' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'), 8,
|
||||
1) == 'w' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/'), 9, 1) == 'x' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/'), 9, 1) == 'x' &&
|
||||
substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/'), 9, 1) == 'x'
|
||||
) {
|
||||
remove_deprecated_files();
|
||||
} else {
|
||||
dd("Could not delete the file. Please, make sure the file have write permission for the direct parent directory and
|
||||
execute permission for all parent directories.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This assert the data_usersList.php does not exist anymore
|
||||
$this->assertFalse(file_exists(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the permissions of a file or directory
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
public function getPermissions($path)
|
||||
{
|
||||
$per = fileperms($path);
|
||||
switch ($per & 0xF000) {
|
||||
case 0xC000: // socket
|
||||
$permissions = 's';
|
||||
break;
|
||||
case 0xA000: // symbolic link
|
||||
$permissions = 'l';
|
||||
break;
|
||||
case 0x8000: // regular
|
||||
$permissions = '-';
|
||||
break;
|
||||
case 0x6000: // block special
|
||||
$permissions = 'b';
|
||||
break;
|
||||
case 0x4000: // directory
|
||||
$permissions = 'd';
|
||||
break;
|
||||
case 0x2000: // character special
|
||||
$permissions = 'c';
|
||||
break;
|
||||
case 0x1000: // FIFO pipe
|
||||
$permissions = 'p';
|
||||
break;
|
||||
default: // unknown
|
||||
$permissions = 'u';
|
||||
}
|
||||
|
||||
// Owner
|
||||
$permissions .= (($per & 0x0100) ? 'r' : '-');
|
||||
$permissions .= (($per & 0x0080) ? 'w' : '-');
|
||||
$permissions .= (($per & 0x0040) ?
|
||||
(($per & 0x0800) ? 's' : 'x') :
|
||||
(($per & 0x0800) ? 'S' : '-'));
|
||||
|
||||
// Group
|
||||
$permissions .= (($per & 0x0020) ? 'r' : '-');
|
||||
$permissions .= (($per & 0x0010) ? 'w' : '-');
|
||||
$permissions .= (($per & 0x0008) ?
|
||||
(($per & 0x0400) ? 's' : 'x') :
|
||||
(($per & 0x0400) ? 'S' : '-'));
|
||||
|
||||
// Others
|
||||
$permissions .= (($per & 0x0004) ? 'r' : '-');
|
||||
$permissions .= (($per & 0x0002) ? 'w' : '-');
|
||||
$permissions .= (($per & 0x0001) ?
|
||||
(($per & 0x0200) ? 't' : 'x') :
|
||||
(($per & 0x0200) ? 'T' : '-'));
|
||||
|
||||
return $permissions;
|
||||
}
|
||||
}
|
||||
@@ -362,6 +362,16 @@ EOT
|
||||
CLI::taskArg('workspace');
|
||||
CLI::taskRun("run_sync_forms_with_info_from_input_documents");
|
||||
|
||||
/**
|
||||
* Remove the deprecated files
|
||||
*/
|
||||
CLI::taskName('remove-unused-files');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Remove the deprecated files.
|
||||
EOT
|
||||
);
|
||||
CLI::taskRun("remove_deprecated_files");
|
||||
|
||||
/**
|
||||
* Function run_info
|
||||
*
|
||||
@@ -1348,3 +1358,18 @@ function run_sync_forms_with_info_from_input_documents($args, $opts) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the deprecated files
|
||||
*
|
||||
* @return void
|
||||
* @see workflow/engine/bin/tasks/cliWorkspaces.php CLI::taskRun()
|
||||
* @link https://wiki.processmaker.com/3.3/processmaker_command
|
||||
*/
|
||||
function remove_deprecated_files()
|
||||
{
|
||||
//The constructor requires an argument, so we send an empty value in order to use the class.
|
||||
$workspaceTools = new WorkspaceTools('');
|
||||
$workspaceTools->removeDeprecatedFiles();
|
||||
CLI::logging("<*> The deprecated files has been removed. \n");
|
||||
}
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* data_usersList.php
|
||||
*
|
||||
* ProcessMaker Open Source Edition
|
||||
* Copyright (C) 2004 - 2008 Colosa Inc.23
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
||||
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
||||
*/
|
||||
|
||||
isset( $_POST['textFilter'] ) ? $filter = $_POST['textFilter'] : $filter = '';
|
||||
|
||||
$sDelimiter = DBAdapter::getStringDelimiter();
|
||||
|
||||
$oCriteria = new Criteria( 'workflow' );
|
||||
$oCriteria->addSelectColumn( UsersPeer::USR_UID );
|
||||
|
||||
$sDataBase = 'database_' . strtolower( DB_ADAPTER );
|
||||
if (G::LoadSystemExist( $sDataBase )) {
|
||||
$oDataBase = new database();
|
||||
$oCriteria->addAsColumn( 'USR_COMPLETENAME', $oDataBase->concatString( "USR_LASTNAME", "' '", "USR_FIRSTNAME" ) );
|
||||
//$oCriteria->addAsColumn('USR_PHOTO', $oDataBase->concatString("'".PATH_IMAGES_ENVIRONMENT_USERS."'", "USR_UID","'.gif'"));
|
||||
}
|
||||
|
||||
$oCriteria->addSelectColumn( UsersPeer::USR_USERNAME );
|
||||
$oCriteria->addSelectColumn( UsersPeer::USR_EMAIL );
|
||||
$oCriteria->addSelectColumn( UsersPeer::USR_ROLE );
|
||||
$oCriteria->addSelectColumn( UsersPeer::USR_DUE_DATE );
|
||||
//$oCriteria->addAsColumn('USR_VIEW', $sDelimiter . G::LoadTranslation('ID_DETAIL') . $sDelimiter);
|
||||
//$oCriteria->addAsColumn('USR_EDIT', $sDelimiter . G::LoadTranslation('ID_EDIT') . $sDelimiter);
|
||||
//$oCriteria->addAsColumn('USR_DELETE', $sDelimiter . G::LoadTranslation('ID_DELETE') . $sDelimiter);
|
||||
//$oCriteria->addAsColumn('USR_AUTH', $sDelimiter . G::LoadTranslation('ID_AUTHENTICATION') . $sDelimiter);
|
||||
//$oCriteria->addAsColumn('USR_REASSIGN', $sDelimiter . G::LoadTranslation('ID_REASSIGN_CASES') . $sDelimiter);
|
||||
$oCriteria->add( UsersPeer::USR_STATUS, array ('CLOSED'
|
||||
), Criteria::NOT_IN );
|
||||
|
||||
if ($filter != '') {
|
||||
$cc = $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) );
|
||||
$oCriteria->add( $cc );
|
||||
//echo $oCriteria->toString();
|
||||
}
|
||||
|
||||
$rs = UsersPeer::DoSelectRS( $oCriteria, Propel::getDbConnection('workflow_ro') );
|
||||
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
|
||||
$rows = Array ();
|
||||
while ($rs->next()) {
|
||||
$rows[] = $rs->getRow();
|
||||
// if (!file_exists($aux['USR_PHOTO'])) $aux['USR_PHOTO'] = 'public_html/images/user.gif';
|
||||
// $rows[] = $aux;
|
||||
}
|
||||
echo '{users: ' . G::json_encode( $rows ) . '}';
|
||||
|
||||
Reference in New Issue
Block a user