Commit Graph

3362 Commits

Author SHA1 Message Date
Leo Hemsted
bd54dbb40c remove unnecessary invocations of has_permissions(..., any_=True)
when added to a service, all users are given the view_activity
permission. So, if that's included in the list, we don't need `any_`,
and we don't need any of the other permissions.
2018-03-06 13:08:06 +00:00
Leo Hemsted
7ddad7c99e dont use has_permissions to check for platform admins
platform_admin is a separate concept to permissions, so by removing the
checks for it from the current_user.has_permissions function, we can
simplify things greatly. We already record on the user whether they're
a platform admin anyway.
2018-03-06 13:08:06 +00:00
Chris Hill-Scott
4b69e1003e Merge pull request #1923 from alphagov/remove-dvla
Remove anything to do with DVLA format letters
2018-03-06 13:00:35 +00:00
kentsanggds
acf7b331ad Merge pull request #1918 from alphagov/letter_preview_use_api_not_template_preview
Letter preview use api not template preview
2018-03-05 16:21:12 +00:00
Rebecca Law
5c26d7a061 Merge pull request #1922 from alphagov/update-free-allowance-for-org-type
Update the free allowance when the organisation type is changed
2018-03-02 15:37:13 +00:00
Chris Hill-Scott
1391f12239 Remove anything to do with DVLA format letters 2018-03-02 14:30:45 +00:00
Chris Hill-Scott
1cfcb42606 Merge pull request #1921 from alphagov/duplicate-cols-error
Catch duplicate recipient columns in spreadsheets
2018-03-02 14:25:34 +00:00
Chris Hill-Scott
a4424e999f Catch duplicate recipient columns in spreadsheets
If someone has duplicate recipient columns in their file we don’t know
which one to use. This commit adds an error message which should help
them fix the duplication.

This commit doesn’t go to the extra effort to actually show the
correct values for duplication in the preview. Don’t think it’s worth
the effort/complexity for how infrequently we’ve seen this error.

Depends on:
- [ ] https://github.com/alphagov/notifications-utils/pull/376
2018-03-02 13:18:04 +00:00
Alexey Bezhan
982ea8a7fa Merge pull request #1851 from alphagov/direct-api-requests-to-paas
Add route secret key header to the API requests
2018-03-02 13:17:57 +00:00
Chris Hill-Scott
ea94d466b6 Merge pull request #1911 from alphagov/fix-date-exception
Catch exceptions caused by ambiguous Excel files
2018-03-02 12:46:26 +00:00
Chris Hill-Scott
69aa4d0025 Merge pull request #1877 from alphagov/job-csv-upgrade
Add original file data to job downloads
2018-03-02 12:46:20 +00:00
Rebecca Law
fa0196bc88 Update the free allowance when the organisation type is changed.
The free allowance affect the number of free text messages a services get per yer.
This allowance is being set properly when an organisation is created by not updated.
This PR updates the free allowance when the organisation type is updated.
The free allowance can also be changed if service has an exceptional free allowance.
2018-03-02 10:48:59 +00:00
Ken Tsang
ba6a0e6466 Fix sorting of imports 2018-03-01 23:50:55 +00:00
Ken Tsang
ff457b8407 Refactor to handle API errors for preview 2018-03-01 23:50:55 +00:00
Ken Tsang
b34b0e2870 WIP refactor letter preview function 2018-03-01 15:24:26 +00:00
Ken Tsang
42622d86e1 Remove redundant code from notifications.html 2018-03-01 15:24:26 +00:00
Ken Tsang
c6285ed68b Improve preview_error.png image 2018-03-01 15:24:26 +00:00
Richard Chapman
1f69d882c2 Added some error handling if API returns an API error.
Caught the error and displayed an error PNG so it is obvious something
failed. Currently it displayed a thumbnail of a png over the top of the
loading page, and therefore it wasn't obvious of the state.
2018-03-01 15:24:26 +00:00
Richard Chapman
c52657146a Removed unneeded parameters after update to api.
Updated the tests to take the removal into account.

Tidied up unused imports
2018-03-01 15:23:16 +00:00
Ken Tsang
6279169b18 WIP refactor preview pdf 2018-03-01 15:21:50 +00:00
Richard Chapman
2b10060e49 Fixed code style changes which were making the tests fail. 2018-03-01 15:21:50 +00:00
Richard Chapman
c4f0b4d35d Moved the notifications code to go to admin to get the the template
preview document rather than go to template preview.

