Explorar el Código

Add user from instalator - TODO TESTING

a.binder hace 8 años
padre
commit
3634d13bae

+ 57 - 0
SE/bash_Route_Users_Task_AddUser.php

@@ -0,0 +1,57 @@
+<?php
+/**
+ * 2017-08-16 by a.binder - sync group get name to use in default group A_CLASSIFIED/A_ADM_COMPANY in instalation task
+ * index.php?_route=Users&_task=syncGroup&idGroup=$argv[2]
+ *
+ */
+
+ini_set('max_execution_time', 300);
+ini_set('memory_limit', '512M');
+
+define('DS', DIRECTORY_SEPARATOR);
+define('APP_PATH_ROOT', dirname(__FILE__));
+define('APP_PATH_WWW', dirname(__FILE__));
+define('APP_PATH_CONFIG', APP_PATH_ROOT . DS . 'config');
+
+// set ini to log errors into error log file
+ini_set('display_startup_errors', '0');
+ini_set('log_errors', '1');
+ini_set('error_log', '/var/log/apache2/error_log');// TODO: php.ini ?
+
+require_once APP_PATH_ROOT . DS . 'se-lib' . DS . 'Lib.php';
+Lib::loadClass('V');
+Lib::loadClass('Config');
+Lib::loadClass('DB');
+Lib::loadClass('User');
+// _ Lib::loadClass('UserStorageFactory');
+
+
+if (isset($_SERVER["argv"][2])) {
+	$_SERVER['SERVER_NAME']		 = $_SERVER["argv"][1];
+	$usrLogin 					= $_SERVER["argv"][2];  //'ADM_ACCOUNT' => $usrLogin,
+	$idGroup 					= $_SERVER["argv"][3];
+	$idTelboxes					= $_SERVER["argv"][4];
+	$ADM_ADMIN_LEVEL 			= $_SERVER["argv"][5]; //'ADM_ADMIN_LEVEL' => $ADM_ADMIN_LEVEL,
+	$ADM_NAME 					= $_SERVER["argv"][6]; //					'ADM_NAME' => $ADM_NAME,
+	$ADM_ADMIN_DESC				= $_SERVER["argv"][7]; //						'ADM_ADMIN_DESC' => $ADM_ADMIN_DESC,
+	$EMPLOYEE_TYPE				= $_SERVER["argv"][8]; //						'EMPLOYEE_TYPE' => $EMPLOYEE_TYPE,
+	$ADM_PASSWD 				= $_SERVER["argv"][9]; //						'ADM_PASSWD' => $ADM_PASSWD,
+	$idGroup_A_ADM_COMPANY		= $_SERVER["argv"][10]; //					'A_ADM_COMPANY' => $A_ADM_COMPANY,
+	$idGroup_A_CLASSIFIED		= $_SERVER["argv"][11]; //						'A_CLASSIFIED' => $A_CLASSIFIED	
+	$idGroup_DEFAULT_ACL_GROUP	= $_SERVER["argv"][12]; //						'DEFAULT_ACL_GROUP' => $DEFAULT_ACL_GROUP	
+}
+
+else {
+	die("\n The second argument should be server domain - e.g. biuro.biall-net.pl and third idGroup e.g. 3 \n");
+}
+
+
+$cronTaskName = 'AddUser';
+$keyToken = 'bash_AddUser';
+$token = Router::getRoute('Cron')->generateCliAuthToken($keyToken, $cronTaskName, 300 * 10);
+$output = Router::getRoute('Cron')->executeCurlTastByToken($cronTaskName, $keyToken, $token, [ 'idGroup' => $groupID, 'usrLogin' => $usrLogin , 'idTelboxes' => $idTelboxes,  'ADM_ADMIN_LEVEL' => $ADM_ADMIN_LEVEL, 'ADM_NAME' => $ADM_NAME, 'ADM_ADMIN_DESC' => $ADM_ADMIN_DESC, 'EMPLOYEE_TYPE' => $EMPLOYEE_TYPE, 'ADM_PASSWD' => $ADM_PASSWD, 'idGroup_A_ADM_COMPANY' => $idGroup_A_ADM_COMPANY, 'idGroup_A_CLASSIFIED' => $idGroup_A_CLASSIFIED, 'idGroup_DEFAULT_ACL_GROUP' => $idGroup_DEFAULT_ACL_GROUP ]);
+echo "DBG: output -----------------------\n{$output}\nEOF output---------------------------------\n";
+
+die(".EOF - OK\n");
+
+?>

+ 44 - 0
SE/se-lib/Route/Cron.php

@@ -256,5 +256,49 @@ class Route_Cron extends RouteBase {
 		
 		echo "DONE";
 	}
