2026-08-08 01:29:43 +02:00
|
|
|
{
|
|
|
|
|
"version": "5.2",
|
|
|
|
|
"module": "res",
|
|
|
|
|
"files": [
|
|
|
|
|
{
|
2026-08-09 02:04:04 +02:00
|
|
|
"module": "res",
|
|
|
|
|
"file": "user.py",
|
2026-08-08 01:29:43 +02:00
|
|
|
"class": "User",
|
|
|
|
|
"method": "__register__",
|
|
|
|
|
"line": 194,
|
|
|
|
|
"operations": [
|
2026-08-20 13:27:23 +02:00
|
|
|
{
|
|
|
|
|
"object": "Transaction().connection",
|
|
|
|
|
"operation": "cursor",
|
|
|
|
|
"tables": [],
|
|
|
|
|
"line": 195,
|
|
|
|
|
"args": [],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "Transaction().connection.(Transaction().connection.cursor())()",
|
|
|
|
|
"unresolved": true,
|
|
|
|
|
"phase": "before_super"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "",
|
|
|
|
|
"operation": "Transaction",
|
|
|
|
|
"tables": [],
|
|
|
|
|
"line": 195,
|
|
|
|
|
"args": [],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "Transaction()",
|
|
|
|
|
"unresolved": true,
|
|
|
|
|
"phase": "before_super"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "",
|
|
|
|
|
"operation": "Concat",
|
|
|
|
|
"tables": [],
|
|
|
|
|
"line": 202,
|
|
|
|
|
"args": [
|
|
|
|
|
"'sha1$'",
|
|
|
|
|
"Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))",
|
|
|
|
|
"unresolved": true,
|
|
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "",
|
|
|
|
|
"operation": "Concat",
|
|
|
|
|
"tables": [],
|
|
|
|
|
"line": 202,
|
|
|
|
|
"args": [
|
|
|
|
|
"sqltable.password",
|
|
|
|
|
"Concat('$', Coalesce(sqltable.salt, ''))"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))",
|
|
|
|
|
"unresolved": true,
|
|
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "",
|
|
|
|
|
"operation": "Concat",
|
|
|
|
|
"tables": [],
|
|
|
|
|
"line": 203,
|
|
|
|
|
"args": [
|
|
|
|
|
"'$'",
|
|
|
|
|
"Coalesce(sqltable.salt, '')"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "Concat('$', Coalesce(sqltable.salt, ''))",
|
|
|
|
|
"unresolved": true,
|
|
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "",
|
|
|
|
|
"operation": "Coalesce",
|
|
|
|
|
"tables": [],
|
|
|
|
|
"line": 203,
|
|
|
|
|
"args": [
|
|
|
|
|
"sqltable.salt",
|
|
|
|
|
"''"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "Coalesce(sqltable.salt, '')",
|
|
|
|
|
"unresolved": true,
|
|
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
2026-08-08 01:29:43 +02:00
|
|
|
{
|
|
|
|
|
"object": "cursor",
|
|
|
|
|
"operation": "execute",
|
2026-08-08 22:32:31 +02:00
|
|
|
"tables": [
|
|
|
|
|
"res_user"
|
|
|
|
|
],
|
2026-08-08 01:29:43 +02:00
|
|
|
"line": 204,
|
|
|
|
|
"args": [
|
|
|
|
|
"*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
2026-08-09 00:47:23 +02:00
|
|
|
"code": "(Transaction().connection.cursor()).execute(*sqltable.update(\n columns=[sqltable.password_hash],\n values=[password_hash_new]))",
|
2026-08-08 01:29:43 +02:00
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "sqltable",
|
|
|
|
|
"operation": "update",
|
2026-08-08 22:32:31 +02:00
|
|
|
"tables": [
|
|
|
|
|
"res_user"
|
|
|
|
|
],
|
2026-08-08 01:29:43 +02:00
|
|
|
"line": 204,
|
|
|
|
|
"args": [],
|
|
|
|
|
"kwargs": {
|
|
|
|
|
"columns": "[sqltable.password_hash]",
|
|
|
|
|
"values": "[password_hash_new]"
|
|
|
|
|
},
|
2026-08-09 00:47:23 +02:00
|
|
|
"code": "sqltable.update(\n columns=[sqltable.password_hash],\n values=[password_hash_new])",
|
2026-08-08 01:29:43 +02:00
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "table",
|
|
|
|
|
"operation": "drop_column",
|
2026-08-08 22:32:31 +02:00
|
|
|
"tables": [
|
|
|
|
|
"res_user"
|
|
|
|
|
],
|
2026-08-08 01:29:43 +02:00
|
|
|
"line": 207,
|
|
|
|
|
"args": [
|
|
|
|
|
"'password'"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "table.drop_column('password')",
|
|
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "table",
|
|
|
|
|
"operation": "drop_column",
|
2026-08-08 22:32:31 +02:00
|
|
|
"tables": [
|
|
|
|
|
"res_user"
|
|
|
|
|
],
|
2026-08-08 01:29:43 +02:00
|
|
|
"line": 208,
|
|
|
|
|
"args": [
|
|
|
|
|
"'salt'"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {},
|
|
|
|
|
"code": "table.drop_column('salt')",
|
|
|
|
|
"phase": "after_super",
|
|
|
|
|
"condition": "table.column_exist('password') and table.column_exist('salt')"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"object": "table",
|
|
|
|
|
"operation": "not_null_action",
|
2026-08-08 22:32:31 +02:00
|
|
|
"tables": [
|
|
|
|
|
"res_user"
|
|
|
|
|
],
|
2026-08-08 01:29:43 +02:00
|
|
|
"line": 211,
|
|
|
|
|
"args": [
|
|
|
|
|
"'name'"
|
|
|
|
|
],
|
|
|
|
|
"kwargs": {
|
|
|
|
|
"action": "'remove'"
|
|
|
|
|
},
|
|
|
|
|
"code": "table.not_null_action('name', action='remove')",
|
|
|
|
|
"phase": "after_super"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|