This will remove the logic from admin and place it in api so it is
easier to expand on later when there are precompiled PDFs
2018-03-01 15:21:50 +00:00
Katie Smith
68fc6b5cb4 Merge pull request #1914 from alphagov/reject-sms-senders-starting-with-00
Update SMS sender validation to reject senders starting with 00
2018-03-01 13:56:23 +00:00
Chris Hill-Scott
91a7858c45 Merge pull request #1910 from alphagov/env-sh-fix
hardcode some development values
2018-03-01 11:21:00 +00:00
Chris Hill-Scott
75976f3b59 Merge pull request #1915 from alphagov/no-priority-example
Stop creating tour text messages as priority
2018-03-01 09:56:08 +00:00
Chris Hill-Scott
6d29587d3a Merge pull request #1913 from thomchambers/patch-3
Update Features page with new content
2018-03-01 09:56:02 +00:00
Chris Hill-Scott
76da1ab28d Stop creating tour text messages as priority
Since we send all one off messages as priority now[1], we don’t need to
explicitly mark this template as being priority.

This stops the (potential) problem of people skipping the tour, still
having this template and then modifying it to send other messages,
potentially in high volumes from CSV files or the API. I don’t think
this is a real problem now, but worth cleaning this up.

Currently:
- 827 priority templates in the database
- 195 of which are not deleted
- 18 of which are not called ‘Example text message template’
- 3 of which look like genuine use cases, not from services that we run

[1]: https://github.com/alphagov/notifications-api/pull/1722
2018-02-28 17:00:36 +00:00
thomchambers
aadc73645e Update Features page with new content
Edited some things in here based on user support tickets and new features we've added recently.
2018-02-28 16:11:04 +00:00
Chris Hill-Scott
e899e2e826 Make it clearer what you sign in using with
Avoid confusion between and email you’re sent and an email address that is your username.
2018-02-28 16:05:16 +00:00
thomchambers
e1b77e3b13 Update Security page content
Adding some new content based on feedback from user research.
2018-02-28 15:33:47 +00:00
Chris Hill-Scott
aa7287bf64 Catch exceptions caused by ambiguous Excel files
Excel stores dates as floating point numbers, counting the days (or
fraction thereof) since 1900 (except when it counts from 1904).

However it also, incorrectly, recognises 1900 as a leap year. This means
that it’s ambiguous whether day 59 is February 28th, or February 27th,
depending if you’re counting up or down. In fact any number less than 60
is, therefore, ambiguous.

This shouldn’t really matter since no-one is going to be using dates in
the year 1900 in Notify messages. _Except_ when Excel misidentifies a
cell as containing a date. For example, if you have the number `9`
inside a cell, it means _house number 9_ if the next cell contains
_example_ street. but Excel is all like ‘oh they must want January 9th
1900!’ No. Bad Excel.

There’s not much we can do about this, but we can at least give people
an error message with the workaround, which is what this commit does.

Most of this commit message is paraphrased from:
http://xlrd.readthedocs.io/en/latest/dates.html
2018-02-28 15:09:55 +00:00
Katie Smith
11a6c8cfb5 Update SMS sender validation to reject senders starting with 00
Having SMS senders that start with 00 can cause issues with Firetext due
to Firetext's validation rules, so we shouldn't allow SMS senders to start
with 00.

Firetext treats a double 00 at the start of the senderID as an international
prefix, so removes them. A sender of 00447876574016 would become 447876574016.

Under Firetext's validation rules, an SMS sender of five 0s (00000) would
become  4400. This is because the first 00 are removed (as the international
prefix). The third 0 is seen as the start of a phone number, and becomes 44,
leaving the final 00 = 4400.
2018-02-28 13:40:20 +00:00
Alexey Bezhan
acfe8092fc Add route secret key header to the API requests
Currently requests to the API made from the admin app are going from
PaaS admin app to the nginx router ELB, which then routes them back
to the api app on PaaS.

This makes sense for external requests, but for requests made from
the admin app we could skip nginx and go directly to the api PaaS
host, which should reduce load on the nginx instances and
potentially reduce latency of the api requests.

API apps on PaaS are checking the X-Custom-Forwarder header (which
is set by nginx on proxy_pass requests) to only allow requests going
through the proxy.

