[AAF-21] Updated Copyright Headers for AAF
[aaf/authz.git] / authz-service / src / main / java / com / att / authz / service / api / API_Perms.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 java.net.URLDecoder;\r
32 \r
33 import javax.servlet.http.HttpServletRequest;\r
34 import javax.servlet.http.HttpServletResponse;\r
35 \r
36 import com.att.aft.dme2.internal.jetty.http.HttpStatus;\r
37 import com.att.authz.env.AuthzTrans;\r
38 import com.att.authz.facade.AuthzFacade;\r
39 import com.att.authz.layer.Result;\r
40 import com.att.authz.service.AuthAPI;\r
41 import com.att.authz.service.Code;\r
42 import com.att.authz.service.mapper.Mapper.API;\r
43 import com.att.cadi.config.Config;\r
44 \r
45 public class API_Perms {\r
46         public static void timeSensitiveInit(AuthAPI authzAPI, AuthzFacade facade) throws Exception {\r
47                 /** \r
48                  *  gets all permissions by user name\r
49                  */\r
50                 authzAPI.route(GET, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User",true) {\r
51                         public void handle(\r
52                                         AuthzTrans trans, \r
53                                         HttpServletRequest req,\r
54                                         HttpServletResponse resp) throws Exception {\r
55                                 \r
56                                 Result<Void> r = context.getPermsByUser(trans, resp, pathParam(req, "user"));\r
57                                 switch(r.status) {\r
58                                         case OK: \r
59                                                 resp.setStatus(HttpStatus.OK_200); \r
60                                                 break;\r
61                                         default:\r
62                                                 context.error(trans,resp,r);\r
63                                 }\r
64                         }\r
65 \r
66                 });\r
67                 \r
68                 /** \r
69                  *  gets all permissions by user name\r
70                  */\r
71                 authzAPI.route(POST, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User, Query AAF Perms",true) {\r
72                         public void handle(\r
73                                         AuthzTrans trans, \r
74                                         HttpServletRequest req,\r
75                                         HttpServletResponse resp) throws Exception {\r
76                                 \r
77                                 Result<Void> r = context.getPermsByUserWithAAFQuery(trans, req, resp, pathParam(req, "user"));\r
78                                 switch(r.status) {\r
79                                         case OK: \r
80                                                 resp.setStatus(HttpStatus.OK_200); \r
81                                                 break;\r
82                                         default:\r
83                                                 context.error(trans,resp,r);\r
84                                 }\r
85                         }\r
86 \r
87                 });\r
88 \r
89 \r
90         } // end timeSensitiveInit\r
91 \r
92         public static void init(AuthAPI authzAPI, AuthzFacade facade) throws Exception {\r
93                 /**\r
94                  * Create a Permission\r
95                  */\r
96                 authzAPI.route(POST,"/authz/perm",API.PERM_REQ,new Code(facade,"Create a Permission",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.createPerm(trans, req, resp);\r
103                                 switch(r.status) {\r
104                                         case OK: \r
105                                                 resp.setStatus(HttpStatus.CREATED_201); \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                  *  get details of Permission\r
115                  */\r
116                 authzAPI.route(GET, "/authz/perms/:type/:instance/:action", API.PERMS, new Code(facade,"Get Permissions by Key",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.getPermsByName(trans, resp, \r
123                                                 pathParam(req, "type"),\r
124                                                 URLDecoder.decode(pathParam(req, "instance"),Config.UTF_8),\r
125                                                 pathParam(req, "action"));\r
126                                 switch(r.status) {\r
127                                         case OK: \r
128                                                 resp.setStatus(HttpStatus.OK_200); \r
129                                                 break;\r
130                                         default:\r
131                                                 context.error(trans,resp,r);\r
132                                 }\r
133                         }\r
134 \r
135                 });\r
136                 \r
137                 /** \r
138                  *  get children of Permission\r
139                  */\r
140                 authzAPI.route(GET, "/authz/perms/:type", API.PERMS, new Code(facade,"Get Permissions by Type",true) {\r
141                         public void handle(\r
142                                         AuthzTrans trans, \r
143                                         HttpServletRequest req,\r
144                                         HttpServletResponse resp) throws Exception {\r
145                                 \r
146                                 Result<Void> r = context.getPermsByType(trans, resp, pathParam(req, "type"));\r
147                                 switch(r.status) {\r
148                                         case OK: \r
149                                                 resp.setStatus(HttpStatus.OK_200); \r
150                                                 break;\r
151                                         default:\r
152                                                 context.error(trans,resp,r);\r
153                                 }\r
154                         }\r
155 \r
156                 });\r
157 \r
158                 \r
159                 /**\r
160                  * gets all permissions by role name\r
161                  */\r
162                 authzAPI.route(GET,"/authz/perms/role/:role",API.PERMS,new Code(facade,"Get Permissions by Role",true) {\r
163                         public void handle(\r
164                                         AuthzTrans trans, \r
165                                         HttpServletRequest req,\r
166                                         HttpServletResponse resp) throws Exception {\r
167                                 \r
168                                 Result<Void> r = context.getPermsForRole(trans, resp, pathParam(req, "role"));\r
169                                 switch(r.status) {\r
170                                         case OK: \r
171                                                 resp.setStatus(HttpStatus.OK_200); \r
172                                                 break;\r
173                                         default:\r
174                                                 context.error(trans,resp,r);\r
175                                 }\r
176                         }\r
177                 });\r
178 \r
179                 /**\r
180                  * gets all permissions by Namespace\r
181                  */\r
182                 authzAPI.route(GET,"/authz/perms/ns/:ns",API.PERMS,new Code(facade,"Get PermsByNS",true) {\r
183                         public void handle(\r
184                                         AuthzTrans trans, \r
185                                         HttpServletRequest req,\r
186                                         HttpServletResponse resp) throws Exception {\r
187                                 \r
188                                 Result<Void> r = context.getPermsByNS(trans, resp, pathParam(req, "ns"));\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                  * Set a perm's description\r
201                  */\r
202                 authzAPI.route(PUT,"/authz/perm",API.PERM_REQ,new Code(facade,"Set Description for Permission",true) {\r
203                         @Override\r
204                         public void handle(\r
205                                         AuthzTrans trans, \r
206                                         HttpServletRequest req,\r
207                                         HttpServletResponse resp) throws Exception {\r
208                                 \r
209                                 Result<Void> r = context.updatePermDescription(trans, req, resp);\r
210                                 switch(r.status) {\r
211                                         case OK: \r
212                                                 resp.setStatus(HttpStatus.OK_200); \r
213                                                 break;\r
214                                         default:\r
215                                                 context.error(trans,resp,r);\r
216                                 }\r
217                         }\r
218                 });     \r
219                 \r
220                 /**\r
221                  * Update a permission with a rename\r
222                  */\r
223                 authzAPI.route(PUT,"/authz/perm/:type/:instance/:action",API.PERM_REQ,new Code(facade,"Update a Permission",true) {\r
224                         public void handle(\r
225                                         AuthzTrans trans, \r
226                                         HttpServletRequest req,\r
227                                         HttpServletResponse resp) throws Exception {\r
228                                 \r
229                                 Result<Void> r = context.renamePerm(trans, req, resp, pathParam(req, "type"), \r
230                                                 pathParam(req, "instance"), pathParam(req, "action"));\r
231                                 switch(r.status) {\r
232                                         case OK: \r
233                                                 resp.setStatus(HttpStatus.OK_200); \r
234                                                 break;\r
235                                         default:\r
236                                                 context.error(trans,resp,r);\r
237                                 }\r
238                         }\r
239                 });     \r
240                 \r
241                 /**\r
242                  * Delete a Permission\r
243                  */\r
244                 authzAPI.route(DELETE,"/authz/perm",API.PERM_REQ,new Code(facade,"Delete a Permission",true) {\r
245                         public void handle(\r
246                                         AuthzTrans trans, \r
247                                         HttpServletRequest req,\r
248                                         HttpServletResponse resp) throws Exception {\r
249                                 \r
250                                 Result<Void> r = context.deletePerm(trans,req, resp);\r
251                                 switch(r.status) {\r
252                                         case OK: \r
253                                                 resp.setStatus(HttpStatus.OK_200); \r
254                                                 break;\r
255                                         default:\r
256                                                 context.error(trans,resp,r);\r
257                                 }\r
258                         }\r
259                 });\r
260 \r
261                 \r
262                 \r
263 \r
264                 /**\r
265                  * Delete a Permission\r
266                  */\r
267                 authzAPI.route(DELETE,"/authz/perm/:name/:type/:action",API.PERM_KEY,new Code(facade,"Delete a Permission",true) {\r
268                         public void handle(\r
269                                         AuthzTrans trans, \r
270                                         HttpServletRequest req,\r
271                                         HttpServletResponse resp) throws Exception {\r
272                                 \r
273                                 Result<Void> r = context.deletePerm(trans, resp,\r
274                                                 pathParam(req, ":name"),\r
275                                                 pathParam(req, ":type"),\r
276                                                 pathParam(req, ":action"));\r
277                                 switch(r.status) {\r
278                                         case OK: \r
279                                                 resp.setStatus(HttpStatus.OK_200); \r
280                                                 break;\r
281                                         default:\r
282                                                 context.error(trans,resp,r);\r
283                                 }\r
284                         }\r
285                 });\r
286 \r
287         } // end init\r
288 }\r
289 \r
290 \r
291 \r