Commit Graph
100 Commits
Author SHA1 Message Date
Toufik Ben Jaa e34dbd9d9c [FIX] sale_timesheet: multi-company access rights issue
- When trying to timesheet on a task that is linked to a sale order
   line from a different company than the user's current one.
   An error is triggered due multi company access rights issue.

   This is due to two computed fields that are not computed in sudo
   mode.
   They make more sense as `computed_sudo` fields as they are only
   computed stats and are not leaking private data.

closes odoo/odoo#64828

X-original-commit: 721378370f5aadb476e8cc606be9a41a3ffad74a
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2021-01-21 08:18:48 +00:00
Toufik Ben Jaa 9df742d3c7 [FIX] payment: crash when using payment page
- The PR https://github.com/odoo/odoo/pull/55122 introduced a typo,
  that breaks the payment page.

opw-2322033

closes odoo/odoo#56204

X-original-commit: 125683bbbb7b1f43bec29bdd07e81886c4e6e139
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-08-20 11:42:24 +00:00
Toufik Ben Jaa d4c1a71bc0 [FIX] website_crm_partner_assign: allow sales to forward leads
- Since the wizards now requires ACLs, the access rights
  set on the lead forward partner and the lead assignation are
  incorrect.

  Only the Sales/Administrator are able to use them.
  With this commit we introduce the intended behavior where
  the sales are able to perform those tasks.

closes odoo/odoo#54568

X-original-commit: 3081ca828e4a7de3861ee5b1fb9600b248c3ea07
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-07-16 11:40:21 +00:00
Toufik Ben Jaa e7dcf6ac30 [FIX] hr_timesheet: allow leaves to be modified
- The HR staff may not be able to accept/refuse/cancel leaves if the
  module `project_timesheet_holidays` is installed.

  This is due to the commit c9da157149
  introducing a manual check on the current user's group without
  checking if the current environment is in superuser mode.

- Also fix the test verifying the access restriction, which meant to use
  a different user, but did that with sudo(), obviously defeating
  the fix. sudo is not used to switch user anymore, that `with_user`.

closes odoo/odoo#55274

X-original-commit: 75a166f1d115cc712bb39e7711d0fcb173732650
Related: odoo/enterprise#12149
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-07-31 15:36:02 +00:00
Toufik Ben Jaa 04a757d596 [FIX] project: allow non manger to duplicate tasks
- The field `allowed_user_ids` is only accessible to Project Manager.
  When trying to duplicate a task, an access right issue is raised
  if you are not project manager.
  This is due to the fact that when trying to duplicate this field is
  read.

  To avoid this issue, we specify that this field should be copied thus
  not be read.

closes odoo/odoo#54509

X-original-commit: 95dedd23cc7a7d66d7a7dc17b9f9ac4f5473e226
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-07-15 12:42:59 +00:00
Toufik Ben Jaa b0cd9c13a0 [FIX] payment: use order company on payment page
- The payment link generated by using the wizard
    `payment.link.wizard` are overriden to generate
    URL linked to sale orders.

    If so, we want the payment acquirer displayed to
    be in the same company as the sale order.

closes odoo/odoo#49018

X-original-commit: 8c299efb6cb4355cec39cdedd8d7c3134f53d199
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-04-06 09:24:28 +00:00
Toufik Ben Jaa 707522cb01 [FIX] sql_db: flush when no uid in environment
- A bug has been introduced by the PR https://github.com/odoo/odoo/pull/46719
  This issue prevented flushes to database when no `uid` is set in the
  current environment.
  This happens when database changes are made in `auth="none"` routes.
  In a MonoDB setup this was working because Odoo consider `None`, `False` as
  `null` and was always bound to a database.

  Nothing prevents to write `null` in the columns `create_uid` and
  `write_uid` in database.
  The PR that introduced the bug wanted to block the cases where
  `uid` is an instance of the class `RequestUID` to avoid `Cannot adapt
  type` errors.
  So testing that `uid` is an integer isn't enough.

  Two fixes were possible here, either check if `uid` is an instance
  of the class `RequestUID` or if it is either an integer, `False` or `None`.

  To avoid noise and imports from `odoo`, we test that `uid` is an instance
  of `None`.
  The case where it is `False` is already tested in the python code:

  ```python
	isinstance(env.uid, int)
  ```

(manual) forward-port of odoo/odoo#48685

closes odoo/odoo#48693

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-04-01 00:30:30 +00:00
Toufik Ben Jaa ac32c3ea6c [FIX] models: crash on one2many fields without inverse
- In some cases One2many fields defined as computed without
    inverse field defined could cause crashes if it is used
    in a search.

    This should not be done, but shouldn't crash either.
    With this fix, trying to search on one of this fields
    would just print a warning.

closes odoo/odoo#46742

X-original-commit: 4b4f1623590f2e872c565e8e56002bc3f5bf9efe
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-03-03 12:19:10 +00:00
Toufik Ben Jaa f9f5531f3f [FIX] sale: speed-up invoice creation
- At invoice creation, the stored fields that depends on `invoice_lines`
    are computed to be stored.
    This can slow down the invoice creation for a database with a lot of
    records on `account_move`.

    This commit speed-up the invoice creation by using SQL Joins to
    speed-up the searches.
    We cannot use `auto_join` on the `invoice_lines` field since it is
    not supported on many2many, thus we do it in SQL.

closes odoo/odoo#46233

