IDEMPIERE-5174 Disable System User (#1170)

Database Error when query/ReQuery in info window "Info System Element" as System User
This commit is contained in:
Carlos Ruiz 2022-02-08 03:58:03 +01:00 committed by GitHub
parent 037872d3e7
commit 32a312a875
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 72 additions and 179 deletions

View File

@ -0,0 +1,35 @@
SET SQLBLANKLINES ON
SET DEFINE OFF
-- IDEMPIERE-5174 Deactivate System user
-- Feb 7, 2022, 9:52:47 PM CET
UPDATE AD_User SET IsActive='N',Password=NULL,Updated=TO_DATE('2022-02-07 21:52:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_User_ID=0 AND IsActive='Y'
;
-- Feb 7, 2022, 9:52:55 PM CET
UPDATE AD_User_Roles SET IsActive='N',Updated=TO_DATE('2022-02-07 21:52:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Role_ID=0 AND AD_User_ID=0 AND IsActive='Y'
;
-- Feb 7, 2022, 10:49:09 PM CET
UPDATE AD_SchedulerRecipient SET AD_User_ID=100,Updated=TO_DATE('2022-02-07 22:49:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_User_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_AlertProcessor SET Supervisor_ID=100,Updated=TO_DATE('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_LdapProcessor SET Supervisor_ID=100,Updated=TO_DATE('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_Scheduler SET Supervisor_ID=100,Updated=TO_DATE('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_WorkflowProcessor SET Supervisor_ID=100,Updated=TO_DATE('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
SELECT register_migration_script('202202072157_IDEMPIERE-5174.sql') FROM dual
;

View File

@ -0,0 +1,32 @@
-- IDEMPIERE-5174 Deactivate System user
-- Feb 7, 2022, 9:52:47 PM CET
UPDATE AD_User SET IsActive='N',Password=NULL,Updated=TO_TIMESTAMP('2022-02-07 21:52:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_User_ID=0 AND IsActive='Y'
;
-- Feb 7, 2022, 9:52:55 PM CET
UPDATE AD_User_Roles SET IsActive='N',Updated=TO_TIMESTAMP('2022-02-07 21:52:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Role_ID=0 AND AD_User_ID=0 AND IsActive='Y'
;
-- Feb 7, 2022, 10:49:09 PM CET
UPDATE AD_SchedulerRecipient SET AD_User_ID=100,Updated=TO_TIMESTAMP('2022-02-07 22:49:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_User_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_AlertProcessor SET Supervisor_ID=100,Updated=TO_TIMESTAMP('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_LdapProcessor SET Supervisor_ID=100,Updated=TO_TIMESTAMP('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_Scheduler SET Supervisor_ID=100,Updated=TO_TIMESTAMP('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
-- Feb 7, 2022, 10:59:05 PM CET
UPDATE AD_WorkflowProcessor SET Supervisor_ID=100,Updated=TO_TIMESTAMP('2022-02-07 22:59:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Supervisor_ID=0
;
SELECT register_migration_script('202202072157_IDEMPIERE-5174.sql') FROM dual
;

View File

@ -1,139 +0,0 @@
/******************************************************************************
* Product: Adempiere ERP & CRM Smart Business Solution *
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. 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 General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* For the text or an alternative of this public license, you may reach us *
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
* or via info@compiere.org or http://www.compiere.org/license.html *
*****************************************************************************/
package org.compiere;
import static org.compiere.model.SystemIDs.WINDOW_WINDOW_TAB_FIELD;
import java.util.Properties;
import org.compiere.model.GridWindow;
import org.compiere.model.GridWindowVO;
import org.compiere.model.MConversionRate;
import org.compiere.model.MUOMConversion;
import org.compiere.util.Env;
import org.compiere.util.Login;
/**
* Base Library Test Classes mainly for Optimize it
*
* @author Jorg Janke
* @version $Id: Base.java,v 1.5 2006/09/21 20:44:54 jjanke Exp $
*/
class Base
{
/**
* Base Test
*/
public static void test()
{
System.out.println("** Before Init **"); //$NON-NLS-1$
getMemoryUsed();
Properties ctx = Login.initTest(false);
//
System.gc(); // cleanup Init
//
System.out.println("** Before Creation **");
long start = getMemoryUsed();
// *******************************************************************
// Table=100, Shipper=142, Window=102, Reference=101
int AD_Window_ID = WINDOW_WINDOW_TAB_FIELD;
long startTime = System.currentTimeMillis();
GridWindowVO vo = GridWindowVO.create(Env.getCtx(), 1, AD_Window_ID);
GridWindow w = new GridWindow(vo);
long endDef = System.currentTimeMillis();
System.out.println("Load Definition Time in ms = " + String.valueOf(endDef-startTime));
w.query();
long endData = System.currentTimeMillis();
System.out.println("Load Data Time in ms = " + String.valueOf(endData-startTime));
w.loadCompete();
long endDataComplete = System.currentTimeMillis();
System.out.println("Load Data Complete Time in ms = " + String.valueOf(endDataComplete-startTime));
w.getTab(0).navigate(0);
// *******************************************************************
// sleep();
System.out.println("** Before Dispose **");
getMemoryUsed();
w.dispose();
// sleep();
//
System.out.println("** Before GC **");
getMemoryUsed();
w = null;
System.gc();
System.out.println("** After GC **");
getMemoryUsed();
System.gc();
System.out.println("** Final **");
long complete = System.currentTimeMillis();
System.out.println("Complete Time in ms = " + String.valueOf(complete-startTime));
long end = getMemoryUsed();
System.out.println("Memory increase in kB = End-Start=" + String.valueOf((end-start)/1024));
listThreads();
//
System.out.println("API Test");
System.out.println("64.72=" + MConversionRate.convert(ctx, Env.ONEHUNDRED, 116, 100,0,0));
System.out.println("0.647169=" + MConversionRate.getRate(116, 100, null, 0,0,0));
System.out.println("12.5=" + MUOMConversion.convert(101, 102, Env.ONEHUNDRED, true));
} // Base
/**
* Get Used Memory in bytes
* @return memory used
*/
private static long getMemoryUsed()
{
long free = Runtime.getRuntime().freeMemory();
long total = Runtime.getRuntime().totalMemory();
long used = total - free;
//
System.out.println("Memory used in kB = Total("
+ String.valueOf(total/1024) + ")-Free("
+ String.valueOf(free/1024) + ") = " + String.valueOf(used/1024));
System.out.println("Active Threads=" + Thread.activeCount());
return used;
} // getMemoryUsed
/**
* List Threads
*/
private static void listThreads()
{
Thread[] list = new Thread[Thread.activeCount()];
for (int i = 0; i < list.length; i++)
{
if (list[i] != null)
System.out.println("Thread " + i + " - " + list[i].toString());
}
} // listThreads
/**
* Start
* @param args ignored
*/
public static void main(String[] args)
{
Base.test();
Env.exitEnv(0);
} // main
} // Base

View File

@ -52,7 +52,6 @@ import org.compiere.util.CLogger;
import org.compiere.util.DB;
import org.compiere.util.Env;
import org.compiere.util.Language;
import org.compiere.util.Login;
import org.compiere.util.Msg;
import org.compiere.util.Util;
import org.eclipse.equinox.app.IApplication;
@ -589,33 +588,4 @@ public class Translation implements IApplication
// IApplication implementation method - (only start method used)
}
/**************************************************************************
* Batch Interface
* @param args directory AD_Language import/export
*/
public static void main (String[] args)
{
if (args.length != 3)
{
System.out.println("format : java Translation directory AD_Language import|export");
System.out.println("example: java Translation /Adempiere/data/de_DE de_DE import");
System.out.println("example: java Translation /Adempiere/data/fr_FR fr_FR export");
System.exit(1);
}
//
Login.initTest (false);
String directory = args[0];
String AD_Language = args[1];
String mode = args[2];
Translation trl = new Translation(Env.getCtx());
String msg = trl.validateLanguage (AD_Language);
if (msg.length() > 0)
System.err.println(msg);
else
trl.process (directory, AD_Language, mode);
System.exit(0);
} // main
} // Translation

View File

@ -82,6 +82,7 @@ public class Login
* @param isClient client session
* @return Context
*/
@Deprecated
public static Properties initTest (boolean isClient)
{
// logger.entering("Env", "initTest");
@ -91,7 +92,7 @@ public class Login
Properties ctx = Env.getCtx();
Login login = new Login(ctx);
KeyNamePair[] roles = login.getRoles(CConnection.get(),
"System", "System", true);
"SuperUser", "System", true);
// load role
if (roles != null && roles.length > 0)
{
@ -373,9 +374,9 @@ public class Login
if (!rs.next()) // no record found
if (force)
{
Env.setContext(m_ctx, Env.AD_USER_NAME, "System");
Env.setContext(m_ctx, Env.AD_USER_ID, "0");
Env.setContext(m_ctx, "#AD_User_Description", "System Forced Login");
Env.setContext(m_ctx, Env.AD_USER_NAME, "SuperUser");
Env.setContext(m_ctx, Env.AD_USER_ID, "100");
Env.setContext(m_ctx, "#AD_User_Description", "SuperUser Forced Login");
Env.setContext(m_ctx, Env.USER_LEVEL, "S "); // Format 'SCO'
Env.setContext(m_ctx, "#User_Client", "0"); // Format c1, c2, ...
Env.setContext(m_ctx, "#User_Org", "0"); // Format o1, o2, ...

View File

@ -50,12 +50,6 @@ Copyright (C) 2009 Idalica Corporation
</td><td>System
</td></tr>
<tr valign="top">
</td><td>System
</td><td>system @ idempiere.com
</td><td>System
</td></tr>
</tbody>
</table>
</div>