Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

617 linhas
15 KiB

  1. {
  2. "meta": {
  3. "$_GET": [
  4. {
  5. "type": "text",
  6. "name": "sort"
  7. },
  8. {
  9. "type": "text",
  10. "name": "dir"
  11. }
  12. ]
  13. },
  14. "exec": {
  15. "steps": [
  16. {
  17. "name": "identity",
  18. "module": "auth",
  19. "action": "identify",
  20. "options": {
  21. "provider": "auth"
  22. },
  23. "output": true,
  24. "meta": []
  25. },
  26. {
  27. "name": "user",
  28. "module": "dbconnector",
  29. "action": "single",
  30. "options": {
  31. "connection": "authdb",
  32. "sql": {
  33. "type": "select",
  34. "columns": [
  35. {
  36. "table": "users",
  37. "column": "id"
  38. },
  39. {
  40. "table": "users",
  41. "column": "email"
  42. },
  43. {
  44. "table": "users",
  45. "column": "regcode"
  46. },
  47. {
  48. "table": "users",
  49. "column": "validated"
  50. },
  51. {
  52. "table": "users",
  53. "column": "firstname"
  54. },
  55. {
  56. "table": "users",
  57. "column": "lastname"
  58. }
  59. ],
  60. "params": [
  61. {
  62. "operator": "equal",
  63. "type": "expression",
  64. "name": ":P1",
  65. "value": "{{identity}}",
  66. "test": ""
  67. }
  68. ],
  69. "table": {
  70. "name": "users"
  71. },
  72. "primary": "id",
  73. "joins": [],
  74. "query": "select `id`, `email`, `regcode`, `validated`, `firstname`, `lastname` from `users` where `users`.`id` = ?",
  75. "wheres": {
  76. "condition": "AND",
  77. "rules": [
  78. {
  79. "id": "users.id",
  80. "field": "users.id",
  81. "type": "double",
  82. "operator": "equal",
  83. "value": "{{identity}}",
  84. "data": {
  85. "table": "users",
  86. "column": "id",
  87. "type": "number",
  88. "columnObj": {
  89. "type": "increments",
  90. "primary": true,
  91. "unique": false,
  92. "nullable": false,
  93. "name": "id"
  94. }
  95. },
  96. "operation": "=",
  97. "table": "users"
  98. }
  99. ],
  100. "conditional": null,
  101. "valid": true
  102. }
  103. }
  104. },
  105. "meta": [
  106. {
  107. "type": "number",
  108. "name": "id"
  109. },
  110. {
  111. "type": "text",
  112. "name": "email"
  113. },
  114. {
  115. "type": "text",
  116. "name": "regcode"
  117. },
  118. {
  119. "type": "boolean",
  120. "name": "validated"
  121. },
  122. {
  123. "type": "text",
  124. "name": "firstname"
  125. },
  126. {
  127. "type": "text",
  128. "name": "lastname"
  129. }
  130. ],
  131. "outputType": "object"
  132. },
  133. {
  134. "name": "roles",
  135. "module": "dbconnector",
  136. "action": "select",
  137. "options": {
  138. "connection": "authdb",
  139. "sql": {
  140. "type": "select",
  141. "columns": [
  142. {
  143. "table": "roles",
  144. "column": "id"
  145. },
  146. {
  147. "table": "roles",
  148. "column": "name"
  149. },
  150. {
  151. "table": "roles",
  152. "column": "isDepartment"
  153. }
  154. ],
  155. "params": [
  156. {
  157. "operator": "equal",
  158. "type": "expression",
  159. "name": ":P1",
  160. "value": "{{identity}}",
  161. "test": ""
  162. }
  163. ],
  164. "table": {
  165. "name": "roles"
  166. },
  167. "primary": "id",
  168. "joins": [
  169. {
  170. "table": "xuserrole",
  171. "column": "*",
  172. "type": "INNER",
  173. "clauses": {
  174. "condition": "AND",
  175. "rules": [
  176. {
  177. "table": "xuserrole",
  178. "column": "roleid",
  179. "operator": "equal",
  180. "operation": "=",
  181. "value": {
  182. "table": "roles",
  183. "column": "id"
  184. }
  185. }
  186. ]
  187. },
  188. "primary": "id"
  189. }
  190. ],
  191. "wheres": {
  192. "condition": "AND",
  193. "rules": [
  194. {
  195. "id": "xuserrole.userid",
  196. "field": "xuserrole.userid",
  197. "type": "double",
  198. "operator": "equal",
  199. "value": "{{identity}}",
  200. "data": {
  201. "table": "xuserrole",
  202. "column": "userid",
  203. "type": "number",
  204. "columnObj": {
  205. "type": "integer",
  206. "primary": false,
  207. "unique": false,
  208. "nullable": true,
  209. "name": "userid"
  210. }
  211. },
  212. "operation": "="
  213. }
  214. ],
  215. "conditional": null,
  216. "valid": true
  217. },
  218. "query": "select `roles`.`id`, `roles`.`name`, `roles`.`isDepartment` from `roles` inner join `xuserrole` on `xuserrole`.`roleid` = `roles`.`id` where `xuserrole`.`userid` = ?"
  219. }
  220. },
  221. "meta": [
  222. {
  223. "type": "number",
  224. "name": "id"
  225. },
  226. {
  227. "type": "text",
  228. "name": "name"
  229. },
  230. {
  231. "type": "boolean",
  232. "name": "isDepartment"
  233. }
  234. ],
  235. "outputType": "array",
  236. "output": true
  237. },
  238. {
  239. "name": "xuserroles",
  240. "module": "dbconnector",
  241. "action": "select",
  242. "options": {
  243. "connection": "authdb",
  244. "sql": {
  245. "type": "select",
  246. "columns": [
  247. {
  248. "table": "xuserrole",
  249. "column": "userid"
  250. },
  251. {
  252. "table": "xuserrole",
  253. "column": "roleid"
  254. }
  255. ],
  256. "params": [
  257. {
  258. "operator": "equal",
  259. "type": "expression",
  260. "name": ":P1",
  261. "value": "{{identity}}",
  262. "test": ""
  263. }
  264. ],
  265. "table": {
  266. "name": "xuserrole"
  267. },
  268. "primary": "id",
  269. "joins": [],
  270. "wheres": {
  271. "condition": "AND",
  272. "rules": [
  273. {
  274. "id": "xuserrole.userid",
  275. "field": "xuserrole.userid",
  276. "type": "double",
  277. "operator": "equal",
  278. "value": "{{identity}}",
  279. "data": {
  280. "table": "xuserrole",
  281. "column": "userid",
  282. "type": "number",
  283. "columnObj": {
  284. "type": "integer",
  285. "primary": false,
  286. "unique": false,
  287. "nullable": true,
  288. "name": "userid"
  289. }
  290. },
  291. "operation": "="
  292. }
  293. ],
  294. "conditional": null,
  295. "valid": true
  296. },
  297. "query": "select `userid`, `roleid` from `xuserrole` where `xuserrole`.`userid` = ?"
  298. }
  299. },
  300. "output": true,
  301. "meta": [
  302. {
  303. "type": "number",
  304. "name": "userid"
  305. },
  306. {
  307. "type": "number",
  308. "name": "roleid"
  309. }
  310. ],
  311. "outputType": "array"
  312. },
  313. {
  314. "name": "validated",
  315. "module": "core",
  316. "action": "setvalue",
  317. "options": {
  318. "key": "g_validated",
  319. "value": "{{user.validated==1}}"
  320. },
  321. "meta": [
  322. {
  323. "name": "id",
  324. "type": "number"
  325. },
  326. {
  327. "name": "email",
  328. "type": "text"
  329. },
  330. {
  331. "name": "regcode",
  332. "type": "text"
  333. },
  334. {
  335. "name": "validated",
  336. "type": "boolean"
  337. },
  338. {
  339. "name": "firstname",
  340. "type": "text"
  341. },
  342. {
  343. "name": "lastname",
  344. "type": "text"
  345. }
  346. ],
  347. "outputType": "text",
  348. "output": true
  349. },
  350. {
  351. "name": "associate",
  352. "module": "core",
  353. "action": "setvalue",
  354. "options": {
  355. "key": "g_associate",
  356. "value": "{{roles.where('id', '==', 4).count()>0}}"
  357. },
  358. "meta": [
  359. {
  360. "name": "id",
  361. "type": "number"
  362. },
  363. {
  364. "name": "name",
  365. "type": "text"
  366. },
  367. {
  368. "name": "isDepartment",
  369. "type": "boolean"
  370. }
  371. ],
  372. "outputType": "text",
  373. "output": true
  374. },
  375. {
  376. "name": "administrator",
  377. "module": "core",
  378. "action": "setvalue",
  379. "options": {
  380. "key": "g_administrator",
  381. "value": "{{roles.where('id', '==', 1).count()>0}}"
  382. },
  383. "meta": [
  384. {
  385. "name": "id",
  386. "type": "number"
  387. },
  388. {
  389. "name": "name",
  390. "type": "text"
  391. },
  392. {
  393. "name": "isDepartment",
  394. "type": "boolean"
  395. }
  396. ],
  397. "outputType": "text",
  398. "output": true
  399. },
  400. {
  401. "name": "manager",
  402. "module": "core",
  403. "action": "setvalue",
  404. "options": {
  405. "key": "g_manager",
  406. "value": "{{roles.where('id', '==', 6).count()>0}}"
  407. },
  408. "meta": [
  409. {
  410. "name": "id",
  411. "type": "number"
  412. },
  413. {
  414. "name": "name",
  415. "type": "text"
  416. },
  417. {
  418. "name": "isDepartment",
  419. "type": "boolean"
  420. }
  421. ],
  422. "outputType": "text",
  423. "output": true
  424. },
  425. {
  426. "name": "lead",
  427. "module": "core",
  428. "action": "setvalue",
  429. "options": {
  430. "key": "g_lead",
  431. "value": "{{roles.where('id', '==', 7).count()>0}}"
  432. },
  433. "meta": [
  434. {
  435. "name": "id",
  436. "type": "number"
  437. },
  438. {
  439. "name": "name",
  440. "type": "text"
  441. },
  442. {
  443. "name": "isDepartment",
  444. "type": "boolean"
  445. }
  446. ],
  447. "outputType": "text",
  448. "output": true
  449. },
  450. {
  451. "name": "administration_dept",
  452. "module": "core",
  453. "action": "setvalue",
  454. "options": {
  455. "key": "g_administration_dept",
  456. "value": "{{roles.where('id', '==', 5).count()>0}}"
  457. },
  458. "meta": [
  459. {
  460. "name": "id",
  461. "type": "number"
  462. },
  463. {
  464. "name": "name",
  465. "type": "text"
  466. },
  467. {
  468. "name": "isDepartment",
  469. "type": "boolean"
  470. }
  471. ],
  472. "outputType": "text",
  473. "output": true
  474. },
  475. {
  476. "name": "engineering_dept",
  477. "module": "core",
  478. "action": "setvalue",
  479. "options": {
  480. "key": "g_engineering_dept",
  481. "value": "{{roles.where('id', '==', 3).count()>0}}"
  482. },
  483. "meta": [
  484. {
  485. "name": "id",
  486. "type": "number"
  487. },
  488. {
  489. "name": "name",
  490. "type": "text"
  491. },
  492. {
  493. "name": "isDepartment",
  494. "type": "boolean"
  495. }
  496. ],
  497. "outputType": "text",
  498. "output": true
  499. },
  500. {
  501. "name": "operations_dept",
  502. "module": "core",
  503. "action": "setvalue",
  504. "options": {
  505. "key": "g_operations_dept",
  506. "value": "{{roles.where('id', '==', 2).count()>0}}"
  507. },
  508. "meta": [
  509. {
  510. "name": "id",
  511. "type": "number"
  512. },
  513. {
  514. "name": "name",
  515. "type": "text"
  516. },
  517. {
  518. "name": "isDepartment",
  519. "type": "boolean"
  520. }
  521. ],
  522. "outputType": "text",
  523. "output": true
  524. },
  525. {
  526. "name": "ops_excellence_dept",
  527. "module": "core",
  528. "action": "setvalue",
  529. "options": {
  530. "key": "g_ops_excellence_dept",
  531. "value": "{{roles.where('id', '==', 8).count()>0}}"
  532. },
  533. "meta": [
  534. {
  535. "name": "id",
  536. "type": "number"
  537. },
  538. {
  539. "name": "name",
  540. "type": "text"
  541. },
  542. {
  543. "name": "isDepartment",
  544. "type": "boolean"
  545. }
  546. ],
  547. "outputType": "text",
  548. "output": true
  549. },
  550. {
  551. "name": "business_development_dept",
  552. "module": "core",
  553. "action": "setvalue",
  554. "options": {
  555. "key": "g_business_development_dept",
  556. "value": "{{roles.where('id', '==', 9).count()>0}}"
  557. },
  558. "meta": [
  559. {
  560. "name": "id",
  561. "type": "number"
  562. },
  563. {
  564. "name": "name",
  565. "type": "text"
  566. },
  567. {
  568. "name": "isDepartment",
  569. "type": "boolean"
  570. }
  571. ],
  572. "outputType": "text",
  573. "output": true
  574. },
  575. {
  576. "name": "",
  577. "module": "core",
  578. "action": "condition",
  579. "options": {
  580. "if": "{{!validated}}",
  581. "then": {
  582. "steps": {
  583. "name": "Forbidden",
  584. "module": "core",
  585. "action": "response",
  586. "options": {
  587. "status": 403,
  588. "data": "Unvalidated"
  589. }
  590. }
  591. }
  592. },
  593. "outputType": "boolean"
  594. },
  595. {
  596. "name": "",
  597. "module": "core",
  598. "action": "condition",
  599. "options": {
  600. "if": "{{!associate&&!administrator&&!manager&&!lead}}",
  601. "then": {
  602. "steps": {
  603. "name": "Unauthorized",
  604. "module": "core",
  605. "action": "response",
  606. "options": {
  607. "status": 401,
  608. "data": "Not the correct role"
  609. }
  610. }
  611. }
  612. },
  613. "outputType": "boolean"
  614. }
  615. ]
  616. }
  617. }