1669c4ae645ecaa3c1b154963868100a7ba6e4c7
[aaf/authz.git] / authz-service / src / main / java / org / onap / aaf / authz / service / api / API_Roles.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aaf\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * ===========================================================================\r
7  * * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * * you may not use this file except in compliance with the License.\r
9  * * You may obtain a copy of the License at\r
10  * * \r
11  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * * \r
13  *  * Unless required by applicable law or agreed to in writing, software\r
14  * * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * * See the License for the specific language governing permissions and\r
17  * * limitations under the License.\r
18  * * ============LICENSE_END====================================================\r
19  * *\r
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
21  * *\r
22  ******************************************************************************/\r
23 package org.onap.aaf.authz.service.api;\r
24 \r
25 import static org.onap.aaf.authz.layer.Result.OK;\r
26 import static org.onap.aaf.cssa.rserv.HttpMethods.DELETE;\r
27 import static org.onap.aaf.cssa.rserv.HttpMethods.GET;\r
28 import static org.onap.aaf.cssa.rserv.HttpMethods.POST;\r
29 import static org.onap.aaf.cssa.rserv.HttpMethods.PUT;\r
30 \r
31 import javax.servlet.http.HttpServletRequest;\r
32 import javax.servlet.http.HttpServletResponse;\r
33 \r
34 import org.onap.aaf.authz.env.AuthzTrans;\r
35 import org.onap.aaf.authz.facade.AuthzFacade;\r
36 import org.onap.aaf.authz.layer.Result;\r
37 import org.onap.aaf.authz.service.AuthAPI;\r
38 import org.onap.aaf.authz.service.Code;\r
39 import org.onap.aaf.authz.service.mapper.Mapper.API;\r
40 import org.onap.aaf.dao.aaf.cass.Status;\r
41 \r
42 import com.att.aft.dme2.internal.jetty.http.HttpStatus;\r
43 \r
44 public class API_Roles {\r
45         public static void init(AuthAPI authzAPI, AuthzFacade facade) throws Exception {\r
46                 /**\r
47                  * puts a new role in Authz DB\r
48                  */\r
49                 authzAPI.route(POST,"/authz/role",API.ROLE_REQ, new Code(facade,"Create Role",true) {\r
50                                         @Override\r
51                                         public void handle(\r
52                                                         AuthzTrans trans,\r
53                                                         HttpServletRequest req, \r
54                                                         HttpServletResponse resp) throws Exception {\r
55                                                 Result<Void> r = context.createRole(trans, req, resp);\r
56                                                         \r
57                                                 switch(r.status) {\r
58                                                         case OK:\r
59                                                                 resp.setStatus(HttpStatus.CREATED_201); \r
60                                                                 break;\r
61                                                         case Status.ACC_Future:\r
62                                                                 resp.setStatus(HttpStatus.ACCEPTED_202); \r
63                                                                 break;\r
64                                                         default:\r
65                                                                 context.error(trans,resp,r);\r
66                                                 }\r
67                                         }\r
68                                 }\r
69                         );\r
70 \r
71                 /** \r
72                  *  get Role by name\r
73                  */\r
74                 authzAPI.route(GET, "/authz/roles/:role", API.ROLES, new Code(facade,"GetRolesByFullName",true) {\r
75                         public void handle(\r
76                                         AuthzTrans trans, \r
77                                         HttpServletRequest req,\r
78                                         HttpServletResponse resp) throws Exception {\r
79                                 \r
80                                 Result<Void> r = context.getRolesByName(trans, resp, pathParam(req, "role"));\r
81                                 switch(r.status) {\r
82                                         case OK: \r
83                                                 resp.setStatus(HttpStatus.OK_200); \r
84                                                 break;\r
85                                         default:\r
86                                                 context.error(trans,resp,r);\r
87                                 }\r
88                         }\r
89 \r
90                 });\r
91 \r
92 \r
93                 /** \r
94                  *  gets all Roles by user name\r
95                  */\r
96                 authzAPI.route(GET, "/authz/roles/user/:name", API.ROLES, new Code(facade,"GetRolesByUser",true) {\r
97                         public void handle(\r
98                                         AuthzTrans trans, \r
99                                         HttpServletRequest req,\r
100                                         HttpServletResponse resp) throws Exception {\r
101                                 \r
102                                 Result<Void> r = context.getRolesByUser(trans, resp, pathParam(req, "name"));\r
103                                 switch(r.status) {\r
104                                         case OK: \r
105                                                 resp.setStatus(HttpStatus.OK_200); \r
106                                                 break;\r
107                                         default:\r
108                                                 context.error(trans,resp,r);\r
109                                 }\r
110                         }\r
111 \r
112                 });\r
113 \r
114                 /** \r
115                  *  gets all Roles by Namespace\r
116                  */\r
117                 authzAPI.route(GET, "/authz/roles/ns/:ns", API.ROLES, new Code(facade,"GetRolesByNS",true) {\r
118                         public void handle(\r
119                                         AuthzTrans trans, \r
120                                         HttpServletRequest req,\r
121                                         HttpServletResponse resp) throws Exception {\r
122                                 \r
123                                 Result<Void> r = context.getRolesByNS(trans, resp, pathParam(req, "ns"));\r
124                                 switch(r.status) {\r
125                                         case OK: \r
126                                                 resp.setStatus(HttpStatus.OK_200); \r
127                                                 break;\r
128                                         default:\r
129                                                 context.error(trans,resp,r);\r
130                                 }\r
131                         }\r
132                 });\r
133 \r
134                 /** \r
135                  *  gets all Roles by Name without the Namespace\r
136                  */\r
137                 authzAPI.route(GET, "/authz/roles/name/:name", API.ROLES, new Code(facade,"GetRolesByNameOnly",true) {\r
138                         public void handle(\r
139                                         AuthzTrans trans, \r
140                                         HttpServletRequest req,\r
141                                         HttpServletResponse resp) throws Exception {\r
142                                 Result<Void> r = context.getRolesByNameOnly(trans, resp, pathParam(req, ":name"));\r
143                                 switch(r.status) {\r
144                                         case OK: \r
145                                                 resp.setStatus(HttpStatus.OK_200); \r
146                                                 break;\r
147                                         default:\r
148                                                 context.error(trans,resp,r);\r
149                                 }\r
150                         }\r
151                 });\r
152                 \r
153                 /**\r
154                  * Deletes a Role from Authz DB by Object\r
155                  */\r
156                 authzAPI.route(DELETE,"/authz/role",API.ROLE_REQ, new Code(facade,"Delete Role",true) {\r
157                                 @Override\r
158                                 public void handle(\r
159                                                 AuthzTrans trans,\r
160                                                 HttpServletRequest req, \r
161                                                 HttpServletResponse resp) throws Exception {\r
162                                         Result<Void> r = context.deleteRole(trans, req, resp);\r
163                                         \r
164                                         switch(r.status) {\r
165                                                 case OK:\r
166                                                         resp.setStatus(HttpStatus.OK_200); \r
167                                                         break;\r
168                                                 default:\r
169                                                         context.error(trans,resp,r);\r
170                                         }\r
171                                 }\r
172                         \r
173                         }\r
174                 );\r
175         \r
176 \r
177                 \r
178                 /**\r
179                  * Deletes a Role from Authz DB by Key\r
180                  */\r
181                 authzAPI.route(DELETE,"/authz/role/:role",API.ROLE, new Code(facade,"Delete Role",true) {\r
182                                 @Override\r
183                                 public void handle(\r
184                                                 AuthzTrans trans,\r
185                                                 HttpServletRequest req, \r
186                                                 HttpServletResponse resp) throws Exception {\r
187                                         Result<Void> r = context.deleteRole(trans, resp, pathParam(req,":role"));\r
188                                                 \r
189                                         switch(r.status) {\r
190                                                 case OK:\r
191                                                         resp.setStatus(HttpStatus.OK_200); \r
192                                                         break;\r
193                                                 default:\r
194                                                         context.error(trans,resp,r);\r
195                                         }\r
196                                 }\r
197                         \r
198                         }\r
199                 );\r
200         \r
201 \r
202                 /**\r
203                  * Add a Permission to a Role (Grant)\r
204                  */\r
205                 authzAPI.route(POST,"/authz/role/perm",API.ROLE_PERM_REQ, new Code(facade,"Add Permission to Role",true) {\r
206                                 @Override\r
207                                 public void handle(\r
208                                                 AuthzTrans trans,\r
209                                                 HttpServletRequest req, \r
210                                                 HttpServletResponse resp) throws Exception {\r
211                                         \r
212                                         Result<Void> r = context.addPermToRole(trans, req, resp);\r
213                                                 \r
214                                         switch(r.status) {\r
215                                                 case OK:\r
216                                                         resp.setStatus(HttpStatus.CREATED_201); \r
217                                                         break;\r
218                                                 default:\r
219                                                         context.error(trans,resp,r);\r
220                                         }\r
221                                 }\r
222                         }\r
223                 );\r
224                 \r
225                 /**\r
226                  * Get all Roles by Permission\r
227                  */\r
228                 authzAPI.route(GET,"/authz/roles/perm/:type/:instance/:action",API.ROLES,new Code(facade,"GetRolesByPerm",true) {\r
229                         public void handle(\r
230                                         AuthzTrans trans, \r
231                                         HttpServletRequest req,\r
232                                         HttpServletResponse resp) throws Exception {\r
233                                 \r
234                                 Result<Void> r = context.getRolesByPerm(trans, resp, \r
235                                                 pathParam(req, "type"),\r
236                                                 pathParam(req, "instance"),\r
237                                                 pathParam(req, "action"));\r
238                                 switch(r.status) {\r
239                                         case OK: \r
240                                                 resp.setStatus(HttpStatus.OK_200); \r
241                                                 break;\r
242                                         default:\r
243                                                 context.error(trans,resp,r);\r
244                                 }\r
245                         }\r
246                 });\r
247                 \r
248                 /**\r
249                  * Set a role's description\r
250                  */\r
251                 authzAPI.route(PUT,"/authz/role",API.ROLE_REQ,new Code(facade,"Set Description for role",true) {\r
252                         @Override\r
253                         public void handle(\r
254                                         AuthzTrans trans, \r
255                                         HttpServletRequest req,\r
256                                         HttpServletResponse resp) throws Exception {\r
257                                 \r
258                                 Result<Void> r = context.updateRoleDescription(trans, req, resp);\r
259                                 switch(r.status) {\r
260                                         case OK: \r
261                                                 resp.setStatus(HttpStatus.OK_200); \r
262                                                 break;\r
263                                         default:\r
264                                                 context.error(trans,resp,r);\r
265                                 }\r
266                         }\r
267                 });     \r
268                 \r
269                 /**\r
270                  * Set a permission's roles to roles given\r
271                  */\r
272                 authzAPI.route(PUT,"/authz/role/perm",API.ROLE_PERM_REQ,new Code(facade,"Set a Permission's Roles",true) {\r
273                         @Override\r
274                         public void handle(\r
275                                         AuthzTrans trans, \r
276                                         HttpServletRequest req,\r
277                                         HttpServletResponse resp) throws Exception {\r
278                                 \r
279                                 Result<Void> r = context.resetPermRoles(trans, req, resp);\r
280                                 switch(r.status) {\r
281                                         case OK: \r
282                                                 resp.setStatus(HttpStatus.OK_200); \r
283                                                 break;\r
284                                         default:\r
285                                                 context.error(trans,resp,r);\r
286                                 }\r
287                         }\r
288                 });     \r
289                 \r
290                 /**\r
291                  * Delete a Permission from a Role\r
292                  */\r
293                 authzAPI.route(DELETE,"/authz/role/:role/perm",API.ROLE_PERM_REQ, new Code(facade,"Delete Permission from Role",true) {\r
294                         @Override\r
295                         public void handle(\r
296                                         AuthzTrans trans,\r
297                                         HttpServletRequest req, \r
298                                         HttpServletResponse resp) throws Exception {\r
299                                 Result<Void> r = context.delPermFromRole(trans, req, resp);\r
300                                         \r
301                                 switch(r.status) {\r
302                                         case OK:\r
303                                                 resp.setStatus(HttpStatus.OK_200); \r
304                                                 break;\r
305                                         default:\r
306                                                 context.error(trans,resp,r);\r
307                                 }\r
308                         }\r
309                 \r
310                 }\r
311         );\r
312 \r
313         }\r
314 }\r