scalar returns an arrayref with an item for every request,
which we then didn't unpack. better to request an array here
Change-Id: I80717c9e957ad44ad5d75db36735180123ab931c
This patch reuses existing forms by clearing them, rather than
re-instantiating them again and again.
Also, panel start time should be better due to less package
pre-loading.
Change-Id: Ia3e64fd4b4084bb5ec35a669c5840c9fc3c58f2e
Used to fetch whether pbx, faxserver, rtcengine etc is enabled.
* Fix rtcengine reseller creation:
- Refuse to create reseller if rtcengine part fails
- Use proper auto-generated rtcengine values (pass, domain)
to not fail on reseller names which are not forming valid
hostnames.
* Implement /api/admins/id to support testing
- add test
- fix creating admins with overly long login
- fix various ACL bugs handling /api/admins/
- fix creating /api/admincerts/ as r/o user
* Fix test framework
- use proper client cert when switching API user
Change-Id: I602fdd8181c0b3f23e76e3eab0df90a1ff9e986f
(cherry picked from commit 0d376bd8b59db65296090d26f2c84d704129beef)
Remove excrescent code from the pbxdevicemodels API & Panel
Add roles control per method for the API
Use form field "required" attribute for the API uploads
Fix getting old resource for the PATCH and PUT methods
Change-Id: Ia0515b3d071d45435db7c9138ea9de9447775143
* Fix syntax errors and internal errors
* Pass set ids back in mappings
* Allow updates of mappings both via name and ids
Change-Id: I26fdfe96d67563c11040a6c1e87f13a835bb793f
* Implement r/o access to /api/customers for subadmin
* Implement r/o access to /api/subscribers for subs
* Implement create access to /api/subscribers for subadmins
* Implement /api/numbers to re-assign a number
* Implement CF endpoints access for subs
* Implement new test framework to simplify testing
* Fix updating number by using Utils to make sure allowed_clis etc
are handled correctly
* Install missing docker dependencies for new test framework
* Add edr handling on /api/numbers/xx update
Change-Id: I678da16cfb1361b2809780cba8c204ac90bb1736
+ added conversations to api_root.t
+ disabled xmpp conversations source, since "soap"
MySQL user is not yet granted to prosody.* tables
Change-Id: I3d6a9418e7c2b77503f8472fe639e971ad7be3fa
* billing is split into 2 parts:
- init_prepaid_billing (reserves billing/creates session)
- perform_prepaid_billing (commits or cancels the session)
* when sms fails to be sent the billing session is canceled
(was committed before, regardless)
* NGCP::Panel::Entities::post
- do not do $self->return_representation_post() if
api_error_message is present, therefore, the actual
error is returned
* sms_journal item is now created also in case of an error
* improved errors indication
Change-Id: I454b8c6a1c04d743ee82e03f8621c7cc4c7c4f98
When creating or updating a reseller, catch non-numeric contract_id
and return 422, otherwise 500 would be returned.
Change-Id: I0e22f6f514fef80f5265eca28d7ec97811c1172f
* create reseller with enable_rtc now succeds but shows an
error if the "rtc" related part cannot be created
* update reseller with enable_rtc now succeds but shows an
error if the "rtc" related part cannot be update
* terminate reseller with enable_rtc now fails with an
error if the "rtc" related part cannot be deleted
Change-Id: I59a8b531d59bc3d4ca9201a2a25c783cb149b759
added checking and persisting of timezone for
+ panel UI subscriber create
+ POST /api/subscribers
+ PUT /api/subscriber/x
+ PATCH /api/subscriber/x
+ central is_valid_timezone_name method
Change-Id: I59865f5af33a71e5b5032dc35ba9c41eca74b04c
* new "Manager Secretary" call forwarding type
* new /api/managersecretary
- controls "Manager Secretary" call forwarding auto set
* support Prefer='internal' to avoid all form validations,
and creations as well as no hal is created but json body
is returned instead. only usable on port 1442 for
internal ngcp api clients.
* Role/API valid_uuid() check
Change-Id: I826138d8cdbce737c09c3b98bc7bdd905d09e81c
* enables a mode for cf source sets, where all numbers are
considered as whitelisted or blacklisted (similar to the
NCOS levels mode)
Change-Id: I84e76e5ba717050c48bcaf5c1fd5f67ed5582cab
When requested with an "Accept: application/json" header, return
the response in json format instead of xhtml.
Change-Id: Iba4135d8013fd200af426f2eb3d67b97282c034b
The error happens while preparing ngcp-panel translations
Creating lib/NGCP/Panel/I18N/messages.pot
Merging lib/NGCP/Panel/I18N/ru.po
lib/NGCP/Panel/I18N/ru.po:13386: duplicate message definition...
lib/NGCP/Panel/I18N/ru.po:13359: ...this is the location of the first
definition
msgmerge: found 1 fatal error
Change-Id: I704df2e5751e6189a34f489b0fe0c78413457ff9
Under Subscribers > Call Forward > Manage Timesets, the label for the
hour period has a typo. Should be "through" instead of "trough". Fix.
Change-Id: Iad07cb3c8ee69cd147e7629f1e551cd69da709ec
- read key from specific config file
- key is hex encoded
+ fix: add libcryptx-perl as dependency (actually dep of libcrypt-jwt-perl)
+ fix: typo in perl (comma instead of assignment)
+ fix: chomp any preceeding newlines from jwt_secret
Change-Id: I6c6bd4dc0d7fa7fa43868afb13b4d8d838d90564
Try to match up the peer_auth_realm with peer's ip or host, and if
found, check for outbound_socket of this peer and use it as contact
if found.
Change-Id: I428c408d6f3b0796fab2306cc129478806ac9bd3
* add missing Form/Faxserver/T38 form
* add missing Form/Faxserver/ECM form
* add T38, ECM forms for the API
Change-Id: Idb1d28f8bbe33a7383a88c074cc4a009f4c37ff4
as read-only access to subscriberadmin in order to view neccessary
details for creation of pbxdevices.
Change-Id: I369c3a1936e46a4144652f0a65899fc4defcb501
* enables a filter for calls that were initated or received
by the specified subscriber/custoemr
* set direction for internal subscriber calls to "out"
Change-Id: I2f3b543b57352f92dc5a67bc82779cf371b6f23c
from perl core documentation:
> $& returns the entire matched string.
> (At one point $0 did also, but now it returns the name of the program.)
Change-Id: Ia884ac758c91da7e365f609c2d5f0dbe784e763b
* Add dispatcher reload helper in peer utils
* Handle probe flag for peer hosts
* Reload dispatcher on proxies on peer host change
* Reworked kamailio cache reload to perform it after commit,
otherwise kamailio won't see the changes yet!
Change-Id: I9a53854b4a42c97a2889c63f8bf2c878c6f48a2d
- move the "group" field from Rule.pm/InboundRule.pm into
RuleEditAdmin.pm/InboundRuleEditAdmin.pm respectively
- the "group" field is used only by the GUI rule edit forms
Change-Id: I1c1ebf883848e90c9412784c8d8610fcbebc4331
- a new feature, "Peering Overview" under the "Tools" menu that
shows a consolidated table of peering rules, peering groups and
peering hosts with a quick links to the related edit dialogs
- added a group selection for "peering rule edit" dialogs that
enables a possibility to move a peering rule into another
peering group
- changed the "back" uri in the "peering host" and "peering rule"
dialogs to return back to the previous uri instead of forcing it
to /peering, that is needed to call those dialogs from
/peeringoverview and then get back to the original uri upon
completion
- dynamic columns support
- separate outbound and inbound peering rules respresentation
- export to "CSV", also with the "Search" filter support
- add dynamic column join detection excluding excessive joins
if no related columns are selected
Change-Id: I71b4c62c4583989baacfc166f08e965c4464e4b2
- mask (anonymise) the caller if source_clir is enabled and the auth
role is non-admin, and the call is not inside the same customer
- if source_cli is "anonymous" try to use source_user@source_domain
as the caller and in case if the "domain part" is used check and
mask it if the auth user is non-admin
Change-Id: I835679ed7a2a0c070542fbd9a625fed7ffe2d71f
Only use request param "q" for filtering firmware versions. Otherwise
devices which attach a specific verstion to the download url will not
find the latest/next version.
Change-Id: Ibd92de4c73ad20cc5a0e06f185171fff370ceaf6
the factory Catalyst::ActionRole::HTTPMethods action role
is set for any action, and in race with our own
NGCP::Panel::Role::HTTPMethods. the testcase could have
been misleading ever since, as it uses DELETE /api/customers,
which was present when implemting the method override initially,
but dropped on the road to 4.5.
the issue is resolved by overriding
Catalyst::Controller::gather_default_action_roles.
until the class hierachy refactoring is completed, only
consistent way is to add the override to each api controller.
the action_roles config attribute can therefore be
removed.
using Plack::Middleware::MethodOverride as an alternative from
upstream has the drawback to work only with POST. but a required
usecase is to also support translation DELETE requests to PATCH.
Change-Id: I204ba59869a8327bdd5db8a867fbbb061d1c9e7c
This avoids having to look for the customer with the last customer
id and click Details there, rather than now having a direct link.
Change-Id: Ie7688607cf29ed7eb6c4e52bd42244730be783de
It's fine to remove read-only fields only if $run==1, but in any
case remove unknown fields.
Also the force-array change broke additional tests, fixed them.
Change-Id: I48ffcf201bd1eedb8fb317f1ca248af9e4a01e60
- including the desired sorting by call leg depth
- "... order by length(call_id) asc, start_time asc;"
seems to cover the call flow sceanrios.
Change-Id: I294c27985627bea6a9acdaff8aeedc84e365c34e
Also take into account latin1 characters when calculating number
of parts for billing, because SMS uses some special derivation of
latin-1 and can therefore encode certain chars without the use of
UTF-8.
Change-Id: Ia7f02a3cf96040e5ad23da9037d05422beecea74
OR-part must go into parantheses, otherwise $c->user is called
on an undefined $c if $c is not passed in.
Change-Id: Iebc07eb19ae306c61fbcfd39f35325b3c69d2bc4
Admins can use this to generate a new ssl client certificate package
in ZIP format containing a PEM and a P12 cert, the same way you can
do it on the admin panel.
Admins can generate that for themselves in all cases, or for others
if they are master or superuser. If role is reseller, then masters
can only do this within their own reseller.
Change-Id: I32d5c1b5af5324d1c80b34bacecd7f2665cd91c7
Took the Utils/SOAP.pm from ossbss Backend.pm and adapted
for ngcp-panel usage to properly type the response elements
in accordance to the WSDL.
Change-Id: I8d8011b5ff256c65469a006d4e0c76467a2325a5
For the migration of the admin pwd, the logic is as follows:
1. If the admin has a bcrypt password already, use this
2. If not, perform auth via md5, then clear the md5 column
and write a salted bcrypt hash instead.
For dropping the ssl client cert, we simply not store anymore
the client certificate in the DB. As a result, you cannot
download the certs (pem, p12) after creation anymore, so
we immediately download the two certs in a zip file after
creation.
A cost of 13 takes 500ms on an i7-5500U CPU @ 2.40GHz, which
seems to be a reasonable value.
Change-Id: I1ce21321c58d8c57d7ddce1541995f64821b0053
Except for greek characters, which are available in the
GSM 03.38 encoding but not in latin-1, all other latin-1
characters can be sent with coding 0 (7bit).
We neither support the € sign available in the GSM extended
encoding, but for unknown reasons the rest of the extended
char sets (which are part of ascii anways) do work.
So, no € and no greek chars inside coding=0.
Change-Id: Ia87e337772e126b6a0a95b53acba0a369b71e660
ngcp-panel fails to start up on Debian/stretch based systems:
| ngcp-panel[1471]: Starting NGCP-Panel Webapp:Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/(?:{\s*)?<!--{ <-- HERE |}-->(?:\s*})?/ at /usr/share/perl5/NGCP/Panel/Utils/InvoiceTemplate.pm line 105, <DATA> line 1.
| ngcp-panel[1471]: Compilation failed in require at /usr/share/perl5/NGCP/Panel/Controller/Pbx.pm line 9, <DATA> line 1.
| ngcp-panel[1471]: BEGIN failed--compilation aborted at /usr/share/perl5/NGCP/Panel/Controller/Pbx.pm line 9, <DATA> line 1.
| ngcp-panel[1471]: Compilation failed in require at /usr/share/perl5/Catalyst/Utils.pm line 309, <DATA> line 1.
| ngcp-panel[1471]: Compilation failed in require at /usr/share/perl5/Module/Runtime.pm line 317, <DATA> line 1. at /usr/share/ngcp-panel/ngcp_panel_fastcgi.pl line 4.
| ngcp-panel[1471]: error ... failed!
| ngcp-panel[1471]: failed!
Minimal example:
% perl -E 'm/foo{x}bar/'
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/foo{ <-- HERE x}bar/ at -e line 1.
% perl -E 'm/foo\{x\}bar/'
%
This is new behavior as of Perl 5.22 (and we've Perl v5.24.1 on
Debian/stretch), quoting
http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#New_Warnings:
| Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%s/
|
| (D deprecated, regexp) You used a literal "{" character in a regular expression pattern.
| You should change to use "\{" instead, because a future version of Perl (tentatively v5.26)
| will consider this to be a syntax error. If the pattern delimiters are also braces, any
| matching right brace ("}") should also be escaped to avoid confusing the parser, for example,
|
| qr{abc\{def\}ghi}
Change-Id: I6192b723bb7a0f95b64b6b01ba75988021dc22a6
In GSM encoding for ascii-only messages, we can have 160 chars in
a single message, or 153 chars each for multi-part messages.
In UTF8, it's 70 and 67, respectively.
Change-Id: I50d95f9d0335b42457238234a4fd552401c8fb26