X-original-commit: b39e17c464775564faa7d0f10e675d47fa026234
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-02-25 13:09:25 +00:00
Toufik Ben Jaa 1744878573 [FIX] base: access rights issue on users form
- The form view on `res.users` displays information about
    how many record rules, ACL and groups are applied to the users.

    In some cases the current users may not have the required
    access rights to compute those values.
    To fix this issue, the computed fields are now computed
    in `compute_sudo` mode

closes odoo/odoo#46149

X-original-commit: 653f81f49ba4d92648eb04209cdbe73894dfac08
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-02-24 16:39:26 +00:00
Toufik Ben Jaa 5ab518ce67 [FIX] mail: referenced before assignment error
- In some cases when trying to open a discuss conversation a
    traceback can occur because of the usage of a local variable
    before its assignation.

closes odoo/odoo#45867

X-original-commit: 47bec812a36c1e41bdb525439dfd18a208e1dd79
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-02-20 17:26:35 +00:00
Toufik Ben Jaa 9fa2db1369 [FIX] website_blog: avoid crash when redirected on /blog
- When browsing the blogs, in some cases the code need
    to fix the URL to properly slugify the tags.

    When so, the code crashes since it is trying to maniapulate
    a `werkzeug.wrappers.Response` as if it was a `dict`.
    To avoid this, we directly return the `werkzeug.wrappers.Response`
    instead of trying to modify it.

closes odoo/odoo#45658

