[AAF-21] Updated Copyright Headers for AAF
[aaf/authz.git] / authz-service / src / main / java / com / att / 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 com.att.authz.service.api;\r
24 \r
25 import static com.att.authz.layer.Result.OK;\r
26 import static com.att.cssa.rserv.HttpMethods.DELETE;\r
27 import static com.att.cssa.rserv.HttpMethods.GET;\r
28 import static com.att.cssa.rserv.HttpMethods.POST;\r
29 import static com.att.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 com.att.aft.dme2.internal.jetty.http.HttpStatus;\r
35 import com.att.authz.env.AuthzTrans;\r
36 import com.att.authz.facade.AuthzFacade;\r
37 import com.att.authz.layer.Result;\r
38 import com.att.authz.service.AuthAPI;\r
39 import com.att.authz.service.Code;\r
40 import com.att.authz.service.mapper.Mapper.API;\r
41 import com.att.dao.aaf.cass.Status;\r
42 \r
43 public class API_Roles {\r
44         public static void init(AuthAPI authzAPI, AuthzFacade facade) throws Exception {\r
45                 /**\r
46                  * puts a new role in Authz DB\r
47                  */\r
48                 authzAPI.route(POST,"/authz/role",API.ROLE_REQ, new Code(facade,"Create Role",true) {\r
49                                         @Override\r
50                                         public void handle(\r
51                                                         AuthzTrans trans,\r
52                                                         HttpServletRequest req, \r
53                                                         HttpServletResponse resp) throws Exception {\r
54                                                 Result<Void> r = context.createRole(trans, req, resp);\r
55                                                         \r
56                                                 switch(r.status) {\r
57                                                         case OK:\r
58                                                                 resp.setStatus(HttpStatus.CREATED_201); \r
59                                                                 break;\r
60                                                         case Status.ACC_Future:\r
61                                                                 resp.setStatus(HttpStatus.ACCEPTED_202); \r
62                                                                 break;\r
63                                                         default:\r
64                                                                 context.error(trans,resp,r);\r
65                                                 }\r
66                                         }\r
67                                 }\r
68                         );\r
69 \r
70                 /** \r
71                  *  get Role by name\r
72                  */\r
73                 authzAPI.route(GET, "/authz/roles/:role", API.ROLES, new Code(facade,"GetRolesByFullName",true) {\r
74                         public void handle(\r
75                                         AuthzTrans trans, \r
76                                         HttpServletRequest req,\r
77                                         HttpServletResponse resp) throws Exception {\r
78                                 \r
79                                 Result<Void> r = context.getRolesByName(trans, resp, pathParam(req, "role"));\r
80                                 switch(r.status) {\r
81                                         case OK: \r
82                                                 resp.setStatus(HttpStatus.OK_200); \r
83                                                 break;\r
84                                         default:\r
85                                                 context.error(trans,resp,r);\r
86                                 }\r
87                         }\r
88 \r
89                 });\r
90 \r
91 \r
92                 /** \r
93                  *  gets all Roles by user name\r
94                  */\r
95                 authzAPI.route(GET, "/authz/roles/user/:name", API.ROLES, new Code(facade,"GetRolesByUser",true) {\r
96                         public void handle(\r
97                                         AuthzTrans trans, \r
98                                         HttpServletRequest req,\r
99                                         HttpServletResponse resp) throws Exception {\r
100                                 \r
101                                 Result<Void> r = context.getRolesByUser(trans, resp, pathParam(req, "name"));\r
102                                 switch(r.status) {\r
103                                         case OK: \r
104                                                 resp.setStatus(HttpStatus.OK_200); \r
105                                                 break;\r
106                                         default:\r
107                                                 context.error(trans,resp,r);\r
108                                 }\r
109                         }\r
110 \r
111                 });\r
112 \r
113                 /** \r
114                  *  gets all Roles by Namespace\r
115                  */\r
116                 authzAPI.route(GET, "/authz/roles/ns/:ns", API.ROLES, new Code(facade,"GetRolesByNS",true) {\r
117                         public void handle(\r
118                                         AuthzTrans trans, \r
119                                         HttpServletRequest req,\r
120                                         HttpServletResponse resp) throws Exception {\r
121                                 \r
122                                 Result<Void> r = context.getRolesByNS(trans, resp, pathParam(req, "ns"));\r
123                                 switch(r.status) {\r
124                                         case OK: \r
125                                                 resp.setStatus(HttpStatus.OK_200); \r
126                                                 break;\r
127                                         default:\r
128                                                 context.error(trans,resp,r);\r
129                                 }\r
130                         }\r
131                 });\r
132 \r
133                 /** \r
134                  *  gets all Roles by Name without the Namespace\r
135                  */\r
136                 authzAPI.route(GET, "/authz/roles/name/:name", API.ROLES, new Code(facade,"GetRolesByNameOnly",true) {\r
137                         public void handle(\r
138                                         AuthzTrans trans, \r
139                                         HttpServletRequest req,\r
140                                         HttpServletResponse resp) throws Exception {\r
141                                 Result<Void> r = context.getRolesByNameOnly(trans, resp, pathParam(req, ":name"));\r
142                                 switch(r.status) {\r
143                                         case OK: \r
144                                                 resp.setStatus(HttpStatus.OK_200); \r
145                                                 break;\r
146                                         default:\r
147                                                 context.error(trans,resp,r);\r
148                                 }\r
149                         }\r
150                 });\r
151                 \r
152                 /**\r
153                  * Deletes a Role from Authz DB by Object\r
154                  */\r
155                 authzAPI.route(DELETE,"/authz/role",API.ROLE_REQ, new Code(facade,"Delete Role",true) {\r
156                                 @Override\r
157                                 public void handle(\r
158                                                 AuthzTrans trans,\r
159                                                 HttpServletRequest req, \r
160                                                 HttpServletResponse resp) throws Exception {\r
161                                         Result<Void> r = context.deleteRole(trans, req, resp);\r
162                                         \r
163                                         switch(r.status) {\r
164                                                 case OK:\r
165                                                         resp.setStatus(HttpStatus.OK_200); \r
166                                                         break;\r
167                                                 default:\r
168                                                         context.error(trans,resp,r);\r
169                                         }\r
170                                 }\r
171                         \r
172                         }\r
173                 );\r
174         \r
175 \r
176                 \r
177                 /**\r
178                  * Deletes a Role from Authz DB by Key\r
179                  */\r
180                 authzAPI.route(DELETE,"/authz/role/:role",API.ROLE, new Code(facade,"Delete Role",true) {\r
181                                 @Override\r
182                                 public void handle(\r
183                                                 AuthzTrans trans,\r
184                                                 HttpServletRequest req, \r
185                                                 HttpServletResponse resp) throws Exception {\r
186                                         Result<Void> r = context.deleteRole(trans, resp, pathParam(req,":role"));\r
187                                                 \r
188                                         switch(r.status) {\r
189                                                 case OK:\r
190                                                         resp.setStatus(HttpStatus.OK_200); \r
191                                                         break;\r
192                                                 default:\r
193                                                         context.error(trans,resp,r);\r
194                                         }\r
195                                 }\r
196                         \r
197                         }\r
198                 );\r
199         \r
200 \r
201                 /**\r
202                  * Add a Permission to a Role (Grant)\r
203                  */\r
204                 authzAPI.route(POST,"/authz/role/perm",API.ROLE_PERM_REQ, new Code(facade,"Add Permission to Role",true) {\r
205                                 @Override\r
206                                 public void handle(\r
207                                                 AuthzTrans trans,\r
208                                                 HttpServletRequest req, \r
209                                                 HttpServletResponse resp) throws Exception {\r
210                                         \r
211                                         Result<Void> r = context.addPermToRole(trans, req, resp);\r
212                                                 \r
213                                         switch(r.status) {\r
214                                                 case OK:\r
215                                                         resp.setStatus(HttpStatus.CREATED_201); \r
216                                                         break;\r
217                                                 default:\r
218                                                         context.error(trans,resp,r);\r
219                                         }\r
220                                 }\r
221                         }\r
222                 );\r
223                 \r
224                 /**\r
225                  * Get all Roles by Permission\r
226                  */\r
227                 authzAPI.route(GET,"/authz/roles/perm/:type/:instance/:action",API.ROLES,new Code(facade,"GetRolesByPerm",true) {\r
228                         public void handle(\r
229                                         AuthzTrans trans, \r
230                                         HttpServletRequest req,\r
231                                         HttpServletResponse resp) throws Exception {\r
232                                 \r
233                                 Result<Void> r = context.getRolesByPerm(trans, resp, \r
234                                                 pathParam(req, "type"),\r
235                                                 pathParam(req, "instance"),\r
236                                                 pathParam(req, "action"));\r
237                                 switch(r.status) {\r
238                                         case OK: \r
239                                                 resp.setStatus(HttpStatus.OK_200); \r
240                                                 break;\r
241                                         default:\r
242                                                 context.error(trans,resp,r);\r
243                                 }\r
244                         }\r
245                 });\r
246                 \r
247                 /**\r
248                  * Set a role's description\r
249                  */\r
250                 authzAPI.route(PUT,"/authz/role",API.ROLE_REQ,new Code(facade,"Set Description for role",true) {\r
251                         @Override\r
252                         public void handle(\r
253                                         AuthzTrans trans, \r
254                                         HttpServletRequest req,\r
255                                         HttpServletResponse resp) throws Exception {\r
256                                 \r
257                                 Result<Void> r = context.updateRoleDescription(trans, req, resp);\r
258                                 switch(r.status) {\r
259                                         case OK: \r
260                                                 resp.setStatus(HttpStatus.OK_200); \r
261                                                 break;\r
262                                         default:\r
263                                                 context.error(trans,resp,r);\r
264                                 }\r
265                         }\r
266                 });     \r
267                 \r
268                 /**\r
269                  * Set a permission's roles to roles given\r
270                  */\r
271                 authzAPI.route(PUT,"/authz/role/perm",API.ROLE_PERM_REQ,new Code(facade,"Set a Permission's Roles",true) {\r
272                         @Override\r
273                         public void handle(\r
274                                         AuthzTrans trans, \r
275                                         HttpServletRequest req,\r
276                                         HttpServletResponse resp) throws Exception {\r
277                                 \r
278                                 Result<Void> r = context.resetPermRoles(trans, req, resp);\r
279                                 switch(r.status) {\r
280                                         case OK: \r
281                                                 resp.setStatus(HttpStatus.OK_200); \r
282                                                 break;\r
283                                         default:\r
284                                                 context.error(trans,resp,r);\r
285                                 }\r
286                         }\r
287                 });     \r
288                 \r
289                 /**\r
290                  * Delete a Permission from a Role\r
291                  */\r
292                 authzAPI.route(DELETE,"/authz/role/:role/perm",API.ROLE_PERM_REQ, new Code(facade,"Delete Permission from Role",true) {\r
293                         @Override\r
294                         public void handle(\r
295                                         AuthzTrans trans,\r
296                                         HttpServletRequest req, \r
297                                         HttpServletResponse resp) throws Exception {\r
298                                 Result<Void> r = context.delPermFromRole(trans, req, resp);\r
299                                         \r
300                                 switch(r.status) {\r
301                                         case OK:\r
302                                                 resp.setStatus(HttpStatus.OK_200); \r
303                                                 break;\r
304                                         default:\r
305                                                 context.error(trans,resp,r);\r
306                                 }\r
307                         }\r
308                 \r
309                 }\r
310         );\r
311 \r
312         }\r
313 }\r