+	
+	
+	public function AddUserAction() {
+		//$output = Router::getRoute('Cron')->executeCurlTastByToken($cronTaskName, $keyToken, $token, [ 'idGroup' => $groupID, 'usrLogin' => $usrLogin , 'ADM_ADMIN_LEVEL' => $ADM_ADMIN_LEVEL, 'ADM_NAME' => $ADM_NAME, 'ADM_ADMIN_DESC' => $ADM_ADMIN_DESC, 'EMPLOYEE_TYPE' => $EMPLOYEE_TYPE, 'ADM_PASSWD' => $ADM_PASSWD, 'A_ADM_COMPANY' => $A_ADM_COMPANY, 'A_CLASSIFIED' => $A_CLASSIFIED ]);
+
+		$idGroup 					= V::get('idGroup', 0, $_GET, 'int');
+		$usrLogin 					= V::get('usrLogin', 0, $_GET, 'word');
+		$idTelboxes					= V::get('idTelboxes', 0, $_GET, 'int');
+		$ADM_ADMIN_LEVEL 			= V::get('ADM_ADMIN_LEVEL', 0, $_GET, 'int');
+		$ADM_NAME 					= V::get('ADM_NAME', 0, $_GET, 'word');
+		$ADM_ADMIN_DESC 			= V::get('ADM_ADMIN_DESC', 0, $_GET, 'word');
+		$EMPLOYEE_TYPE 				= V::get('EMPLOYEE_TYPE', 0, $_GET, 'word');
+		$ADM_PASSWD 				= V::get('ADM_PASSWD', 0, $_GET, 'word');
+		$idGroup_A_ADM_COMPANY 		= V::get('idGroup_A_ADM_COMPANY', 0, $_GET, 'int');
+		$idGroup_A_CLASSIFIED 		= V::get('idGroup_A_CLASSIFIED', 0, $_GET, 'int');
+		$idGroup_DEFAULT_ACL_GROUP	= V::get('idGroup_DEFAULT_ACL_GROUP', 0, $_GET, 'int');
+		if (!$usrLogin) throw new Exception("Missing usrLogin");
+		
+		
+		Lib::loadClass('Router');
+		Lib::loadClass('UsersLdapHelper');
+		
+			Lib::loadClass('UsersLdapHelper');
+			$groupsNetwork = UsersLdapHelper::getGroupsByID($idGroup_A_ADM_COMPANY);
+			if (empty($groupsNetwork)) throw new Exception("Group {$idGroup_A_ADM_COMPANY} not found");
+				foreach ($groupsNetwork as $vGroup) {
+					$A_ADM_COMPANY = $vGroup->cn;
+				}
+			$groupsNetwork = UsersLdapHelper::getGroupsByID($idGroup_A_CLASSIFIED);
+			if (empty($groupsNetwork)) throw new Exception("Group {$idGroup_A_CLASSIFIED} not found");
+				foreach ($groupsNetwork as $vGroup) {
+					$A_CLASSIFIED = $vGroup->cn;
+				}
+				
+			$groupsNetwork = UsersLdapHelper::getGroupsByID($idGroup_DEFAULT_ACL_GROUP);
+			if (empty($groupsNetwork)) throw new Exception("Group {$idGroup_A_CLASSIFIED} not found");
+				foreach ($groupsNetwork as $vGroup) {
+					$DEFAULT_ACL_GROUP = $vGroup->cn;
+				}
+		Router::getRoute('Users')->addUser($usrLogin, $idGroup, $idTelboxes,  $ADM_ADMIN_LEVEL, $ADM_NAME, $ADM_ADMIN_DESC, $EMPLOYEE_TYPE, $ADM_PASSWD, $A_ADM_COMPANY, $A_CLASSIFIED, $DEFAULT_ACL_GROUP );
+		
+		echo "DONE";
+	}
+
 
 }

+ 30 - 0
SE/se-lib/Route/Users.php

@@ -691,6 +691,36 @@ class Route_Users extends RouteBase {
 			$added = $usrStorageDB->addUserGroup($usrLogin, $groupToAdd, $idTelboxes);
 		}
 	}
