@cronapp/templates 2.9.6-SP.4 → 2.9.6-SP.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/$global/data-layer/ENTITIES.ftl +6 -1
- package/file/crud/angular_crud_view/__FileName__.view.html.ftl +1 -1
- package/package.json +1 -1
- package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/www-autenticacao/bower.json +2 -1
- package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/www-autenticacao/views/logged/user.view.html +1 -8
- package/project/W/cronapp-rad-project/Dockerfile +2 -2
- package/project/W/cronapp-rad-project/diagram/app.umlcd +150 -0
- package/project/W/cronapp-rad-project/diagram/app.umlcd.ftl +150 -0
- package/project/W/cronapp-rad-project/src/main/java/META-INF/persistence.xml.ftl +1 -0
- package/project/W/cronapp-rad-project/src/main/java/app/dao/InvalidatedTokenDAO.java +24 -0
- package/project/W/cronapp-rad-project/src/main/java/app/dao/__copydata.ftl +2 -0
- package/project/W/cronapp-rad-project/src/main/java/app/entity/InvalidatedToken.java +113 -0
- package/project/W/cronapp-rad-project/src/main/java/app/entity/__copydata.ftl +2 -0
- package/project/W/cronapp-rad-project/src/main/java/app/populate.json.ftl +1 -1
- package/project/W/cronapp-rad-project/src/main/java/i18n/Messages_en_US.properties +2 -1
- package/project/W/cronapp-rad-project/src/main/java/i18n/Messages_pt_BR.properties +1 -0
- package/project/W/cronapp-rad-project/src/main/resources/__copydata.ftl +1 -1
- package/project/W/cronapp-rad-project/src/main/resources/templates/__copydata.ftl +4 -0
- package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/views/logged/home.view.html.ftl +4 -5
- package/templates/low-code/data-layer/ENTITIES.ftl +9 -0
|
@@ -10,7 +10,9 @@ import ${import};
|
|
|
10
10
|
<#if (clazz.multitenantClass)>
|
|
11
11
|
import org.eclipse.persistence.annotations.*;
|
|
12
12
|
</#if>
|
|
13
|
-
|
|
13
|
+
<#if clazz.hasNotEmpty()>
|
|
14
|
+
import javax.validation.constraints.NotEmpty;
|
|
15
|
+
</#if>
|
|
14
16
|
/**
|
|
15
17
|
* Classe que representa a tabela <#if tableName??>${tableName}<#else>${clazz.name?upper_case}</#if>
|
|
16
18
|
* @generated
|
|
@@ -96,6 +98,9 @@ public class ${clazz.name} implements Serializable {
|
|
|
96
98
|
@Column(name = "${field.dbFieldName}"<#if !field.primaryKey>, nullable = ${field.nullable?c}, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c})
|
|
97
99
|
</#if>
|
|
98
100
|
</#if>
|
|
101
|
+
<#if !field.isNotEmpty()>
|
|
102
|
+
@NotEmpty(message="Não permite vazio.")
|
|
103
|
+
</#if>
|
|
99
104
|
<#if (field.ignore)>
|
|
100
105
|
@JsonIgnore
|
|
101
106
|
</#if>
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
|
|
303
303
|
<datasource data-component="crn-datasource" name="${dataSourceCombo}" entity="${model.namespace}.${relationClassName}" keys="${keyField}" schema="${model.getDSSchema(field.fullType)}" lazy=true></datasource>
|
|
304
304
|
<div data-component="crn-enterprise-dynamic-combobox" id="modal-combo${field.getName()}-${model.random}" class="component-holder ng-binding ng-scope">
|
|
305
|
-
<div class="form-group">
|
|
305
|
+
<div class="form-group" id="combobox-modal-${field.getName()}${model.random}">
|
|
306
306
|
<label for="combobox-modal-${field.getName()}${model.random}" class=""><#if field.label?has_content>${field.label}<#else>${field.name?capitalize}</#if></label>
|
|
307
307
|
<cron-dynamic-select
|
|
308
308
|
id="combobox-modal-${field.getName()}${model.random}"
|
package/package.json
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"cronapp-framework-mobile-js": "3ed025ee788da6337bac26ed7af6019d7d0a470b",
|
|
27
27
|
"cronapp-common-js": "b62115b1a7f134ecde300d8ebd510ccd5b054e55",
|
|
28
|
-
"cronapi-js": "1744f41b61238494e7a014da822c2f98318076fb"
|
|
28
|
+
"cronapi-js": "1744f41b61238494e7a014da822c2f98318076fb",
|
|
29
|
+
"cronapp-lib-js": "694018c4f5de9f0677a105e2821a97ebab4dfdff"
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -16,13 +16,6 @@
|
|
|
16
16
|
<h1 class="title" align-title="text-align: center;" style="text-align: center;">
|
|
17
17
|
{{"Home.view.Users" | translate}}</h1>
|
|
18
18
|
<div side="right" class="buttons buttons-right header-item" data-component="crn-header-button">
|
|
19
|
-
<button aria-labelledby="right_plus_sr" class="button button-clear"
|
|
20
|
-
ng-if="!User.inserting && !User.editing"
|
|
21
|
-
ng-click="User.startInserting()" data-component="crn-button"
|
|
22
|
-
xattr-type="button-clear">
|
|
23
|
-
<i class="icon ion-ios-plus-empty"></i>
|
|
24
|
-
<span id="right_plus_sr" class="sr-only">{{'Accessibility.Button.Aria.Label.Add' | translate}}</span>
|
|
25
|
-
</button>
|
|
26
19
|
<button aria-labelledby="right_checkmark_sr" class="button button-clear"
|
|
27
20
|
ng-if="User.inserting || User.editing"
|
|
28
21
|
ng-click="User.post()" data-component="crn-button" xattr-type="button-clear">
|
|
@@ -63,7 +56,7 @@
|
|
|
63
56
|
<div class="item item-input item-stacked-label general-dynamic-image component-holder" quality="60" data-component="crn-dynamic-image" id="crn-dynamic-image-218116" ng-model="User.active.picture">
|
|
64
57
|
<label class="input-label">{{'Users.view.Picture' | translate}}</label>
|
|
65
58
|
<div class="form-group">
|
|
66
|
-
<div dynamic-image="" alt="Dynamic Image Aria Label Text" ng-model="
|
|
59
|
+
<div dynamic-image="" alt="Dynamic Image Aria Label Text" ng-model="User.active.picture" max-file-size="5MB" target-width="640" target-height="480" class="dynamic-image-container" ng-required="false" allow-edit="false">
|
|
67
60
|
{{"template.crud.clickToAddImage" | translate}}
|
|
68
61
|
</div>
|
|
69
62
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
## Consulte a documentação do Docker em https://docs.cronapp.io para informações sobre o conteúdo desse arquivo.
|
|
2
2
|
|
|
3
|
-
FROM
|
|
4
|
-
RUN
|
|
3
|
+
FROM ubuntu:18.04 AS maven_builder
|
|
4
|
+
RUN apt update && apt install -y maven openjdk-11-jdk npm git bash
|
|
5
5
|
WORKDIR /app
|
|
6
6
|
ADD pom.xml /app/pom.xml
|
|
7
7
|
RUN git config --global url."https://".insteadOf git://
|
|
@@ -1099,6 +1099,156 @@
|
|
|
1099
1099
|
"type": "uml.Class",
|
|
1100
1100
|
"z": 13
|
|
1101
1101
|
},
|
|
1102
|
+
{
|
|
1103
|
+
"angle": 0,
|
|
1104
|
+
"attributes": [
|
|
1105
|
+
"id:java.lang.String",
|
|
1106
|
+
"expirationDate:java.sql.Timestamp"
|
|
1107
|
+
],
|
|
1108
|
+
"attrs": {
|
|
1109
|
+
".uml-class-attrs-rect": {
|
|
1110
|
+
"fill": "#F0F0F0",
|
|
1111
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1112
|
+
"height": 60,
|
|
1113
|
+
"stroke": "#C2C2C2",
|
|
1114
|
+
"transform": "translate(0,40)"
|
|
1115
|
+
},
|
|
1116
|
+
".uml-class-attrs-text": {
|
|
1117
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1118
|
+
"font-size": 11,
|
|
1119
|
+
"text": "* id\nexpirationDate\n"
|
|
1120
|
+
},
|
|
1121
|
+
".uml-class-attrs-value": {
|
|
1122
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1123
|
+
"font-size": 11,
|
|
1124
|
+
"ref-x": 121,
|
|
1125
|
+
"text": "Texto\nCarimbo de Data e Hora\n"
|
|
1126
|
+
},
|
|
1127
|
+
".uml-class-methods-rect": {
|
|
1128
|
+
"fill": "#F0F0F0",
|
|
1129
|
+
"height": 20,
|
|
1130
|
+
"stroke": "#C2C2C2",
|
|
1131
|
+
"stroke-width": 1,
|
|
1132
|
+
"transform": "translate(0,100)"
|
|
1133
|
+
},
|
|
1134
|
+
".uml-class-methods-text": {
|
|
1135
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1136
|
+
"font-size": 11,
|
|
1137
|
+
"text": ""
|
|
1138
|
+
},
|
|
1139
|
+
".uml-class-name-rect": {
|
|
1140
|
+
"fill": "#F0F0F0",
|
|
1141
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1142
|
+
"height": 40,
|
|
1143
|
+
"stroke": "#C2C2C2",
|
|
1144
|
+
"transform": "translate(0,0)"
|
|
1145
|
+
},
|
|
1146
|
+
".uml-class-name-text": {
|
|
1147
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1148
|
+
"text": "InvalidatedToken"
|
|
1149
|
+
}
|
|
1150
|
+
},
|
|
1151
|
+
"audit": false,
|
|
1152
|
+
"fields": [
|
|
1153
|
+
{
|
|
1154
|
+
"name": "id",
|
|
1155
|
+
"type": "java.lang.String",
|
|
1156
|
+
"dbName": "id",
|
|
1157
|
+
"dbLength": "",
|
|
1158
|
+
"dbPrecision": "",
|
|
1159
|
+
"dbScale": "",
|
|
1160
|
+
"dbDefaultValue": "UUID.randomUUID().toString().toUpperCase()",
|
|
1161
|
+
"label": "{{\u0027Id\u0027 | translate}}",
|
|
1162
|
+
"mask": "",
|
|
1163
|
+
"isPrimaryKey": true,
|
|
1164
|
+
"isUniqueKey": false,
|
|
1165
|
+
"isNullable": false,
|
|
1166
|
+
"pkType": "UUID",
|
|
1167
|
+
"multitenantContext": "",
|
|
1168
|
+
"jsonIgnore": false,
|
|
1169
|
+
"isTransient": false,
|
|
1170
|
+
"isInsertable": true,
|
|
1171
|
+
"isUpdatable": true,
|
|
1172
|
+
"isEncryption": false,
|
|
1173
|
+
"passwordPolicy": "none",
|
|
1174
|
+
"referencedColumnName": "",
|
|
1175
|
+
"isSearchable": false,
|
|
1176
|
+
"sequence": "",
|
|
1177
|
+
"isCascade": false,
|
|
1178
|
+
"isVersion": false,
|
|
1179
|
+
"storageId": "",
|
|
1180
|
+
"storageKey": "",
|
|
1181
|
+
"storageType": "",
|
|
1182
|
+
"storageSecret": "",
|
|
1183
|
+
"foreignKeyName": "",
|
|
1184
|
+
"joins": "",
|
|
1185
|
+
"isIndex": false,
|
|
1186
|
+
"useOuterJoin": false,
|
|
1187
|
+
"regionAWS": ""
|
|
1188
|
+
},
|
|
1189
|
+
{
|
|
1190
|
+
"name": "expirationDate",
|
|
1191
|
+
"type": "java.sql.Timestamp",
|
|
1192
|
+
"dbName": "expiration_date",
|
|
1193
|
+
"dbLength": "",
|
|
1194
|
+
"dbPrecision": "",
|
|
1195
|
+
"dbScale": "",
|
|
1196
|
+
"dbDefaultValue": "",
|
|
1197
|
+
"label": "{{\u0027ExpirationDate\u0027 | translate}}",
|
|
1198
|
+
"mask": "",
|
|
1199
|
+
"isPrimaryKey": false,
|
|
1200
|
+
"isUniqueKey": false,
|
|
1201
|
+
"isNullable": true,
|
|
1202
|
+
"pkType": "",
|
|
1203
|
+
"multitenantContext": "",
|
|
1204
|
+
"jsonIgnore": false,
|
|
1205
|
+
"isTransient": false,
|
|
1206
|
+
"isInsertable": true,
|
|
1207
|
+
"isUpdatable": true,
|
|
1208
|
+
"isEncryption": false,
|
|
1209
|
+
"passwordPolicy": "none",
|
|
1210
|
+
"referencedColumnName": "",
|
|
1211
|
+
"isSearchable": false,
|
|
1212
|
+
"sequence": "",
|
|
1213
|
+
"isCascade": false,
|
|
1214
|
+
"isVersion": false,
|
|
1215
|
+
"storageId": "",
|
|
1216
|
+
"storageKey": "",
|
|
1217
|
+
"storageType": "",
|
|
1218
|
+
"storageSecret": "",
|
|
1219
|
+
"foreignKeyName": "",
|
|
1220
|
+
"joins": "",
|
|
1221
|
+
"isIndex": false,
|
|
1222
|
+
"useOuterJoin": false,
|
|
1223
|
+
"regionAWS": ""
|
|
1224
|
+
}
|
|
1225
|
+
],
|
|
1226
|
+
"generateView": "Auto",
|
|
1227
|
+
"id": "79a9aae4-09b4-4f9a-8712-b78ad5a08e3e",
|
|
1228
|
+
"isRest": "true",
|
|
1229
|
+
"methods": [],
|
|
1230
|
+
"modelType": "Table",
|
|
1231
|
+
"name": "InvalidatedToken",
|
|
1232
|
+
"position": {
|
|
1233
|
+
"x": 1150,
|
|
1234
|
+
"y": 566
|
|
1235
|
+
},
|
|
1236
|
+
"queries": [],
|
|
1237
|
+
"realName": "",
|
|
1238
|
+
"restSecurity": null,
|
|
1239
|
+
"role": "Class",
|
|
1240
|
+
"runtimeClass": "cronos.widgets.joint.uml.Class",
|
|
1241
|
+
"size": {
|
|
1242
|
+
"height": 120,
|
|
1243
|
+
"width": 261
|
|
1244
|
+
},
|
|
1245
|
+
"swagger": false,
|
|
1246
|
+
"tableName": "INVALIDATED_TOKEN",
|
|
1247
|
+
"tableScheme": null,
|
|
1248
|
+
"type": "uml.Class",
|
|
1249
|
+
"usePhysicalNames": false,
|
|
1250
|
+
"z": 24
|
|
1251
|
+
},
|
|
1102
1252
|
{
|
|
1103
1253
|
"angle": 0,
|
|
1104
1254
|
"attributes": [
|
|
@@ -723,6 +723,156 @@
|
|
|
723
723
|
"type": "uml.Class",
|
|
724
724
|
"z": 13
|
|
725
725
|
},
|
|
726
|
+
{
|
|
727
|
+
"angle": 0,
|
|
728
|
+
"attributes": [
|
|
729
|
+
"id:java.lang.String",
|
|
730
|
+
"expirationDate:java.sql.Timestamp"
|
|
731
|
+
],
|
|
732
|
+
"attrs": {
|
|
733
|
+
".uml-class-attrs-rect": {
|
|
734
|
+
"fill": "#F0F0F0",
|
|
735
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
736
|
+
"height": 60,
|
|
737
|
+
"stroke": "#C2C2C2",
|
|
738
|
+
"transform": "translate(0,40)"
|
|
739
|
+
},
|
|
740
|
+
".uml-class-attrs-text": {
|
|
741
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
742
|
+
"font-size": 11,
|
|
743
|
+
"text": "* id\nexpirationDate\n"
|
|
744
|
+
},
|
|
745
|
+
".uml-class-attrs-value": {
|
|
746
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
747
|
+
"font-size": 11,
|
|
748
|
+
"ref-x": 121,
|
|
749
|
+
"text": "Texto\nCarimbo de Data e Hora\n"
|
|
750
|
+
},
|
|
751
|
+
".uml-class-methods-rect": {
|
|
752
|
+
"fill": "#F0F0F0",
|
|
753
|
+
"height": 20,
|
|
754
|
+
"stroke": "#C2C2C2",
|
|
755
|
+
"stroke-width": 1,
|
|
756
|
+
"transform": "translate(0,100)"
|
|
757
|
+
},
|
|
758
|
+
".uml-class-methods-text": {
|
|
759
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
760
|
+
"font-size": 11,
|
|
761
|
+
"text": ""
|
|
762
|
+
},
|
|
763
|
+
".uml-class-name-rect": {
|
|
764
|
+
"fill": "#F0F0F0",
|
|
765
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
766
|
+
"height": 40,
|
|
767
|
+
"stroke": "#C2C2C2",
|
|
768
|
+
"transform": "translate(0,0)"
|
|
769
|
+
},
|
|
770
|
+
".uml-class-name-text": {
|
|
771
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
772
|
+
"text": "InvalidatedToken"
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
"audit": false,
|
|
776
|
+
"fields": [
|
|
777
|
+
{
|
|
778
|
+
"name": "id",
|
|
779
|
+
"type": "java.lang.String",
|
|
780
|
+
"dbName": "id",
|
|
781
|
+
"dbLength": "",
|
|
782
|
+
"dbPrecision": "",
|
|
783
|
+
"dbScale": "",
|
|
784
|
+
"dbDefaultValue": "UUID.randomUUID().toString().toUpperCase()",
|
|
785
|
+
"label": "{{\u0027Id\u0027 | translate}}",
|
|
786
|
+
"mask": "",
|
|
787
|
+
"isPrimaryKey": true,
|
|
788
|
+
"isUniqueKey": false,
|
|
789
|
+
"isNullable": false,
|
|
790
|
+
"pkType": "UUID",
|
|
791
|
+
"multitenantContext": "",
|
|
792
|
+
"jsonIgnore": false,
|
|
793
|
+
"isTransient": false,
|
|
794
|
+
"isInsertable": true,
|
|
795
|
+
"isUpdatable": true,
|
|
796
|
+
"isEncryption": false,
|
|
797
|
+
"passwordPolicy": "none",
|
|
798
|
+
"referencedColumnName": "",
|
|
799
|
+
"isSearchable": false,
|
|
800
|
+
"sequence": "",
|
|
801
|
+
"isCascade": false,
|
|
802
|
+
"isVersion": false,
|
|
803
|
+
"storageId": "",
|
|
804
|
+
"storageKey": "",
|
|
805
|
+
"storageType": "",
|
|
806
|
+
"storageSecret": "",
|
|
807
|
+
"foreignKeyName": "",
|
|
808
|
+
"joins": "",
|
|
809
|
+
"isIndex": false,
|
|
810
|
+
"useOuterJoin": false,
|
|
811
|
+
"regionAWS": ""
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
"name": "expirationDate",
|
|
815
|
+
"type": "java.sql.Timestamp",
|
|
816
|
+
"dbName": "expiration_date",
|
|
817
|
+
"dbLength": "",
|
|
818
|
+
"dbPrecision": "",
|
|
819
|
+
"dbScale": "",
|
|
820
|
+
"dbDefaultValue": "",
|
|
821
|
+
"label": "{{\u0027ExpirationDate\u0027 | translate}}",
|
|
822
|
+
"mask": "",
|
|
823
|
+
"isPrimaryKey": false,
|
|
824
|
+
"isUniqueKey": false,
|
|
825
|
+
"isNullable": true,
|
|
826
|
+
"pkType": "",
|
|
827
|
+
"multitenantContext": "",
|
|
828
|
+
"jsonIgnore": false,
|
|
829
|
+
"isTransient": false,
|
|
830
|
+
"isInsertable": true,
|
|
831
|
+
"isUpdatable": true,
|
|
832
|
+
"isEncryption": false,
|
|
833
|
+
"passwordPolicy": "none",
|
|
834
|
+
"referencedColumnName": "",
|
|
835
|
+
"isSearchable": false,
|
|
836
|
+
"sequence": "",
|
|
837
|
+
"isCascade": false,
|
|
838
|
+
"isVersion": false,
|
|
839
|
+
"storageId": "",
|
|
840
|
+
"storageKey": "",
|
|
841
|
+
"storageType": "",
|
|
842
|
+
"storageSecret": "",
|
|
843
|
+
"foreignKeyName": "",
|
|
844
|
+
"joins": "",
|
|
845
|
+
"isIndex": false,
|
|
846
|
+
"useOuterJoin": false,
|
|
847
|
+
"regionAWS": ""
|
|
848
|
+
}
|
|
849
|
+
],
|
|
850
|
+
"generateView": "Auto",
|
|
851
|
+
"id": "79a9aae4-09b4-4f9a-8712-b78ad5a08e3e",
|
|
852
|
+
"isRest": "true",
|
|
853
|
+
"methods": [],
|
|
854
|
+
"modelType": "Table",
|
|
855
|
+
"name": "InvalidatedToken",
|
|
856
|
+
"position": {
|
|
857
|
+
"x": 1150,
|
|
858
|
+
"y": 566
|
|
859
|
+
},
|
|
860
|
+
"queries": [],
|
|
861
|
+
"realName": "",
|
|
862
|
+
"restSecurity": null,
|
|
863
|
+
"role": "Class",
|
|
864
|
+
"runtimeClass": "cronos.widgets.joint.uml.Class",
|
|
865
|
+
"size": {
|
|
866
|
+
"height": 120,
|
|
867
|
+
"width": 261
|
|
868
|
+
},
|
|
869
|
+
"swagger": false,
|
|
870
|
+
"tableName": "INVALIDATED_TOKEN",
|
|
871
|
+
"tableScheme": null,
|
|
872
|
+
"type": "uml.Class",
|
|
873
|
+
"usePhysicalNames": false,
|
|
874
|
+
"z": 24
|
|
875
|
+
},
|
|
726
876
|
{
|
|
727
877
|
"angle": 0,
|
|
728
878
|
"attributes": [
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
<class>app.entity.Device</class>
|
|
8
8
|
<#if (authentication??) >
|
|
9
9
|
<#if ((authentication?lower_case) != "nenhuma") && !(service!"false")?boolean>
|
|
10
|
+
<class>app.entity.InvalidatedToken</class>
|
|
10
11
|
<class>app.entity.RoleSecurable</class>
|
|
11
12
|
<class>app.entity.Securable</class>
|
|
12
13
|
<class>app.entity.UserSecurable</class>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package app.dao;
|
|
2
|
+
|
|
3
|
+
import app.entity.*;
|
|
4
|
+
import java.util.*;
|
|
5
|
+
import org.springframework.stereotype.*;
|
|
6
|
+
import org.springframework.data.jpa.repository.*;
|
|
7
|
+
import org.springframework.data.domain.*;
|
|
8
|
+
import org.springframework.data.repository.query.*;
|
|
9
|
+
import org.springframework.transaction.annotation.*;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Realiza operação de Create, Read, Update e Delete no banco de dados.
|
|
14
|
+
* Os métodos de create, edit, delete e outros estão abstraídos no JpaRepository
|
|
15
|
+
*
|
|
16
|
+
* @see org.springframework.data.jpa.repository.JpaRepository
|
|
17
|
+
*
|
|
18
|
+
* @generated
|
|
19
|
+
*/
|
|
20
|
+
@Repository("app-InvalidatedTokenDAO")
|
|
21
|
+
@Transactional(transactionManager="app-TransactionManager")
|
|
22
|
+
public interface InvalidatedTokenDAO extends JpaRepository<InvalidatedToken, java.lang.String> {
|
|
23
|
+
|
|
24
|
+
}
|
|
@@ -8,6 +8,7 @@ file=ApplicationDAO.java
|
|
|
8
8
|
file=ApplicationUserDAO.java
|
|
9
9
|
file=AuditLogDAO.java
|
|
10
10
|
file=DeviceDAO.java
|
|
11
|
+
file=InvalidatedTokenDAO.java
|
|
11
12
|
file=LoginDAO.java
|
|
12
13
|
file=RoleDAO.java
|
|
13
14
|
file=RoleSecurableDAO.java
|
|
@@ -23,6 +24,7 @@ file=ApplicationDAO.java
|
|
|
23
24
|
file=ApplicationUserDAO.java
|
|
24
25
|
file=AuditLogDAO.java
|
|
25
26
|
file=DeviceDAO.java
|
|
27
|
+
file=InvalidatedTokenDAO.java
|
|
26
28
|
file=LoginDAO.java
|
|
27
29
|
file=RoleDAO.java
|
|
28
30
|
file=RoleSecurableDAO.java
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
|
|
2
|
+
package app.entity;
|
|
3
|
+
|
|
4
|
+
import java.io.*;
|
|
5
|
+
import javax.persistence.*;
|
|
6
|
+
import java.util.*;
|
|
7
|
+
import javax.xml.bind.annotation.*;
|
|
8
|
+
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
9
|
+
import com.fasterxml.jackson.annotation.JsonFilter;
|
|
10
|
+
import cronapi.rest.security.CronappSecurity;
|
|
11
|
+
import cronapi.swagger.CronappSwagger;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Classe que representa a tabela INVALIDATED_TOKEN
|
|
16
|
+
* @generated
|
|
17
|
+
*/
|
|
18
|
+
@javax.persistence.Entity
|
|
19
|
+
@javax.persistence.Table(name = "\"INVALIDATED_TOKEN\"")
|
|
20
|
+
@XmlRootElement
|
|
21
|
+
@CronappSecurity
|
|
22
|
+
@JsonFilter("app.entity.InvalidatedToken")
|
|
23
|
+
public class InvalidatedToken implements Serializable {
|
|
24
|
+
/**
|
|
25
|
+
* UID da classe, necessário na serialização
|
|
26
|
+
* @generated
|
|
27
|
+
*/
|
|
28
|
+
private static final long serialVersionUID = 1L;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @generated
|
|
32
|
+
*/
|
|
33
|
+
@Id
|
|
34
|
+
@Column(name = "id", nullable = false, insertable=true, updatable=true)
|
|
35
|
+
private java.lang.String id = UUID.randomUUID().toString().toUpperCase();
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @generated
|
|
40
|
+
*/
|
|
41
|
+
@Temporal(TemporalType.TIMESTAMP)
|
|
42
|
+
@Column(name = "expiration_date", nullable = true, unique = false, insertable=true, updatable=true, columnDefinition = "TIMESTAMP")
|
|
43
|
+
|
|
44
|
+
private java.util.Date expirationDate;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Construtor
|
|
49
|
+
* @generated
|
|
50
|
+
*/
|
|
51
|
+
public InvalidatedToken(){
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Obtém id
|
|
56
|
+
* return id
|
|
57
|
+
* @generated
|
|
58
|
+
*/
|
|
59
|
+
public java.lang.String getId() {
|
|
60
|
+
return this.id;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Define id
|
|
65
|
+
* @param id id
|
|
66
|
+
* @generated
|
|
67
|
+
*/
|
|
68
|
+
public InvalidatedToken setId(java.lang.String id) {
|
|
69
|
+
this.id = id;
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Obtém expirationDate
|
|
74
|
+
* return expirationDate
|
|
75
|
+
* @generated
|
|
76
|
+
*/
|
|
77
|
+
public java.util.Date getExpirationDate() {
|
|
78
|
+
return this.expirationDate;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Define expirationDate
|
|
83
|
+
* @param expirationDate expirationDate
|
|
84
|
+
* @generated
|
|
85
|
+
*/
|
|
86
|
+
public InvalidatedToken setExpirationDate(java.util.Date expirationDate) {
|
|
87
|
+
this.expirationDate = expirationDate;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @generated
|
|
93
|
+
*/
|
|
94
|
+
@Override
|
|
95
|
+
public boolean equals(Object obj) {
|
|
96
|
+
if (this == obj) return true;
|
|
97
|
+
if (obj == null || getClass() != obj.getClass()) return false;
|
|
98
|
+
InvalidatedToken object = (InvalidatedToken)obj;
|
|
99
|
+
if (id != null ? !id.equals(object.id) : object.id != null) return false;
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @generated
|
|
105
|
+
*/
|
|
106
|
+
@Override
|
|
107
|
+
public int hashCode() {
|
|
108
|
+
int result = 1;
|
|
109
|
+
result = 31 * result + ((id == null) ? 0 : id.hashCode());
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
@@ -8,6 +8,7 @@ file=Application.java
|
|
|
8
8
|
file=ApplicationUser.java
|
|
9
9
|
file=AuditLog.java
|
|
10
10
|
file=Device.java
|
|
11
|
+
file=InvalidatedToken.java
|
|
11
12
|
file=Login.java
|
|
12
13
|
file=Role.java
|
|
13
14
|
file=RoleSecurable.java
|
|
@@ -23,6 +24,7 @@ file=Application.java
|
|
|
23
24
|
file=ApplicationUser.java
|
|
24
25
|
file=AuditLog.java
|
|
25
26
|
file=Device.java
|
|
27
|
+
file=InvalidatedToken.java
|
|
26
28
|
file=Login.java
|
|
27
29
|
file=Role.java
|
|
28
30
|
file=RoleSecurable.java
|
|
@@ -13,6 +13,7 @@ DeleteMethodAllowed=Delete method allowed
|
|
|
13
13
|
Email=Email
|
|
14
14
|
EmailConfirmed=Email confirmed
|
|
15
15
|
Error=Error
|
|
16
|
+
ExpirationDate=Expiration Date
|
|
16
17
|
GetMethodAllowed=Get method allowed
|
|
17
18
|
HeadMethodAllowed=Head method allowed
|
|
18
19
|
Host=Host
|
|
@@ -38,7 +39,7 @@ Picture=Picture
|
|
|
38
39
|
Platform=Platform
|
|
39
40
|
PlatformVersion=Platform version
|
|
40
41
|
PostMethodAllowed=Post method allowed
|
|
41
|
-
ProviderDisplayName=
|
|
42
|
+
ProviderDisplayName=Provider display name
|
|
42
43
|
ProviderKey=Provider Key
|
|
43
44
|
PutMethodAllowed=Put method allowed
|
|
44
45
|
ResetPasswordEmailBody=Your reset password link is
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<div class="component-holder ng-binding ng-scope <#if !(menuPosition??) || menuPosition == "Horizontal">crn-navigator-horizontal<#else>crn-navigator-vertical</#if>"
|
|
2
|
-
<nav class="navbar navbar-default">
|
|
1
|
+
<div class="component-holder ng-binding ng-scope <#if !(menuPosition??) || menuPosition == "Horizontal">crn-navigator-horizontal<#else>crn-navigator-vertical</#if>" id="main-nav-bar" tabindex="-1">
|
|
2
|
+
<nav class="navbar navbar-default ng-scope" data-container="true" data-component="crn-navbar" id="crn-navbar-983334">
|
|
3
3
|
<ul aria-label="{{'DirectAccess' | translate}}" class="main-access" tabindex="-1">
|
|
4
4
|
<li><a crn-anchor="main-view" href="javascript:void(0);" class="main-nav-link" alt="{{'MainContent' | translate}}">{{'MainContent' | translate}}</a> </li>
|
|
5
5
|
<li><a crn-anchor="main-nav-bar" href="javascript:void(0);" class="main-nav-link" alt="{{'MainMenu' | translate}}">{{'MainMenu' | translate}}</a> </li>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar, #navbar2" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
|
|
10
10
|
<a class="component-holder ng-binding ng-scope navbar-brand" data-component="crn-image" ng-click="cronapi.screen.changeView('#/home', [])"> <img alt="{{'Home.view.Home' | translate}}" src="node_modules/cronapp-framework-js/img/cronapp-logo-login.png" id="crn-navbar-logo" data-component="crn-image"> </a>
|
|
11
11
|
</div>
|
|
12
|
-
<div id="navbar" class="navbar-collapse collapse float-left-desktop">
|
|
12
|
+
<div id="navbar" class="navbar-collapse collapse float-left-desktop" >
|
|
13
13
|
<ul class="nav navbar-nav" style="float:none">
|
|
14
14
|
<#if (customMenu??) >
|
|
15
15
|
<#list customMenu?keys as key>
|
|
@@ -26,9 +26,8 @@
|
|
|
26
26
|
</#list>
|
|
27
27
|
</#if>
|
|
28
28
|
<li>
|
|
29
|
-
<cron-dynamic-menu id="crn-dynamic-menu-home" class="component-holder" data-component="crn-dynamic-menu" options="{"escope":"WEB","subMenuOptions":[{"id":"1h85bvnhg7511","name":"Home","title":"{{'Home.view.Home' | translate}}","iconClass":"fa fa-home","action":"cronapi.screen.changeView('#/home', [])","level":1,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]},{"id":"1iynbo1wq8twj","name":"Admin","title":"{{'Home.view.Admin' | translate}}","iconClass":"fa fa-user","security":"visible : Administrators, enabled : Administrators","action":"","level":1,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[{"id":"t4fkwdjzlcmu","name":"Users","title":"{{'Home.view.Users' | translate}}","iconClass":"fa fa-user","security":"visible : Administrators, enabled : Administrators","action":"cronapi.screen.changeView('#/home/admin/user', [])","level":2,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]},{"id":"s4xeikriw2et","name":"AuditLog","title":"{{'AuditLog' | translate}}","iconClass":"fa fa-list-ol","security":"visible : Administrators, enabled : Administrators","action":"cronapi.screen.changeView('#/home/admin/auditlog.search', [])","level":2,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]},{"id":"1jeqhtersh46d","name":"Roles","title":"{{'Home.view.Roles' | translate}}","iconClass":"fa fa-users","security":"visible : Administrators, enabled : Administrators","action":"cronapi.screen.changeView('#/home/admin/role', [])","level":2,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]}]}]}"
|
|
29
|
+
<cron-dynamic-menu id="crn-dynamic-menu-home" class="component-holder" data-component="crn-dynamic-menu" options="{"escope":"WEB","subMenuOptions":[{"id":"1h85bvnhg7511","name":"Home","title":"{{'Home.view.Home' | translate}}","iconClass":"fa fa-home","action":"cronapi.screen.changeView('#/home', [])","level":1,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]},{"id":"1iynbo1wq8twj","name":"Admin","title":"{{'Home.view.Admin' | translate}}","iconClass":"fa fa-user","security":"visible : Administrators, enabled : Administrators","action":"","level":1,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[{"id":"t4fkwdjzlcmu","name":"Users","title":"{{'Home.view.Users' | translate}}","iconClass":"fa fa-user","security":"visible : Administrators, enabled : Administrators","action":"cronapi.screen.changeView('#/home/admin/user', [])","level":2,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]},{"id":"s4xeikriw2et","name":"AuditLog","title":"{{'AuditLog' | translate}}","iconClass":"fa fa-list-ol","security":"visible : Administrators, enabled : Administrators","action":"cronapi.screen.changeView('#/home/admin/auditlog.search', [])","level":2,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]},{"id":"1jeqhtersh46d","name":"Roles","title":"{{'Home.view.Roles' | translate}}","iconClass":"fa fa-users","security":"visible : Administrators, enabled : Administrators","action":"cronapi.screen.changeView('#/home/admin/role', [])","level":2,"textPosition":"left","imagePosition":"left","contentTheme":"light","iconTheme":"light","menuItems":[]}]}]}">Dynamic Menu</cron-dynamic-menu>
|
|
30
30
|
</li>
|
|
31
|
-
|
|
32
31
|
</ul>
|
|
33
32
|
</div>
|
|
34
33
|
<div id="navbar2" class="navbar-collapse collapse">
|
|
@@ -56,6 +56,9 @@ import org.eclipse.persistence.annotations.JoinFetchType;
|
|
|
56
56
|
<#if clazz.hasXML()>
|
|
57
57
|
import cronapi.database.ByteConverter;
|
|
58
58
|
</#if>
|
|
59
|
+
<#if clazz.hasNotEmpty()>
|
|
60
|
+
import javax.validation.constraints.NotEmpty;
|
|
61
|
+
</#if>
|
|
59
62
|
<#assign hasCloudStorage = clazz.hasCloudStorage()>
|
|
60
63
|
<#if hasCloudStorage>
|
|
61
64
|
import cronapi.CronapiCloud;
|
|
@@ -195,6 +198,9 @@ public class ${clazz.name} implements Serializable {
|
|
|
195
198
|
</#if>
|
|
196
199
|
<#if (field.isUUID())!false>
|
|
197
200
|
@Convert("uuid")
|
|
201
|
+
</#if>
|
|
202
|
+
<#if field.isNotEmpty()>
|
|
203
|
+
@NotEmpty
|
|
198
204
|
</#if>
|
|
199
205
|
<#if field.isVersion()>
|
|
200
206
|
@Version
|
|
@@ -242,6 +248,9 @@ public class ${clazz.name} implements Serializable {
|
|
|
242
248
|
</#if>
|
|
243
249
|
<#if (field.isUUID())!false>
|
|
244
250
|
@Convert("uuid")
|
|
251
|
+
</#if>
|
|
252
|
+
<#if field.isNotEmpty()>
|
|
253
|
+
@NotEmpty
|
|
245
254
|
</#if>
|
|
246
255
|
<#if (field.XML)!false>
|
|
247
256
|
@Convert("bytes")
|