This is an automated email from the ASF dual-hosted git repository.

shamrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 85c73df  Remove user_role and api_capability tables, and the 
associated endpoints (#6251)
85c73df is described below

commit 85c73dfa3182d3fda680bffff8466430a7ac9ac2
Author: Srijeet Chatterjee <[email protected]>
AuthorDate: Thu Oct 7 07:07:36 2021 -0600

    Remove user_role and api_capability tables, and the associated endpoints 
(#6251)
    
    * Remove user_role and api_capability tables, and the associated endpoints
    
    * Remove user_role and api_capability tables, and the associated endpoints
    
    * format migrations
    
    * remove api_capability from seeds.sql
    
    * don't remove routes and code from v2 and v3
    
    * formatting changes
    
    * formatting changes
    
    * code review fixes
---
 CHANGELOG.md                                       |   2 +
 docs/source/api/v2/api_capabilities.rst            |   2 +
 docs/source/api/v3/api_capabilities.rst            |   2 +
 docs/source/api/v4/api_capabilities.rst            | 104 ---------------------
 .../2021100114200000_remove_user_role.down.sql     |  36 +++++++
 .../2021100114200000_remove_user_role.up.sql       |  21 +++++
 traffic_ops/testing/api/v4/api_capability_test.go  |  85 -----------------
 traffic_ops/testing/api/v4/todb_test.go            |   6 --
 traffic_ops/traffic_ops_golang/routing/routes.go   |   3 -
 traffic_ops/v4-client/api_capability.go            |  31 ------
 10 files changed, 63 insertions(+), 229 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 98a9939..6eda328 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,8 +20,10 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 - [#6179](https://github.com/apache/trafficcontrol/issues/6179) Updated the 
Traffic Ops rpm to include the `ToDnssecRefresh` binary and make the 
`trafops_dnssec_refresh` cron job use it
 
 ### Deprecated
+- Deprecated the endpoints and docs associated with `api_capability`.
 
 ### Removed
+- Removed the `user_role` table.
 
 ## [6.0.0] - 2021-08-30
 ### Added
diff --git a/docs/source/api/v2/api_capabilities.rst 
b/docs/source/api/v2/api_capabilities.rst
index 337de97..02835d8 100644
--- a/docs/source/api/v2/api_capabilities.rst
+++ b/docs/source/api/v2/api_capabilities.rst
@@ -18,6 +18,8 @@
 ********************
 ``api_capabilities``
 ********************
+.. deprecated:: ATCv7.0
+
 Deals with the capabilities that may be associated with API endpoints and 
methods. These capabilities are assigned to :term:`Roles`, of which a user may 
have one or more. Capabilities support "wildcarding" or "globbing" using 
asterisks to group multiple routes into a single capability
 
 ``GET``
diff --git a/docs/source/api/v3/api_capabilities.rst 
b/docs/source/api/v3/api_capabilities.rst
index d234208..d135730 100644
--- a/docs/source/api/v3/api_capabilities.rst
+++ b/docs/source/api/v3/api_capabilities.rst
@@ -18,6 +18,8 @@
 ********************
 ``api_capabilities``
 ********************
+.. deprecated:: ATCv7.0
+
 Deals with the capabilities that may be associated with API endpoints and 
methods. These capabilities are assigned to :term:`Roles`, of which a user may 
have one or more. Capabilities support "wildcarding" or "globbing" using 
asterisks to group multiple routes into a single capability
 
 ``GET``
diff --git a/docs/source/api/v4/api_capabilities.rst 
b/docs/source/api/v4/api_capabilities.rst
deleted file mode 100644
index 3ea8ccf..0000000
--- a/docs/source/api/v4/api_capabilities.rst
+++ /dev/null
@@ -1,104 +0,0 @@
-..
-..
-.. Licensed under the Apache License, Version 2.0 (the "License");
-.. you may not use this file except in compliance with the License.
-.. You may obtain a copy of the License at
-..
-..     http://www.apache.org/licenses/LICENSE-2.0
-..
-.. Unless required by applicable law or agreed to in writing, software
-.. distributed under the License is distributed on an "AS IS" BASIS,
-.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-.. See the License for the specific language governing permissions and
-.. limitations under the License.
-..
-
-.. _to-api-api_capabilities:
-
-********************
-``api_capabilities``
-********************
-Deals with the capabilities that may be associated with API endpoints and 
methods. These capabilities are assigned to :term:`Roles`, of which a user may 
have one or more. Capabilities support "wildcarding" or "globbing" using 
asterisks to group multiple routes into a single capability
-
-``GET``
-=======
-Get all API-capability mappings.
-
-:Auth. Required: Yes
-:Roles Required: None
-:Response Type:  Array
-
-Request Structure
------------------
-.. table:: Request Query Parameters
-
-       
+----------------+----------+--------+------------------------------------+
-       |    Name        | Required | Type   |         Description              
  |
-       
+================+==========+========+====================================+
-       |   capability   |   no     | string | Capability name                  
  |
-       
+----------------+----------+--------+------------------------------------+
-
-.. code-block:: http
-       :caption: Request Example
-
-       GET /api/4.0/api_capabilities?capability=types-write HTTP/1.1
-       Host: trafficops.infra.ciab.test
-       User-Agent: curl/7.47.0
-       Accept: */*
-       Cookie: mojolicious=...
-
-Response Structure
-------------------
-:capability:  Capability name
-:httpMethod:  An HTTP request method, practically one of:
-
-       - ``GET``
-       - ``POST``
-       - ``PUT``
-       - ``PATCH``
-       - ``DELETE``
-
-:httpRoute:   The request route for which this capability applies - relative 
to the Traffic Ops server's URL
-:id:          An integer which uniquely identifies this capability
-:lastUpdated: The time at which this capability was last updated, in 
:ref:`non-rfc-datetime`
-
-.. code-block:: http
-       :caption: Response Example
-
-       HTTP/1.1 200 OK
-       Access-Control-Allow-Credentials: true
-       Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, 
Accept
-       Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
-       Access-Control-Allow-Origin: *
-       Cache-Control: no-cache, no-store, max-age=0, must-revalidate
-       Content-Type: application/json
-       Date: Thu, 01 Nov 2018 14:45:24 GMT
-       X-Server-Name: traffic_ops_golang/
-       Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 
GMT; Max-Age=3600; HttpOnly
-       Vary: Accept-Encoding
-       Whole-Content-Sha512: 
wptErtIop/AfTTQ+1MZdA2YpPXEOuLFfrPQvvaHqO/uX5fRruOVYW+7p8JTrtH1xg1WN+x6FnjQnSHuWwcpyJg==
-       Content-Length: 393
-
-       { "response": [
-               {
-                       "httpMethod": "POST",
-                       "lastUpdated": "2018-11-01 14:10:22.794114+00",
-                       "httpRoute": "types",
-                       "id": 261,
-                       "capability": "types-write"
-               },
-               {
-                       "httpMethod": "PUT",
-                       "lastUpdated": "2018-11-01 14:10:22.795917+00",
-                       "httpRoute": "types/*",
-                       "id": 262,
-                       "capability": "types-write"
-               },
-               {
-                       "httpMethod": "DELETE",
-                       "lastUpdated": "2018-11-01 14:10:22.799748+00",
-                       "httpRoute": "types/*",
-                       "id": 263,
-                       "capability": "types-write"
-               }
-       ]}
diff --git 
a/traffic_ops/app/db/migrations/2021100114200000_remove_user_role.down.sql 
b/traffic_ops/app/db/migrations/2021100114200000_remove_user_role.down.sql
new file mode 100644
index 0000000..a544787
--- /dev/null
+++ b/traffic_ops/app/db/migrations/2021100114200000_remove_user_role.down.sql
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership.  The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations 
under
+ * the License.
+ */
+
+CREATE TABLE IF NOT EXISTS user_role (
+user_id bigint NOT NULL,
+role_id bigint NOT NULL,
+last_updated timestamp with time zone NOT NULL DEFAULT now()
+);
+
+ALTER TABLE user_role OWNER TO traffic_ops;
+
+CREATE OR REPLACE FUNCTION create_constraint_if_not_exists (c_name text, 
t_name text, constraint_string text)
+RETURNS void AS
+$$
+BEGIN
+    IF NOT EXISTS (SELECT FROM information_schema.table_constraints WHERE 
constraint_name = c_name AND table_name = t_name) then execute 
constraint_string;
+END IF;
+END;
+$$ LANGUAGE PLPGSQL;
+
+SELECT create_constraint_if_not_exists('fk_user_id', 'user_role', 'ALTER TABLE 
ONLY user_role ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES 
tm_user (id) ON DELETE CASCADE;');
+SELECT create_constraint_if_not_exists('fk_role_id', 'user_role', 'ALTER TABLE 
ONLY user_role ADD CONSTRAINT fk_role_id FOREIGN KEY (role_id) REFERENCES role 
(id) ON DELETE RESTRICT;');
diff --git 
a/traffic_ops/app/db/migrations/2021100114200000_remove_user_role.up.sql 
b/traffic_ops/app/db/migrations/2021100114200000_remove_user_role.up.sql
new file mode 100644
index 0000000..660eb47
--- /dev/null
+++ b/traffic_ops/app/db/migrations/2021100114200000_remove_user_role.up.sql
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership.  The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations 
under
+ * the License.
+ */
+
+ALTER TABLE user_role DROP CONSTRAINT fk_user_id;
+ALTER TABLE user_role DROP CONSTRAINT fk_role_id;
+
+DROP TABLE IF EXISTS user_role;
diff --git a/traffic_ops/testing/api/v4/api_capability_test.go 
b/traffic_ops/testing/api/v4/api_capability_test.go
deleted file mode 100644
index f8a29be..0000000
--- a/traffic_ops/testing/api/v4/api_capability_test.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package v4
-
-/*
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-import (
-       "net/url"
-       "testing"
-
-       client "github.com/apache/trafficcontrol/traffic_ops/v4-client"
-)
-
-func TestAPICapabilities(t *testing.T) {
-       testCases := []struct {
-               description string
-               capability  string
-               order       string
-               first       string
-               hasRecords  bool
-       }{
-               {
-                       description: "Successfully get all asns-write API 
Capabilities",
-                       capability:  "asns-write",
-                       hasRecords:  true,
-               },
-               {
-                       description: "Successfully get all asns-read API 
Capabilities",
-                       capability:  "asns-read",
-                       hasRecords:  true,
-               },
-               {
-                       description: "Successfully get all cache-groups-read 
API Capabilities",
-                       capability:  "cache-groups-read",
-                       hasRecords:  true,
-               },
-               {
-                       description: "Fail to get any API Capabilities with a 
bogus capability",
-                       capability:  "foo",
-                       hasRecords:  false,
-               },
-               {
-                       description: "Successfully get all API Capabilities in 
order of HTTP Method",
-                       order:       "httpMethod",
-                       first:       "GET",
-               },
-       }
-
-       for _, c := range testCases {
-               t.Run(c.description, func(t *testing.T) {
-                       opts := client.RequestOptions{
-                               QueryParameters: url.Values{},
-                       }
-                       opts.QueryParameters.Set("capability", c.capability)
-                       opts.QueryParameters.Set("orderby", c.order)
-                       caps, _, err := TOSession.GetAPICapabilities(opts)
-
-                       if err != nil {
-                               t.Fatalf("error retrieving API capabilities: 
%s", err.Error())
-                       }
-
-                       if len(caps.Response) == 0 && c.hasRecords {
-                               t.Fatalf("error: expected capability %s to have 
records, but found 0", c.capability)
-                       }
-
-                       if c.order != "" && c.hasRecords {
-                               if c.first != caps.Response[0].HTTPMethod {
-                                       t.Fatalf("error: expected first element 
to be %s, got %s", c.first, caps.Response[0].HTTPMethod)
-                               }
-                       }
-               })
-       }
-
-}
diff --git a/traffic_ops/testing/api/v4/todb_test.go 
b/traffic_ops/testing/api/v4/todb_test.go
index d471a5e..c9d7562 100644
--- a/traffic_ops/testing/api/v4/todb_test.go
+++ b/traffic_ops/testing/api/v4/todb_test.go
@@ -68,12 +68,6 @@ func SetupTestData(*sql.DB) error {
                os.Exit(1)
        }
 
-       err = SetupAPICapabilities(db)
-       if err != nil {
-               fmt.Printf("\nError setting up APICapabilities %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
-               os.Exit(1)
-       }
-
        err = SetupTenants(db)
        if err != nil {
                fmt.Printf("\nError setting up tenant %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
diff --git a/traffic_ops/traffic_ops_golang/routing/routes.go 
b/traffic_ops/traffic_ops_golang/routing/routes.go
index 62cbb55..b8a3fc6 100644
--- a/traffic_ops/traffic_ops_golang/routing/routes.go
+++ b/traffic_ops/traffic_ops_golang/routing/routes.go
@@ -149,9 +149,6 @@ func Routes(d ServerData) ([]Route, http.Handler, error) {
                {api.Version{Major: 4, Minor: 0}, http.MethodPost, 
`acme_autorenew/?$`, deliveryservice.RenewCertificates, 
auth.PrivLevelOperations, nil, Authenticated, nil, 2534390574},
                {api.Version{Major: 4, Minor: 0}, http.MethodGet, 
`async_status/{id}$`, api.GetAsyncStatus, auth.PrivLevelOperations, nil, 
Authenticated, nil, 2534390575},
 
-               // API Capability
-               {api.Version{Major: 4, Minor: 0}, http.MethodGet, 
`api_capabilities/?$`, apicapability.GetAPICapabilitiesHandler, 
auth.PrivLevelReadOnly, nil, Authenticated, nil, 48132065893},
-
                //ASNs
                {api.Version{Major: 4, Minor: 0}, http.MethodPut, `asns/?$`, 
api.UpdateHandler(&asn.TOASNV11{}), auth.PrivLevelOperations, nil, 
Authenticated, nil, 42641723173},
                {api.Version{Major: 4, Minor: 0}, http.MethodDelete, `asns/?$`, 
api.DeleteHandler(&asn.TOASNV11{}), auth.PrivLevelOperations, nil, 
Authenticated, nil, 402048983},
diff --git a/traffic_ops/v4-client/api_capability.go 
b/traffic_ops/v4-client/api_capability.go
deleted file mode 100644
index f8f2304..0000000
--- a/traffic_ops/v4-client/api_capability.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package client
-
-/*
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-*/
-
-import (
-       "github.com/apache/trafficcontrol/lib/go-tc"
-       "github.com/apache/trafficcontrol/traffic_ops/toclientlib"
-)
-
-const apiAPICapabilities = "/api_capabilities"
-
-// GetAPICapabilities will retrieve API Capabilities. In the event that no 
capability parameter
-// is supplied, it will return all existing. If a capability is supplied, it 
will return only
-// those with an exact match. Order may be specified to change the default 
sort order.
-func (to *Session) GetAPICapabilities(opts RequestOptions) 
(tc.APICapabilityResponse, toclientlib.ReqInf, error) {
-       var resp tc.APICapabilityResponse
-       reqInf, err := to.get(apiAPICapabilities, opts, &resp)
-       return resp, reqInf, err
-}

Reply via email to