X-original-commit: d26ba7e4b71138a324bbb729f406cbad562881e7
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-02-18 16:29:50 +00:00
Toufik Ben Jaa b22ba61c80 [FIX] website: rollback transaction before creating new one
- When rendering a website page, exceptions might happens.
    If so, an error page is displayed, to do so we create
    a new psyscopg cursor to read the view in database and render it.

    But if the current (failed) transaction was holding a lock, the new
    cursor might have to wait for this lock to be released further
    down the line. However, this will only happen after the
    request is done (and in fact it won't happen). As a result, the
    current thread/worker is frozen until its timeout is reached.

    So rolling back the transaction will release any potential lock
    and, since we are in a case where an exception was raised, the
    transaction shouldn't be committed in the first place.

closes odoo/odoo#44085

X-original-commit: 7a61c89da5ccaed983275eb5f4986475ebf8b48d
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-01-28 11:13:55 +00:00
Toufik Ben Jaa 427e8d76a3 [FIX] website: avoid to instanciate env in request
- The module `website` instanciate the environment bound to
    request before `_dispatch` is called.
    This causes issues with with routes that create their own
    psycopg2 cursor.

    To be more precise, the issue that allowed us to discover this
    instanciation is linked to the module `auth_oauth`.

    The route `/auth_oauth/signin` is a `none` route that receives
    a database name. It uses the db name to create a cursor and
    an environment manually to process the OAuth signin, log-in the user
    then assume it is safe to now use `request.env` to process the rest
    of the code.

    But here, since a cursor has already been created in `request` before the
    route had the chance to commit its changes to `res.users`, the
    changes made in the route `/auth_oauth/signin` are not available.

    And this causes issues with the computation of the session token
    done in the method `_compute_session_token` in the model `res.users`.

    It uses the field `oauth_access_token` to compute the session token.
    But since, the cursor in `request` is in a transaction that is not
    yet aware of the changes made on this field, it will compute a
    session token using the old `oauth_access_token` and store this
    outdated token in the client's session.

    Then here depending if you are using a multi-worker or a multi-thread
    Odoo, you either are never signed in or your session is expired
    after a cache cleaning (the method `_compute_session_token` is cached).

closes odoo/odoo#42808

X-original-commit: ceec103826ae2a18c63b48c17850d035e352fa3b
Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2020-01-06 17:38:59 +00:00
Toufik Ben Jaa 3a81d43aff [FIX] hr{_org_chart}: multi-company access issues on employees
- Avoid to crash when trying to render an employee's org chart
  when in a different company than yours.
- Retrieve the context from the current environment instead of
  the `_check_employee` function parameters.

closes odoo/odoo#37251

Signed-off-by: Romain Libert (rli) <rli@odoo.com>
2019-09-23 10:12:31 +00:00
Toufik Ben Jaa 0f6740c80c [FIX] website_sale_digital: invoice_id doesn't exists anymore
- Since commit https://github.com/odoo/odoo/commit/beaa30a3d1843de43a45f419bfbc1bfa7613a920
the object `account.invoice` has been removed.

We now refer to `account.move` when talking about invoices.
In website_sale_digital, a piece of code was still refering to the
field `invoice_id` in `account.move.line` instead of using `move_id`.
- Fixing some missing adaptation after the account refactoring

closes odoo/odoo#35630

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-08-13 11:43:50 +00:00
Toufik Ben Jaa 22a71d694f [FIX] odoo: do not try to set source term on new records
closes odoo/odoo#36026

Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
2019-08-23 13:16:40 +00:00
Toufik Ben Jaa a2c52e9efd [FIX] stock: remove a useless with_user
- Before the change of `sudo` and `with_user` the code was non sense, it
was doing a `self.sudo(self._uid).check_access_rights('read')` which
was doing nothing.

But now with `with_user`, doing a `self.with_user(self._uid).check_access_rights('read')` breaks the
flag `superuser`.
Meaning that if the code was called using `sudo` it was bypassing the
ACL tests.

closes odoo/odoo#35896

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-08-21 15:03:02 +00:00
Toufik Ben Jaa 0fe9a9ddd1 [FIX] account: adapt computed field to new ORM optimizations
- With the new ORM optimizations, the cache doesn't depend on the
  context and the key context that are really important for the
  computation of a value must be explicitly set.

  Setting `force_company` as a determinant will make sure that the
  company on the environment is taken in account.
2019-08-21 13:21:40 +00:00
Toufik Ben Jaa e974e1aec8 [FIX] tools: always retrieve a langage on formatLang
- Since commit https://github.com/odoo/odoo/commit/f5cd483216af01001f44a41f7d48f042b9f56ff9
the method `_lang_get` doesn't fallback on a language if the asked language
isn't found.

This causes issues with `formatLang` that uses the language on the
context, which is the language set on the client browser (in most cases).

Meaning, if 'en_US' is the only installed language and a customer
has set his browser to `fr_FR`, when calling `formatLang` this will
crash since no language has been found and `format` on `res.lang`
requires a singleton.

closes odoo/odoo#35633

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-08-12 12:51:29 +00:00
Toufik Ben Jaa 07e87e1e34 [FIX] lunch: default value for responsible_id is incorrect
- When creating a vendor on lunch without setting explicitly the
`responsible_id`, `default_get` should return the current user id.
Instead it returns the current user's partner id.

closes odoo/odoo#34759

Signed-off-by: Nicolas Seinlet (nse) <nse@odoo.com>
2019-07-10 14:19:17 +00:00
Toufik Ben Jaa ca8a510b56 [FIX] hr: field parent_id shadowing same field on res.partner
- On the HR module, the field `parent_id` is added on `res.users`.
The issue here, is that `res.users` inherits the fields from
`res.partner` where `parent_id` is already defined.

This causes issues when trying to read the parent `res.partner`.

Issue found by @rrahir

closes odoo/odoo#34059

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-06-12 10:42:07 +00:00
Toufik Ben Jaa 29762514ae [FIX] sale: singleton error when validating payments
- When validating a payment an "expected singleton" exception is
raised due to the fact that we are using a recordset with multiple
record instead of a recordset with a single record.

OPW-1981632

closes odoo/odoo#33767

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-05-29 16:16:18 +00:00
Toufik Ben Jaa dac369453c [FIX] lunch: on mobile crashes when grouping by field
- On mobile grouping by a field crashes.
This is due to the code assuming a function parameter
is always passed where it is actually an optional parameter.

closes odoo/odoo#33891

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-06-05 07:50:56 +00:00
Toufik Ben Jaa a7649a3d86 [FIX] sale_timesheet: performance for project with a lot of tasks
closes odoo/odoo#33766

Signed-off-by: Nicolas Seinlet (nse) <nse@odoo.com>
2019-06-03 08:19:50 +00:00
Toufik Ben Jaa 7576ae519f [FIX] base: avoid crash on empty record rule domain
- Since 12.2 when a record rule forbids you to access a record
an error message is displayed with the list of the record rules
that have forbid the access and an example of the forbidden records.

The issue here is that a specific message is displayed to warn the
user that the record rule may be a "Multi-company" record rule.

To do so, it checks if `company_id` is present in the record rules'
domain but if the domain is empty it crashes.

OPW-2004827

closes odoo/odoo#33801

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-31 14:54:28 +00:00
Toufik Ben Jaa 9530f1071d [FIX] mail: avoid crash when calling channel_info in mail.channel
- If a channel has only the current user as the partner the method `channel_info` crashes.
This can happen in the case of a partner talks to an other partner in
discuss.
Then these two partners are merged using the CRM partner merge
feature.

The channel has now the same partner in the channel twice.
The current code doesn't handle this case and crashes.

closes odoo/odoo#33274

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-05-09 11:10:12 +00:00
Toufik Ben Jaa 69cd8bc675 [FIX] survey: allow survey user to test a survey
- When tyring to test a survey as a "Survey User" you are redirected to the
  homepage.
  This is due to a faulty access rights check that only allows "Survey
  Managers" to test them.

closes odoo/odoo#33132

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-05-03 08:44:07 +00:00
Toufik Ben Jaa 153f708792 [FIX] hr_holidays: access issue on employee's manager update
- If the current user doesn't have write access to `hr.leave` or
`hr.leave.allocation` and tries to modify the manager (`parent_id`) of
a `hr.employee` record, an access right issue is raised.

This commit fixes the issue.

OPW-2000569

closes odoo/odoo#33542

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-21 15:19:26 +00:00
Toufik Ben Jaa 30e7a64cbd [FIX] hr_holidays: fix logic of a onchange on leave allocation
- When changing the `holiday_type` of a leave allocation while having an
  employee set and if this `holiday_type` has as its value `employee`
  the field `employee_id` is set to False.

  This is not the intended behavior. We want the field `employee_id`
  to be filled if the `holiday_type` is set to `employee`.

closes odoo/odoo#32886

Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
2019-04-23 15:22:16 +00:00
Toufik Ben Jaa ffc4bdc4c6 [FIX] lunch: add multicompany icon on settings
- The overdraft setting of lunch is company dependent but had no
icons specifying it on the settings view.

This commit adds the icon

closes odoo/odoo#33761

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-29 13:39:00 +00:00
Toufik Ben Jaa 86f8be1466 [FIX] hr_org_chart: multicompany managers trigger access right issues
- When displaying the organisational chart an access right error can be
triggered if the current user cannot read employees from other
companies and if one of the displayed employee's manager is in an other
company.

closes odoo/odoo#33576

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-22 13:57:29 +00:00
Toufik Ben Jaa ea92ce6018 [FIX] website_forum: access right issue on validation queue
- If you are a portal user when trying to access the validation queue
an access right error can be triggered when trying to read the post's
user name if the record rules don't let you read on this specific
user.

closes odoo/odoo#33626

Signed-off-by: Nicolas Seinlet (nse) <nse@odoo.com>
2019-05-23 15:03:17 +00:00
Toufik Ben Jaa 1569bef308 [FIX] hr: phone field on res.users is shadowed
- The added field `phone` on `res.users` shadow the field `phone`
inherited by `res.partner`.
The issue is that the field `phone` on `hr.employee` can be read only
by the employee or the HR team.

A lot of views tries to display the field `phone` expecting the one
declared in `res.partner` which should be readable by everyone.
But the one declared in `res.users` shadows it.

closes odoo/odoo#33569

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-22 12:31:41 +00:00
Toufik Ben Jaa f39a974cc2 [FIX] hr_contract: allow to close employee's contracts
- There's a constraint limiting the number of contracts an employee can
have.

This constraint take in account closed contract which cause issues.
For example if you have to sign a new contract for an employee with a
running contract, you'll have to close the current running contract.
But if this employee already has closed contracts, you won't be able
to close it since they are detected as ""running"" contracts.

closes odoo/odoo#33294

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-10 13:38:36 +00:00
Toufik Ben Jaa e178ef9812 [FIX] website_forum: right column was in the bottom
closes odoo/odoo#33388

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-05-15 10:37:48 +00:00
Toufik Ben Jaa 2a7652307e [FIX] lunch: missing products on lunch order page
- Since the performance commit @c42ccf2ca7f0a600a0dd7e3b4dd8bacd7a5c6513
the lunch products are displayed only if you have already ordered it.
- Added indexes on `lunch.order` to speed up the SQL request.

closes odoo/odoo#33336

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-14 09:57:56 +00:00
Toufik Ben Jaa 72592750a7 [FIX] payment: do not shadow error traceback
- When validating payments on the payment process polling page
errors can occurs and the tracebacks aren't logged which doesn't help
when trying to understand the issues.

With this commit we display the traceback instead of shadowing them.

closes odoo/odoo#33537

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-21 14:16:25 +00:00
Toufik Ben Jaa 3c305daded [FIX] payment: do not display postgres operational errors
- When processing payments on the payments processing page,
`psycopg2.OperationalError` can be raised.
We do not want those exceptions to be displayed to the customers,
instead we want the polling page to try to process the payments again.

This commit hides the display of psycopg2 operational errors.

- This commit also fixes the "processing your payments" message being
hidden after the first polling, no matter if the processing has succeeded or not.

closes odoo/odoo#33462

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-17 13:17:01 +00:00
Toufik Ben Jaa a3cdfdc628 [FIX] website_sale: _is_available_on_website access rights issues
- The method `_is_available_on_website` on `product.pricelist` access to
  the field `code` which is limited to the group `base.group_user`.
  This causes issues when the method is called by a non internal user.

closes odoo/odoo#32123

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-03-26 10:15:43 +00:00
Toufik Ben Jaa 4a13d5d1f5 [FIX] auth_signup: typo in invitation mail
closes odoo/odoo#32049

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-03-22 13:03:12 +00:00
Toufik Ben Jaa f0db37b277 [FIX] hr_holidays: allow to create leaves with no validation
- The creation of leaves using "no validation" are not possible
  if the `SUPERUSER` is not in the "Holidays / Team Leader" because
  the validation is made using `sudo`.

OPW-1951316

closes odoo/odoo#31952

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-03-20 09:08:53 +00:00
Toufik Ben Jaa ec327d3f86 [FIX] project: Access to attachments with CDN
- The attachments in the tasks page on the portal can be accessed by
  clicking on them.
  They are delivered by the controllers at URL `/web/content/XXXXX`.

  By default when enabling the Content Delivery Network feature on the
  website module, the content delivered by the controller
  `/web/content/` is done through the CDN which has no user account,
  thus may not have access to the attachment.

  To fix the issue, we disable the CDN feature for the attachments in
  the tasks portal page.

  OPW-194571

closes odoo/odoo#31924

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-03-18 15:33:14 +00:00
Toufik Ben Jaa 7ac7c97762 [FIX] portal: Portal User creation login check
- When creating a user from the "Grant Portal Access" wizard, the code
  checks for duplicate users.
  It does so by checking if there is a user with the same login as the
  one we want to create.

  The check is case sensitive which could lead to issues.
  For example a mistyped email (with a uppercase somewhere) could fail
  the duplicate user check.
  Since emails are not case sensitive, we want the check to be case
  insensitive too.

  OPW-1932918

closes odoo/odoo#31818

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-03-13 12:46:21 +00:00
Toufik Ben Jaa 7d4ca67680 [FIX] website_links: links fetching not working
- The fetch of recently/most clicked links was not working due to the
  fact that the widget handling this feature had not parent, thus not
  having access to ajax.rpc to make rpc calls.

closes odoo/odoo#31712

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-03-08 14:54:37 +00:00
Toufik Ben Jaa 5805c032a4 [FIX] analytic: name_search return no results
- Since the commit 5fcf891e07 an issue has
  been introduced in the `analytic.account.analytic` name_search method.

  In some cases searching through analytic accounts will return no
  results when it should.

  The issue is due to a bug in `expression.py` that doesn't correctly
  handle the fields in `auto_join`.

  The issue is described here https://github.com/odoo/odoo/issues/25175
  and will be fixed by the ORM team.

closes odoo/odoo#31628

Signed-off-by: Christophe Simonis <chs@odoo.com>
2019-03-06 12:15:35 +00:00
Toufik Ben Jaa e4c434c6ff [FIX] hr_holidays: inconsistency in leave record rules
- `hr.leave` and `hr.leave.allocation` should have the same record
  rules, otherwise leave approval behavior can be unpredictable.

  As a Holidays Team Leader:
    For example you could see the approve button on a leave but cannot
    approve it because the `_check_holidays` fails

closes odoo/odoo#31620

Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
2019-03-06 09:03:28 +00:00
Toufik Ben Jaa 2bebbdefc2 [FIX] hr_holidays: allow employee's manager to approve employee's leaves
- Allow users with the "Holidays Team Leader rights" to approve the
  leaves of the employees they manage.

closes odoo/odoo#31586

Signed-off-by: "Christophe Simonis (chs)" <chs@odoo.com>
2019-03-05 10:45:00 +00:00
Toufik Ben Jaa 397f2e6c50 [FIX] account: Use the correct journal on accounting dashboard
- When selecting "Unpaid invoices" or "Invoices to validate" on the
  accounting dashboard, the list view opened doesn't filter with the
  journal selected.

closes odoo/odoo#31397
2019-02-25 09:46:42 +00:00
Toufik Ben Jaa f907ffdeb9 [FIX] hr_payroll: allow to request leaves
- When having multiples contracts, at least one open and one closed, we may
  not be able to request a leave.

  This issue is triggered if the closed contract has no end date.
  The code checks if the leave you try create overlap over multiple contracts.
  But if a contract has no end date and is closed, the check may never
  succeed.

  So if a contract has no end date and is closed we don't take it in
  account.

closes odoo/odoo#32909

Signed-off-by: Toufik Benjaa (tbe) <tbe@odoo.com>
2019-05-02 11:34:36 +00:00
Toufik Ben Jaa c42ccf2ca7 [FIX] lunch: performance issue when retrieving lunch orders
- When retrieving lunch orders for specific users, the search could take a
  long time to be resolved.

  To fix this issue we rewrote the SQL View that retrieves the
  information for lunch orders.

closes odoo/odoo#32908

Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
2019-04-24 09:56:09 +00:00
Toufik Ben Jaa bed3b4a5cb [FIX] hr_*: access rights issues when changing employee's user
- When changing the user of a `hr.employee` record, access rights errors
  could be triggered.

  Those errors are triggered when a record (for example a leave) is
  linked to this employee and the current user has limited write
  accesses by record rules on this record.

closes odoo/odoo#31032
2019-02-12 15:47:02 +00:00
Toufik Ben Jaa 9cd8410f69 [FIX] website_sale: avoid to consider quotations as eCommerce carts
- An eCommerce cart is a quotation linked to a website.
- The feature to consider a cart as abandonned wasn't correctly checking
  if the quotation is linked to a website and flag regular quotation as
  abandonned carts.

  This causes issues since Sales may wish to send the quotation by mail,
  but the button is hidden and replaced by the button "send recovery
  mail" which send an email with a specific email template.

closes odoo/odoo#31103
2019-02-14 16:12:08 +00:00
Toufik Ben Jaa 4a4101c09c [FIX] oe: allow to add attachments on bank statements
- It was impossible to add attachments on the `account.bank.statement`
  form view due to the chatter not being displayed.

  This commit add the chatter widget to the Bank Statements form view.

closes odoo/odoo#31098
2019-02-14 09:48:18 +00:00
Toufik Ben Jaa e8b28c02a0 [FIX] website: server images for website_published records
- When a record has `website_published` field set at True the method
  `binary_content` on `ir.http` should bypass the access rules and
  always deserve the content.

  This wasn't the case due to a mistake on the code. The code is
  checking the access rules and may in some cases not return the
  content.

closes odoo/odoo#31068
2019-02-13 13:48:33 +00:00
Toufik Ben Jaa fe03f7b6b8 [FIX] crm: avoid crash when merging leads
- When merging leads that creates a partner, an error could be thrown
  due to the `res.partner` `default_get` method that reads values from the
  lead that creates the partner.
  The issue is due to the fact that the `crm.lead` record is merged (and
  unlinked), trying to read it will cause an error since the records
  doesn't exists anymore.

  This fix checks that the `crm.lead` we are trying to read from exists.

closes odoo/odoo#30895
2019-02-06 14:54:25 +00:00
Toufik Ben Jaa 7f524c393d [FIX] payment: display payment tokens for form acquirers
- The method `_get_available_payment_input` that returns the available
  payments acquirers and the payments tokens for a specific user never
  returns the payments tokens linked to a non s2s payment acquirers.

  This is wrong, the payments tokens should always appears no matter
  what are the acquirers' payment flow.

  The payment flow is used only to specify where the customer should
  input his credit cards details, either on Odoo or on the payment
  acquirer's website (or popup).

  Once a token is created, it is safe to process it since no credits cards
  details are stored on the Odoo database.

closes odoo/odoo#30258
2019-01-16 09:45:38 +00:00
Toufik Ben Jaa df39431fc0 [FIX] account_payment: validate s2s payment transaction
- If a customer pays an invoice using a credit card, the payment is
  taken in account but the invoice validation isn't processed until the
  Payment Processing cron do it.

  We want the invoice to be validated as soon as possible.
  To do so, we need to redirect the customer on the payment processing
  page that take cares of validating the payments.

  OPW-1913876

closes odoo/odoo#30217
2019-01-15 10:09:42 +00:00
Toufik Ben Jaa 99c319e03a [FIX] account: deadlock on install
- When installing an accounting l10n module, the method `try_loading_for_current_company`
  is called and could cause a deadlock.
  The deadlock is caused by the fact that if the installation is started
  via a web request the code tries to retrieve the current user's
  company by doing `request.env.user.company_id`.

  This causes issues since the installation code has its own postgresql
  cursor while calling `request.env.user.company_id` will create its own
  cursor.

  So two cursors exists for the same Odoo worker.
  The installation cursor asks for a lock on `res_users` while the
  second cursor (the request one) will try to read on `res_users` and
  wait the first lock to be dropped.

  The lock is never dropped since the python code isn't running anymore
  waiting for the `request.env.user.company_id` to be completed.
  Causing the deadlock.

  To fix the issue, we avoid the creation/usage of a cursor created by
  `requesŧ`.
  So to retrieve the current user's company, we read the user id on the
  request's session, then browse the `res.user` record with the
  installation cusror.

  Fix issue introduced by commit d40956c790

closes odoo/odoo#29927
2019-01-04 10:55:31 +00:00
Toufik Benjaa 5a7a06a71b [FIX] project: Access rights issue on /my/tasks
- Portal users do not have the rights to read on project.project.
  This causes issues on the page "/my/tasks" as it is trying to read the label_tasks and the name of the tasks' project.

  To address this issue we read those two fields using sudo

Fixes #30127
opw-1925720

closes odoo/odoo#30955
2019-02-08 13:06:41 +00:00
Toufik Ben Jaa 19b0c7e1c1 [FIX] auth_signup: invalid value on field signup_valid for non superuser
- The field `signup_valid` was computed and stored using the `superuser`
  env, which causes issue since it means the value was computed for the
  wrong environment.

  Using a compute_sudo instead of manually calling `sudo()` fixes the
  issue.

  e.g: reading signup_valid using a regular user (non superuser) will
       always return False, while doing it as the superuser will return
       the correct value.

closes odoo/odoo#30954
2019-02-08 12:52:29 +00:00
Toufik Ben Jaa 007669feac [FIX] sale: do not schedule activity when no user_id
- The `_write` override on `sale.order` create a Next Activity for the
  SO's salesperson when changing the SO `invoice_status` to upselling.

  If the SO doesn't have a salesperson this code crashes since `user_id`
  is required on Next Activities.
  To avoid this crash we create the Next Activity only if a salesperson
  is set on the SO.

  OPW-1914087
2018-12-10 11:43:12 +01:00
Toufik Ben Jaa 84b976fb7c [FIX] payment: process payments older than 10 minutes
- The payment transaction processing cron retrieves all the transactions
  that need to be processed.

  In some cases, it can causes issues when trying to process payments
  that are being process by the payment polling page after returning
  from the payment acquirer.

  To avoid this concurrency issues, the cron will only process payments
  that have been validated for at least 10 minutes.

closes odoo/odoo#29317
2018-12-06 14:09:24 +00:00
Toufik Ben Jaa b49d5388ff [FIX] mail: crash on mail resend
- When resending a failed mail the code could crash.
  The issue is caused by the fact that calling `_get_recipient_data`
  with the parameter `pids` only, returns as the partners' groups the
  value `None`.

  The codes that uses the result of this method consider the groups as
  an iterable and crash when trying to iterate on a `NoneType`.

  OPW-1916498

closes odoo/odoo#29408
2018-12-11 08:32:12 +00:00
Toufik Ben Jaa f289c9ceef [FIX] payment: set correct payment communication
- When a payment is done through a `payment.transaction` the
  communication should be the transaction's reference instead of its
  invoices reference.

closes odoo/odoo#29187
2018-11-30 12:53:37 +00:00
Toufik Ben Jaa e8b5ef5b5e [FIX] purchase: crash on portal when no product image
- Since commit https://github.com/odoo/odoo/commit/8108a60dc38432243bef4f934784b119c77cf91d the purchase order crashes if a
  `purchase.order.line` product has no image.

  This is due to the fact that we pass a boolean value (False) to the
  function `image_data_uri` on the template `purchase.portal_my_purchase_order`
  which crashes.

closes odoo/odoo#29137
2018-11-29 11:24:16 +00:00
Toufik Ben Jaa 37fa21a2af [FIX] account: avoid crash when request not bound to database
- When installing account using a request (e.g. http route auth set to `None`) not bound to a database,
  the installation fails.

  To avoid this, we check if the request we are using is bound to a
  database, if not, the fallback code is executed.
2018-12-12 15:19:25 +01:00
Toufik Ben Jaa ae6ab96629 [FIX] payment: if a payment transaction processing fail, rollback.
- Before this commit when a transaction failed, the code doesn't
  rollback and continue to process the other transaction, thus creating
  record that should be rollbacked.

closes odoo/odoo#28748
2018-11-22 11:44:36 +00:00
Toufik Ben Jaa b294fc15e3 [FIX] sale: allow duplicate SO from other company
- In some cases (record rules modified to allow access to multi company
  SO) the duplication of a quotation isn't possible if the quotation is
  set on a company than the user trying to duplicate it.

  This is due to a computed field that tries to access the order's
  company currency.

closes odoo/odoo#28945
2018-11-22 10:20:05 +00:00
Toufik Ben Jaa b083cca7ad [FIX] hr_timesheet: set allow_timesheets on task to readonly
- On `project.task` records the field `allow_timesheets` is a related
  set to `readonly=False` which triggers writes on `project.project` and
  raise access rights issue for users who can create tasks but cannot
  write on `project.project`.

  OPW-1910877

closes odoo/odoo#28943
2018-11-22 09:53:43 +00:00
Toufik Benjaa 23a7b15276 [FIX] http: avoid crash on jsonp POST+GET
- This commit fixes a crash that happens when the server receive a
  JSON-P call done in two requests (a POST followed by a GET).

  The issue is due to the fact that when the first request is done (POST
  one) the member `params` is never initialized.

  This parameter is then used in the module `auth_signup` on an override
  of the method `dispatch` thus crashing the code.

  To avoid the crash, we now initialize `params`.

closes odoo/odoo#27369
2018-11-21 10:09:10 +00:00
Toufik Ben Jaa 69c2b0a7d1 [FIX] portal: force cache clearing at access_token generation
- The value returned by the method `_portal_ensure_token` is False due
  to a cache issue.

  The value is generated written using the `sudo` environment while in
  the current user environment the cached value is `False`.
  After generating the value, the cache is not cleared, thus letting the
  method return `False`

closes odoo/odoo#28836
2018-11-20 11:49:17 +00:00
Toufik Ben Jaa 6f7262f508 [FIX] mail: do no try to send notification to inactive users
- This commit prevent to send notifications to inactive users.
- This fixes a bug where two partners have been merged and one of its
  users is archived.

  If one of the two users is inactive the code might use its `notification
  type` preferences instead of the active user's one.

closes odoo/odoo#28730
2018-11-16 11:13:56 +00:00
Toufik Ben Jaa 4dae545bf9 [FIX] mass_mailing_sale: check access on SO & invoice report
- When computing the count of quotations count and the invoiced amount
  on a mass mailing, we do not check if the current user has access to
  the models `sale.order` and `account.invoice.report`.

  This fix first check the access rights on the models, if the current
  user doesn't have read access, then we set the computed value to 0.

closes odoo/odoo#28717
2018-11-15 11:39:05 +00:00
Toufik Ben Jaa 774991946e [FIX] mail: no mail sent to followers
- If the `internal` field/column on the message subtypes (table: `mail_message_subtype`) is set to null instead of false in the
  database, the notifications to the followers are not sent by mail.

closes odoo/odoo#28699
2018-11-14 18:54:12 +00:00
Toufik Ben Jaa fe518f1fea [FIX] website_sale: performance when creating a cart
- When creating an eCommerce cart using the Public User, the code tries
  to access all the sale orders linked to it.

  Depending on the count of sale orders linked to the partner, the
  loading can take a lot of time.

  To avoid this, we only search for the sale orders of connected users
  and we only retrieve the last one.
2018-11-08 11:16:02 +01:00
Toufik Ben Jaa 079a3b602b [FIX] mail: add index on message_main_attachment_id
- When deleting attachments, the foreign key constraints on
  `message_main_attachment_id` are triggered which could take
  a lot of time to be computed.

closes odoo/odoo#28358
2018-11-02 11:49:43 +00:00
Toufik Ben Jaa 15f387fbe5 [FIX] auth_signup: invalid value on field signup_valid for non superuser
- The field `signup_valid` was computed and stored using the `superuser`
  env, which causes issue since it means the value was computed for the
  wrong environment.

  Using a compute_sudo instead of manually calling `sudo()` fixes the
  issue.

  e.g: reading signup_valid using a regular user (non superuser) will
       always return False, while doing it as the superuser will return
       the correct value.
2018-10-17 14:54:12 +02:00
Toufik Ben Jaa dbd5cb48e2 [FIX] mail: check access rights on models when fetching messages
- When fetching messages (e.g. opening discuss), we do not check if the
  model associated to a message is accessible for the current user.
  This could result to access rights error messages when trying to read the
  main attachment of the associated record.

  To avoid to triggers this errors, we first check if the current user
  has read access to the specific model, if so we try to read the
  record's main attachment.

closes odoo/odoo#29025
2018-11-26 10:42:37 +00:00
Toufik Benjaa f7d7eb06ab [FIX] account: avoid to rewrite product image when refunding invoice
- When refunding an invoice the field product_image is modified and
  tries to write on the product image field for no reason.
2018-09-26 12:15:09 +02:00
Toufik Benjaa 8d090e0835 [FIX] sale: crash when creating a transaction
- When creating a transaction, the method render_sale_button was called
  with an extra parameter.
2018-09-24 11:21:16 +02:00
Toufik Benjaa 8a1030e162 [FIX] hr_holidays: overlap constraint
- Allow to request a leave that starts exactly when another leave ends.

  OPW-1887257
2018-09-20 15:26:37 +02:00
Toufik Benjaa 6ed44181d0 [IMP] payment_*: payment acquirers error handling
This commit aims to improve the user experience when using payment acquirers. There currently are no error feedback with some acquirers, which leaves the user wondering what is going on and what is the real status of its payment.
In some cases, the user is currently being redirected to the home page even though the payment has failed. We want to make it more obvious to the user that something unexpected has happened by redirecting to an intermediate page that will provide good feedback on payments status.

Another goal of this commit is to order acquirers by sequence instead of by flow and to select the first acquirer by default. This feature was already implmented in commit fe294fd43e521bd2d339e962f43acf46c3d4cb97, some UI adaptations were needed though.

Related to task #36680
Closes #26958
2018-09-19 18:25:32 +02:00
Toufik Benjaa d30fa83114 [FIX] payment: crash when validating a payment.transaction
- If a payment.transaction is already linked to an account.payment, the
  transaction validation crashes.
2018-09-19 14:08:00 +02:00
Toufik Benjaa 968f16dd30 [FIX] payment_ogone: set payment done with 3ds in pending mode
- When receiving a 3DS payment notification from Ingenico the payment
  transaction should be set to "pending" and not in "done".

  Then a second notification is send by Ingenico to set the
  payment.transaction to "done".
  This is the reason for accepting "pending" as a valid state on the
  feedback validation.
2018-09-18 18:14:10 +02:00
Toufik Benjaa 0c8a244e68 [FIX] mass_mailing: check duplicate recipients on mass mailing
- When checking if a recipient has already received a mass mailing, the
  record model for the recipient was not checked.

  Which leads to false positives.
2018-09-13 15:48:09 +02:00
Toufik Benjaa 98536fa10a [FIX] crm: access rights issues for portal users
- After 282733cf8d a "sudo" has been lost.
  This caused issues when a portal user try to give his interest on a
  lead via the portal page.
2018-09-11 17:55:23 +02:00
Toufik Benjaa 0c67985023 [FIX] l10n_de, l10n_mx, l10n_nl: bad command sent to ORM
When we get the existing tags to append them a new id, we don't get a
list of id but a list of tuple with one id, this only append if you have
more than one accounting of these country installed, as the first time
it will return an empty list. So the command sent to the ORM, is not
built correctly.

To fix this we just append commands '4' that will be append in a list.
2018-09-11 17:54:40 +02:00
Toufik Benjaa 29cd2c33eb [FIX] payment: allow to set done a payment.transaction in pending state
- If a payment.transaction is in pending state, it was impossible to set
  it to done.
2018-09-10 10:41:37 +02:00
Toufik Benjaa d78f23df84 [FIX] payment,sale_payment: extract code to overridable methods
- We extract some code logic to methods to allow to override them.
  This is needed for the subscription module where a payment token need
  to be copied from a transaction to a subscription.
  The subscriptions is created from a sale order and before the
  payment.transaction holding the payment.token id is validated.
  Since the payment.transaction is not validated, the subscription
  module doesn't find the correct transaction.

  By extracting this code logic, we can override exactly when it should
  be.
2018-09-07 19:26:51 +02:00
Toufik Benjaa b4c72220c7 [FIX] payment: portal payment use newly generated reference
- When creating a transaction on the payment page of the portal, the
  transaction reference returned was incorrect.
  This commit return the newly created transaction's reference.
2018-09-07 10:48:35 +02:00
Toufik Benjaa e11c0a45f2 [FIX] payment: Fix reference computation to avoid duplicates
- The method to compute the reference of a payment.transaction and avoid
  duplicate was missing some edge cases (for example if there was a '-'
  in the reference).

- The creation of transactions in the route /website_payment/pay was not
  checking for duplicate payment.transaction.
2018-09-06 16:03:01 +02:00
Toufik Benjaa 541e049d96 [FIX] payment: properly set communication field on account.payment
- After 01216345e2 the field communication
  on account.payment was not properly set when created by a
  payment.transaction.
2018-09-06 15:57:27 +02:00
Toufik Benjaa ec324fdd04 [FIX] project: allow portal customers to post on task chatter 2018-09-06 15:57:27 +02:00
Toufik Benjaa 200b9719b9 [FIX] sale_payment: create invoice using transaction's company
- When creating an invoice created after a payment, we need to force the
  company to the transaction's company.
  This avoid to create move lines with different companies (Administrator's
  company because of the payment processing done by the admin and the
  sale order/transaction company).
2018-09-06 15:57:27 +02:00
Toufik Benjaa 7700bd172f [FIX] mail: Avoid using default value for track fields logging
- When a tracked field is modified, a mail.message is created.
  When create is called its tries to fill missing values with "default
values".
  It first tries to find the default values in the context, which may
occurs.
  For example, modifying a tracked field on a subtask will add a key
"default_parent_id" in the context, which is the parent_id of the project.task.
  Create will try to use "default_parent_id" for the mail.message
parent_id field, which make the SQL Request invalid.
2018-09-05 18:36:54 +02:00
Toufik Benjaa b789092ead [FIX] mail: Access right issues while accessing mail.message
- The SQL request to retrieve mail.message information to compute access
  rights was incorrect. Which triggered false access right issues.
2018-09-03 13:16:11 +02:00
Toufik Benjaa 82195c587c [FIX] mail: fetch notifications for active partners only
- When trying to fetch notifications for failed mail delivery, the code
  doesn't check if the partner is active or not.

  If the partner is archived, then it tries to access its information on
  a dict that doesn't contains them and crashes.
2018-09-03 10:08:58 +02:00
Toufik Benjaa b367625248 [FIX] sale_payment: create payment.token when needed
- Before this commit, a sale order that generate a subscription and paid
  by the form method do not create a payment.token.

  After this commit, we check if the sale order need a payment.token to
  be created, if so we set the correct transaction type.
2018-08-29 13:55:03 +02:00
Toufik Benjaa f12287c356 [FIX] website_crm_partner_assign: display partner ordered by sequence
- Fix for e2310eec60
2018-08-24 11:13:47 +02:00