+	
+	public function addUser($usrLogin, $idGroup, $idTelboxes,  $ADM_ADMIN_LEVEL, $ADM_NAME, $ADM_ADMIN_DESC, $EMPLOYEE_TYPE, $ADM_PASSWD, $A_ADM_COMPANY, $A_CLASSIFIED, $DEFAULT_ACL_GROUP ) {
+		DBG::_('DBG_NG', '>0', 'post', $_POST, __CLASS__, __FUNCTION__, __LINE__);
+		if (!$usrLogin) throw new Exception("Wrong param user login!");
+		$usrStorageDB = UserStorageFactory::getStorage('DB');
+		if (!$usrStorageDB) throw new Exception("Error storage not exists!");
+		
+		$usr = $usrStorageDB->getUser($usrLogin);
+		if ($usr) throw new Exception("Użytkownik {$usrLogin} już istnieje.");
+		if (!$usr) {
+					$acl = ACL::getStorageByNamespace("default_db/ADMIN_USERS/ADMIN_USERS");
+						$usr = $acl->addItem([
+							'ADM_ACCOUNT' => $usrLogin,
+							'ADM_ADMIN_LEVEL' => $ADM_ADMIN_LEVEL,
+							'ADM_NAME' => $ADM_NAME,
+							'ADM_ADMIN_DESC' => $ADM_ADMIN_DESC,
+							'EMPLOYEE_TYPE' => $EMPLOYEE_TYPE,
+							'ADM_PASSWD' => $ADM_PASSWD,
+							'A_ADM_COMPANY' => $A_ADM_COMPANY,
+							'A_CLASSIFIED' => $A_CLASSIFIED
+						]);
+						if (!$usr) throw new Exception("Nie udało się utworzyć wpisu użytkownika");
+					
+				if ($idGroup > 0) {
+					$groupToAdd = $usrStorageDB->getGroupWithoutNested($idGroup);
+					if (!$groupToAdd) throw new Exception("Grupa [{$idGroup}] nie istnieje");
+					$added = $usrStorageDB->addUserGroup($usrLogin, $groupToAdd, $idTelboxes);
+				}
+		}
+	}
 
 	public function typeSpecialIdGroupAction() {
 		header("Content-type: application/json");

+ 10 - 4
SE/superedit-INSTALL_SES_PROCESY_A.php

@@ -1571,6 +1571,8 @@ function INSTALL_GETCOMMANDS_SE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNA
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_Route_Users_Task_syncGroup.php','/Library/Server/Web/Data/Sites/Default/SE/');
   $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_force_classified_table_by_GroupID.php || echo PASSED';
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_force_classified_table_by_GroupID.php','/Library/Server/Web/Data/Sites/Default/SE/');
+  $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_Route_Users_Task_AddUser.php','/Library/Server/Web/Data/Sites/Default/SE/');
+
 
 
 
@@ -2075,12 +2077,16 @@ database=\"SES_USERS2\"
 // TODO $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_syncGroup.php '.$SERVER_ADDRESS.' 3';
 
 
+// $cmd[]['rsh']=' echo " delete from ADMIN_USERS  where ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
+// $cmd[]['rsh']=' echo " insert into ADMIN_USERS (ADM_ACCOUNT,ADM_ADMIN_LEVEL,ADM_PASSWD,A_STATUS) values (\''.$ADMIN_USERNAME_L1.'\',\'0\',\''.$ADMIN_USERNAME_L1_PASS.'\',\'NORMAL\')" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
+																												//addUser($usrLogin, $idGroup, $idTelboxes,  $ADM_ADMIN_LEVEL, $ADM_NAME,             $ADM_ADMIN_DESC,											 $EMPLOYEE_TYPE, $ADM_PASSWD, $A_ADM_COMPANY, $A_CLASSIFIED, $DEFAULT_ACL_GROUP )
 
- $cmd[]['rsh']=' echo " delete from ADMIN_USERS  where ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
+ $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_AddUser.php '.$SERVER_ADDRESS.' '.$ADMIN_USERNAME_L1.' 3  0              0               '.$ADMIN_USERNAME_L1.' Podstawowe_konto_uzytkownika_z_licencji_instalatora_systemu  Pracownik  '.$ADMIN_USERNAME_L1_PASS.' 3  3 ' ;
+ 
  $cmd[]['rsh']=' echo " delete from ADMIN_USERS  where ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\'" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
-
- $cmd[]['rsh']=' echo " insert into ADMIN_USERS (ADM_ACCOUNT,ADM_ADMIN_LEVEL,ADM_PASSWD,A_STATUS) values (\''.$ADMIN_USERNAME_L1.'\',\'0\',\''.$ADMIN_USERNAME_L1_PASS.'\',\'NORMAL\')" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  $cmd[]['rsh']=' echo " insert into ADMIN_USERS (ADM_ACCOUNT,ADM_ADMIN_LEVEL,ADM_PASSWD,A_STATUS) values (\''.$ADMIN_USERNAME_DIRECTORY.'\',\'0\',\''.$ADMIN_USERNAME_PASSWD.'\',\'NORMAL\')" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
+
+
 //dodanie domyslnego uprawnienia admina dla glownego usera na bazie tabeli KONTAKTY_view
  $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select czp1.ID , \'ADMIN_USERS\', au.ID
                           from CRM_LISTA_ZASOBOW cz
@@ -2459,7 +2465,7 @@ function MAKE_PKG_COMPONENT($h,$installer_dir_tar,$installer_url,$installer_tmp,
 				$skipPhpFiles[] = 'bash_Route_Users_Task_syncUser.php';
 				$skipPhpFiles[] = 'bash_Route_Users_Task_syncGroup.php';
 				$skipPhpFiles[] = 'bash_force_classified_table_by_GroupID.php';
-				$skipPhpFiles[] = 'UserStorageFactory.php';
+				$skipPhpFiles[] = 'bash_Route_Users_Task_AddUser.php';