This adds the custom header to the API client requests, so that they
can pass that header check without going through nginx.
2018-02-28 11:28:46 +00:00
Chris Hill-Scott
032ce6960b Refactor to not repeat loop and variables
This commit just cleans up the code a bit to:
- have less duplication
- do less assignment of single-use variables
2018-02-28 10:51:13 +00:00
Chris Hill-Scott
0934843815 Add original file data to job downloads
When downloading a report of a which messages from a job have been
delivered and which have failed we currently only include the Notify
data. This makes it hard to reconcile or do analysis on these reports,
because often the thing that people want to reconcile on is in the data
they’ve uploaded (eg a reference number).

Here’s an example of a user talking about this problem:

> It would also be helpful if the format of the delivery and failure
> reports could include the fields from the recipient's file. While I
> can, of course,  cross-reference one report with the other it would be
> easier if I did not have to. We send emails to individuals within
> organisations and it is not always easy to establish the organisation
> from a recipient's email address. This is particularly important when
> emails fail to be delivered as we need to contact the organisation to
> establish a new contact.

– ticket 677

We’ve also seen it when doing research with a local council.

This commit takes the original file, the data from the API, and munges
them together.
2018-02-28 10:51:13 +00:00
Chris Hill-Scott
f3a0c505bd Enforce order and style of imports
Done using isort[1], with the following command:
```
isort -rc ./app ./tests
```

Adds linting to the `run_tests.sh` script to stop badly-sorted imports
getting re-introduced.

Chosen style is ‘Vertical Hanging Indent’ with trailing commas, because
I think it gives the cleanest diffs, eg:
```
from third_party import (
    lib1,
    lib2,
    lib3,
    lib4,
)
```

1. https://pypi.python.org/pypi/isort
2018-02-27 16:35:13 +00:00
Leo Hemsted
11a4a08ccb hardcode some development values
this'll ensure that you won't get your dev secret keys out of sync
between api and admin
2018-02-27 15:55:20 +00:00
Rebecca Law
d638b446f5 Merge branch 'master' into becca-invite-users 2018-02-27 10:13:40 +00:00
Rebecca Law
41309721bd - Remove organisation setter for the user model.
- Revert the change to the log level for admin.
2018-02-26 22:18:46 +00:00
Rebecca Law
298eb77b54 Refactor the check token endpoint to use the newly merged api endpoints. 2018-02-26 11:50:40 +00:00
Chris Hill-Scott
c09b9d1f85 Merge pull request #1904 from alphagov/merge-all-the-things
Merge all the things
2018-02-26 10:03:11 +00:00
Chris Hill-Scott
2435a29672 Merge pull request #1838 from alphagov/beta-banned
Remove beta badge from header
2018-02-26 10:02:53 +00:00
Chris Hill-Scott
c16306a84e Explain what ‘beta’ means for Notify users 2018-02-26 09:35:59 +00:00
Chris Hill-Scott
9ca6bd0f24 Remove central orgs that haven’t signed MOU 2018-02-26 08:53:48 +00:00
Chris Hill-Scott
9cc6cc3da9 Mark all councils who haven’t signed the agreement
We only sign agreements for a whole council. Therefore we know that if
a council isn’t one of the ones who has signed an agreement, no part of
that council has signed the agreement, therefore it’s a `false` not a
`null`.
2018-02-26 08:53:48 +00:00
Chris Hill-Scott
c7d2155eeb Remove parish councils
There are a lot of them, and they’re probably too small to ever be using
Notify. They’re just bulking out the data unneccessarily.
2018-02-26 08:53:48 +00:00
Chris Hill-Scott
b2dd5cd8ae Talk about crown/non-crown not local/central
The thing that matters for which agreement an organisation has to sign
is whether or not that organisation is crown or non-crown.

There is only a partial overlap between crown/non-crown and
local/central. We can’t infer one fro the other. So this commit makes it
explicit by marking all local government organisations as non-crown,
which is something we can know for sure.

We don’t, for example, know the inverse, that all parts of all central
government organisations are crown bodies (but we can mark some of them
as being so later on).
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
5404107842 Split email list out again
The list of email domains is a different list from the list of all
government domains. And because the list of all government domains is
really long now, it could be unnecessarily slow to search through when
(a lot of the time) all we care about is whether the email address ends
with `.gov.uk`.
2018-02-26 08:53:47 +00:00
Chris Hill-Scott
8b739ddc50 Make whitespace consistent 2018-02-26 08:53:47 +00:00
Chris Hill-Scott
9e8d69da7d Get rid of the regex
Regexes are hard to read, and this one is probably quite slow because
the string formatting means it can never be precompiled.
2018-02-26 08:53:47 +00:00