|
|
@@ -2,23 +2,25 @@
|
|
|
|
|
|
Lib::loadClass('RouteBase');
|
|
|
|
|
|
-/**
|
|
|
- * usage example - cli script:
|
|
|
- * $token = Router::getRoute('Cron')->generateCliAuthToken('bach_sync_perms', 300);
|
|
|
- * file_get_contents("https://{$baseUrl}/index.php?_route=Cron&_key=bach_sync_perms&_token={$token}&_task=run");
|
|
|
- *
|
|
|
- * TEST: $ php SE/se-lib/Route/Cron-test.php biuro.biall-net.pl
|
|
|
+/* @usage - inside cli script:
|
|
|
+ * $cronTaskName = 'checkInstall';
|
|
|
+ * $keyToken = 'bash_install_check';
|
|
|
+ * $token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, $cronTaskName, 300 * 10);
|
|
|
+ * $output = Router::getRoute('Cron')->executeCurlTastByToken($cronTaskName, $keyToken, $token);
|
|
|
*/
|
|
|
+/* @usage - inside cli script with args:
|
|
|
+ * $cronTaskName = 'forceTablePerms';
|
|
|
+ * $keyToken = 'bash_force_table_perms';
|
|
|
+ * $token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, $cronTaskName, 300 * 10);
|
|
|
+ * $output = Router::getRoute('Cron')->executeCurlTastByToken($cronTaskName, $keyToken, $token, [ 'idGroup' => 3, 'table' => 'CRM_PROCES' ]);
|
|
|
+ */
|
|
|
+// TEST: $ php SE/se-lib/Route/Cron-test.php biuro.biall-net.pl
|
|
|
class Route_Cron extends RouteBase {
|
|
|
|
|
|
public function handleAuth() {
|
|
|
if (User::logged()) {
|
|
|
-
|
|
|
- } else if ($this->authByToken()) {
|
|
|
-
|
|
|
- } else {
|
|
|
- throw new HttpException('Unauthorized', 401);
|
|
|
- }
|
|
|
+ } else if ($this->authByToken()) {
|
|
|
+ } else throw new HttpException('Unauthorized', 401);
|
|
|
}
|
|
|
|
|
|
public function generateCliAuthToken($cliKey, $task, $ttl = 300) {
|
|
|
@@ -82,7 +84,28 @@ class Route_Cron extends RouteBase {
|
|
|
$_SESSION['ADM_ID'] = 9999999999;
|
|
|
DBG::_('DBG_CRON', '>1', 'rawToken', array('createDateTimestamp'=>$createDateTimestamp, 'ttl'=>$ttl, 'cur'=>time()), __CLASS__, __FUNCTION__, __LINE__);
|
|
|
$this->runTask($task);
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function executeCurlTastByToken($cronTaskName, $keyToken, $token, $args = []) { // @require $_SERVER['SERVER_NAME']
|
|
|
+ $baseUrl = "https://{$_SERVER['SERVER_NAME']}/SE";
|
|
|
+ if ('biuro.biall-net.pl' == $_SERVER['SERVER_NAME']) $baseUrl = "https://{$_SERVER['SERVER_NAME']}/SE/version-git";
|
|
|
+
|
|
|
+ //file_get_contents("https://{$baseUrl}/index.php?_route=Cron&_key={$keyToken}&_token={$token}&_task=sendNotify");
|
|
|
+ $url = "{$baseUrl}/index.php?_route=Cron&_key={$keyToken}&_token={$token}&_task={$cronTaskName}";
|
|
|
+ if (!empty($args)) $url .= "&" . implode("&", array_map(function ($key, $val) {
|
|
|
+ return "{$key}={$val}";
|
|
|
+ }, array_keys($args), array_values($args)));
|
|
|
+
|
|
|
+ $ch = curl_init();
|
|
|
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
|
|
|
+ curl_setopt($ch, CURLOPT_URL, $url);
|
|
|
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
|
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
|
|
+ $return = curl_exec($ch);
|
|
|
+ curl_close($ch);
|
|
|
+ return $return;
|
|
|
+ }
|
|
|
|
|
|
public function defaultAction() {
|
|
|
Lib::loadClass('UI');
|
|
|
@@ -180,4 +203,26 @@ class Route_Cron extends RouteBase {
|
|
|
echo "\n.EOF\n";
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /* @usage - inside cli script with args:
|
|
|
+ * $cronTaskName = 'forceTablePerms';
|
|
|
+ * $keyToken = 'bash_force_table_perms';
|
|
|
+ * $token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, $cronTaskName, 300 * 10);
|
|
|
+ * $output = Router::getRoute('Cron')->executeCurlTastByToken($cronTaskName, $keyToken, $token, [ 'idGroup' => 3, 'table' => 'CRM_PROCES' ]);
|
|
|
+ */
|
|
|
+ public function forceTablePermsAction() {
|
|
|
+ $idGroup = V::get('idGroup', 0, $_GET, 'int');
|
|
|
+ if (!$idGroup) throw new Exception("Missing idGroup");
|
|
|
+ $table = V::get('table', '', $_GET, 'word');
|
|
|
+ if (!$table) throw new Exception("Missing table");
|
|
|
+ Lib::loadClass('UsersLdapHelper');
|
|
|
+ $groupsNetwork = UsersLdapHelper::getGroupsByID($idGroup);
|
|
|
+ if (empty($groupsNetwork)) throw new Exception("Group {$idGroup} not found");
|
|
|
+ foreach ($groupsNetwork as $vGroup) {
|
|
|
+ echo "Will try to update table ".$table." set A_CLASSIFIED='".$vGroup->cn."', A_ADM_COMPANY='".$vGroup->cn."' ;" . "\n";
|
|
|
+ // DB::getPDO()->execSql("update table `{$table}` set `A_CLASSIFIED`='{$vGroup->cn}', `A_ADM_COMPANY`='{$vGroup->cn}' ");
|
|
|
+ }
|
|
|
+ echo "DONE";
|
|
|
+ }
|
|
|
+
|
|
|
}
|