public MApiPermission[] resolvePermissions(Route route, Class<?> resourceType) { List<MApiPermission> list = New.arrayList(); String resourceName = resourceType.getSimpleName(); Map<String,Object> vars = New.hashMap("resource", resourceName); permissions.forEach(p -> { if(p.matches(route)) { String value = eval(p.getValue(), vars); String desc = eval(p.getDescription(), vars); list.add(new MApiPermission(value, desc)); } }); if(list.isEmpty() && null != defaultPermission) { list.add(new MApiPermission(defaultPermission.getValue(), defaultPermission.getDescription())); } return list.toArray(new MApiPermission[0]); }
protected void writeOAuth2Scopes(WriteContext context, ApiMetadata m, JsonWriter w, MOAuth2ApiSecurityDef d, MApiPermission[] scopes) { w.property(SCOPES, () -> { w.startObject(); if(null != scopes) { for (MApiPermission scope : scopes) { w.property(scope.getValue(), Strings.trim(scope.getDescription())); } } w.endObject(); }); }
public ApiConfigurator addRoute(Route route, boolean dynamic, boolean operation) { if(null != route.getPermissions()) { for(String p : route.getPermissions()) { if(!permissions.containsKey(p)) { permissions.put(p, new MApiPermission(p, "")); } } } routes.add(new SimpleApiRoute(route, dynamic, operation)); if(!containerRoutes.exists(route)) { containerRoutes.add(route); } return this; }
api.setPermission(new MApiPermission(value, desc)); continue; String desc = (String) v; api.setPermission(new MApiPermission(value, desc)); });
@Override public ApiConfigurator setPermission(MApiPermission p) { permissions.put(p.getValue(), p); return this; }
md.addPermission(new MApiPermission(p.getName(), p.getDescription(), p.getAttrs())); });
@Override public ApiConfigurator tryAddPermission(MApiPermission p) { if(!permissions.containsKey(p.getValue())) { setPermission(p); } return this; }
protected void resolveResourcePermissions(App app, ApiConfigurator c, Route route, Class<?> resourceType) { if(null != route.getPermissions()) { return; } ResourcePermissions rps = c.config().getResourcePermissionsSet().tryGetResourcePermissions(resourceType); if(null == rps) { return; } MApiPermission[] permissions = rps.resolvePermissions(route, resourceType); if(null != permissions && permissions.length > 0) { String[] values = new String[permissions.length]; for(int i=0;i<values.length;i++) { values[i] = permissions[i].getValue(); } route.setPermissions(values); for(MApiPermission p : permissions) { c.tryAddPermission(p); } } }
protected void writeDefaultSecurity(WriteContext context, ApiMetadata m, JsonWriter w) { if(null == context.defaultSecurity){ return; } w.property(SECURITY, () -> { w.startArray(); w.startObject(); w.property(context.defaultSecurity, () -> { w.array(m.getPermissions(), (p) -> w.value(p.getValue())); }); w.endObject(); w.endArray(); }); }