mirror of
https://github.com/espocrm/espocrm.git
synced 2026-03-05 17:37:02 +00:00
Compare commits
2454 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b0787474e | ||
|
|
8c87f20374 | ||
|
|
ba35115a48 | ||
|
|
069010d0fe | ||
|
|
fe5878fd99 | ||
|
|
839ceea142 | ||
|
|
9cce9d7347 | ||
|
|
69d0dbbf1c | ||
|
|
68ef9ce4ac | ||
|
|
163cf047e5 | ||
|
|
cc574afd3d | ||
|
|
77d76fe0ee | ||
|
|
e7ab75ec5a | ||
|
|
ff6983c9f3 | ||
|
|
e2673473c5 | ||
|
|
e8bf70ab8e | ||
|
|
f459d5811d | ||
|
|
53bf9b024a | ||
|
|
25aed1a1c4 | ||
|
|
2589801993 | ||
|
|
5f954c22da | ||
|
|
423e2ca544 | ||
|
|
6176b8770f | ||
|
|
8ab7452859 | ||
|
|
07035bf8bf | ||
|
|
9e8df41174 | ||
|
|
64736349f0 | ||
|
|
71f389703d | ||
|
|
02917943b6 | ||
|
|
acf1833d9f | ||
|
|
9c45902213 | ||
|
|
f9674bd60c | ||
|
|
831d840cc5 | ||
|
|
3f6f718cd9 | ||
|
|
c35b5c5aa5 | ||
|
|
0050f44a8a | ||
|
|
f86479afdc | ||
|
|
f4cbb5e56a | ||
|
|
6c8e9b129a | ||
|
|
c033cb171e | ||
|
|
bdf7d56e0c | ||
|
|
3e7326f605 | ||
|
|
61e51bfb31 | ||
|
|
c35d934ba7 | ||
|
|
80fa391daa | ||
|
|
1092b17a13 | ||
|
|
1de6568918 | ||
|
|
ee7c7046ac | ||
|
|
19638dd649 | ||
|
|
df30678484 | ||
|
|
b05697d874 | ||
|
|
91177fc0d2 | ||
|
|
e56c64dba4 | ||
|
|
7ecc0dc6a9 | ||
|
|
808e2f8788 | ||
|
|
7682539114 | ||
|
|
0558739e67 | ||
|
|
552983ca33 | ||
|
|
d328872479 | ||
|
|
6cee542972 | ||
|
|
afb77424d4 | ||
|
|
c7465970bd | ||
|
|
4f6ae321b9 | ||
|
|
b92970992f | ||
|
|
4923984e2d | ||
|
|
071fb20f7b | ||
|
|
3e7d0f23c8 | ||
|
|
268009e5f6 | ||
|
|
573d810d37 | ||
|
|
511b7b0d9d | ||
|
|
3e54b58c8c | ||
|
|
92467afad3 | ||
|
|
a1c6004c4f | ||
|
|
0d8943d86a | ||
|
|
07ca2b6ceb | ||
|
|
e019de24cc | ||
|
|
7b417313a2 | ||
|
|
cb6777d19b | ||
|
|
2790834c62 | ||
|
|
9162b61a3f | ||
|
|
8488afb6f6 | ||
|
|
1b518f4b6f | ||
|
|
92bad5240b | ||
|
|
5f70d1b408 | ||
|
|
0941bd440e | ||
|
|
2fabf4bfe1 | ||
|
|
f9e13e8093 | ||
|
|
d1f0fd4fb8 | ||
|
|
7c9ae7caa4 | ||
|
|
2adcab4417 | ||
|
|
2fd367cd7d | ||
|
|
82c74c23f9 | ||
|
|
9de57ba4b2 | ||
|
|
53d544a6d5 | ||
|
|
5f550f38f9 | ||
|
|
63a1c0be66 | ||
|
|
a43903dfd2 | ||
|
|
ce369c774b | ||
|
|
971543ab02 | ||
|
|
bf8b9a7e16 | ||
|
|
d727cea9ee | ||
|
|
373e05d219 | ||
|
|
8fa5cf4af1 | ||
|
|
776ae3ac9d | ||
|
|
f3d9f93564 | ||
|
|
d32995df9b | ||
|
|
6c8e5b2c92 | ||
|
|
b44e536e35 | ||
|
|
8e9045352d | ||
|
|
97499626db | ||
|
|
65cf99faad | ||
|
|
5719f29262 | ||
|
|
06811d9fcc | ||
|
|
9000dba6fd | ||
|
|
b8734f68da | ||
|
|
a6eb683770 | ||
|
|
00a8c7326d | ||
|
|
8faa5b91e2 | ||
|
|
afeeba80f7 | ||
|
|
b6daa5accb | ||
|
|
7bf5c9ba11 | ||
|
|
2433da0db7 | ||
|
|
b820c880a7 | ||
|
|
c7c31ee73a | ||
|
|
18ec05f63e | ||
|
|
cf42c312cf | ||
|
|
d76bb5677b | ||
|
|
9afaf54dea | ||
|
|
99490fdf4c | ||
|
|
244edbbcac | ||
|
|
2fab584c60 | ||
|
|
9d797ae17a | ||
|
|
15860096d3 | ||
|
|
c0ac579b7f | ||
|
|
50d5280d2c | ||
|
|
b1c5526286 | ||
|
|
384902f349 | ||
|
|
86e75a4d47 | ||
|
|
0401f0cce6 | ||
|
|
5b54f1b579 | ||
|
|
62370b6c8d | ||
|
|
edc9d00be3 | ||
|
|
73d4250daa | ||
|
|
aa052560bf | ||
|
|
b35c2ca97f | ||
|
|
d2946cacfa | ||
|
|
eaaceb74bd | ||
|
|
2138591b72 | ||
|
|
3583b586c2 | ||
|
|
965e5149f3 | ||
|
|
be899bc0e2 | ||
|
|
e23e8854d7 | ||
|
|
2b977e5456 | ||
|
|
1c7f65db1a | ||
|
|
cdda1e0514 | ||
|
|
9fc955d7b5 | ||
|
|
0372374e1f | ||
|
|
c615f0d8db | ||
|
|
f4b9b3fd81 | ||
|
|
da06eb9426 | ||
|
|
2a3f3f2d04 | ||
|
|
19a8535dbe | ||
|
|
363a1c1b06 | ||
|
|
5c2b3f707b | ||
|
|
73f88bc097 | ||
|
|
7ebcc6c71a | ||
|
|
af3baef0cb | ||
|
|
14ea8886f6 | ||
|
|
852977d5db | ||
|
|
4178406453 | ||
|
|
149649be09 | ||
|
|
2a17155f96 | ||
|
|
d9488ba71c | ||
|
|
275c3aa492 | ||
|
|
9f5975eb5b | ||
|
|
a1d5174372 | ||
|
|
547b77423a | ||
|
|
a2c81e5891 | ||
|
|
f1070612b4 | ||
|
|
c5828a9feb | ||
|
|
62b2314ff3 | ||
|
|
dce9c437bf | ||
|
|
e5a012cdc7 | ||
|
|
17f18e36fd | ||
|
|
e99fca0252 | ||
|
|
316a865d02 | ||
|
|
0f6049b36f | ||
|
|
63771d37b3 | ||
|
|
9e50367303 | ||
|
|
71b0dfec04 | ||
|
|
90c692648d | ||
|
|
e968424b9d | ||
|
|
ed77c8758c | ||
|
|
caa536f17a | ||
|
|
7463caf8ee | ||
|
|
d4096b8dfb | ||
|
|
f73e4f2b47 | ||
|
|
fc93a3d029 | ||
|
|
0bcbfdd223 | ||
|
|
6b1f8de16a | ||
|
|
64741be18b | ||
|
|
8ad8a42ecd | ||
|
|
ead2d3829b | ||
|
|
55be65d48c | ||
|
|
ecee6e7477 | ||
|
|
c037870e7e | ||
|
|
e86c4a9b6b | ||
|
|
586e28bd26 | ||
|
|
3ca7cdffcc | ||
|
|
d36dc4bc1c | ||
|
|
ede53970bf | ||
|
|
0348778bc1 | ||
|
|
3e2a3597ad | ||
|
|
1c5afb52b3 | ||
|
|
8601c8fc24 | ||
|
|
5b3b7b583d | ||
|
|
9f0827e478 | ||
|
|
a0858acae3 | ||
|
|
49a49d6103 | ||
|
|
7d9d248ab7 | ||
|
|
acc0b71a7a | ||
|
|
1f3a0bb5dd | ||
|
|
c5611a691f | ||
|
|
72927e34e2 | ||
|
|
6c2a114c47 | ||
|
|
edb5f30ddd | ||
|
|
94881de082 | ||
|
|
ce0baf450e | ||
|
|
3854141292 | ||
|
|
152bc76e57 | ||
|
|
6d01717f7e | ||
|
|
b026ff8066 | ||
|
|
f9270a20d4 | ||
|
|
5196343479 | ||
|
|
3606051b91 | ||
|
|
3fc4b487b3 | ||
|
|
692e0b43e3 | ||
|
|
c273e26cf9 | ||
|
|
a26a48fac7 | ||
|
|
2a42ab8db5 | ||
|
|
16d66aa642 | ||
|
|
85d167aad4 | ||
|
|
cbec1cbbe5 | ||
|
|
1509f8d18f | ||
|
|
e6d618f142 | ||
|
|
455c51e806 | ||
|
|
d9f553d47f | ||
|
|
5dc08ecf05 | ||
|
|
2d791010dc | ||
|
|
cc8e2511e0 | ||
|
|
92b0af358e | ||
|
|
9526614a3d | ||
|
|
9fca726329 | ||
|
|
83a9f53fe3 | ||
|
|
da27b68312 | ||
|
|
d2e90f7853 | ||
|
|
0f7cd11ffe | ||
|
|
b006349528 | ||
|
|
f03637ac64 | ||
|
|
e0909af3fe | ||
|
|
1ed38e28cd | ||
|
|
567db6b204 | ||
|
|
04689b8ed0 | ||
|
|
c007010a73 | ||
|
|
498dd5478b | ||
|
|
4e9e71b1bb | ||
|
|
06771f2f3e | ||
|
|
bafe2dd471 | ||
|
|
4591d8f634 | ||
|
|
f1e42f931b | ||
|
|
8cf31f17cb | ||
|
|
40c8d0063d | ||
|
|
157f03b38f | ||
|
|
ffa5cf44ea | ||
|
|
cc88ab9290 | ||
|
|
1a179c2373 | ||
|
|
066f815d0c | ||
|
|
8078043f3c | ||
|
|
06de056bb5 | ||
|
|
630bdd7885 | ||
|
|
847440ad6c | ||
|
|
0271deddde | ||
|
|
65a385dfcf | ||
|
|
71dd872618 | ||
|
|
8025c1e101 | ||
|
|
fe15332531 | ||
|
|
508699d0aa | ||
|
|
0465f826f1 | ||
|
|
f78d38d592 | ||
|
|
db7142e4f9 | ||
|
|
e1b4fd6bdb | ||
|
|
483ffb91fa | ||
|
|
76a5721c72 | ||
|
|
27c5bec755 | ||
|
|
8e3016e301 | ||
|
|
d93f08b18e | ||
|
|
701abe129b | ||
|
|
e585ef0a0d | ||
|
|
beaafccd2a | ||
|
|
cad2e0078a | ||
|
|
3dc35d0f16 | ||
|
|
2d73c62936 | ||
|
|
dad5c3724e | ||
|
|
d0f3373515 | ||
|
|
bbe578ce0a | ||
|
|
51a8a3a302 | ||
|
|
e3d3cae647 | ||
|
|
bfed154feb | ||
|
|
bbe9281cb0 | ||
|
|
b2a6ababd2 | ||
|
|
343ad33a78 | ||
|
|
0a51e27d57 | ||
|
|
dc1dc5de9b | ||
|
|
868aa64e51 | ||
|
|
0a9c0dcb20 | ||
|
|
c1855e84a9 | ||
|
|
4aa4b17c9f | ||
|
|
689d59df2e | ||
|
|
6fd55a6c2d | ||
|
|
ae141c2415 | ||
|
|
ab88abfb5e | ||
|
|
90ab1de10f | ||
|
|
e3bf337a07 | ||
|
|
69329a87db | ||
|
|
663eacb962 | ||
|
|
38ce78fced | ||
|
|
ddf904fa0f | ||
|
|
eba3138d16 | ||
|
|
05227281e7 | ||
|
|
16672722d4 | ||
|
|
7fcc80025c | ||
|
|
da264fcc71 | ||
|
|
2b6bf419a1 | ||
|
|
310f83e9c2 | ||
|
|
45cdae005a | ||
|
|
15b4ce9657 | ||
|
|
665dd2f242 | ||
|
|
ecde690c3a | ||
|
|
90728dfc18 | ||
|
|
d519318804 | ||
|
|
0d8a5ce5a1 | ||
|
|
3dc29b1bae | ||
|
|
0819b69d4a | ||
|
|
8ac3d4e90b | ||
|
|
a577950cc0 | ||
|
|
3cf6edd051 | ||
|
|
5a19b90b13 | ||
|
|
daa3980122 | ||
|
|
bab460c521 | ||
|
|
64b3f55d7a | ||
|
|
ca053b57c5 | ||
|
|
a07f6b032a | ||
|
|
ad0fbb577f | ||
|
|
df55323a04 | ||
|
|
a081237b2e | ||
|
|
b604501eba | ||
|
|
b4368862e0 | ||
|
|
81043740dc | ||
|
|
b6beb39192 | ||
|
|
687f66908d | ||
|
|
a5ef17e06c | ||
|
|
cb8a43da52 | ||
|
|
a575a69704 | ||
|
|
7d6b1d7bcf | ||
|
|
31b875bbdd | ||
|
|
33b0ca8824 | ||
|
|
e7d388f55f | ||
|
|
559ef609e0 | ||
|
|
c382cb0e7b | ||
|
|
3912f937bd | ||
|
|
7222cd6436 | ||
|
|
540c58a564 | ||
|
|
6f7c1f72f6 | ||
|
|
5bf4ab368d | ||
|
|
42645a9bc1 | ||
|
|
5be0f5c71e | ||
|
|
f029675856 | ||
|
|
3a1f5bec0f | ||
|
|
1356e7b9f8 | ||
|
|
ab10b6c036 | ||
|
|
ed0e5112a3 | ||
|
|
46da1bb8a0 | ||
|
|
cd216007af | ||
|
|
bd96cf9e73 | ||
|
|
67c0be5699 | ||
|
|
695dc2eb42 | ||
|
|
516bd037e7 | ||
|
|
f122d3d3bb | ||
|
|
e7b64bcc6f | ||
|
|
3df7349d2b | ||
|
|
47b6471717 | ||
|
|
95280e8f7b | ||
|
|
296f73a407 | ||
|
|
918faa340b | ||
|
|
4526224ae4 | ||
|
|
e35b8e799f | ||
|
|
06fffdf1cf | ||
|
|
ac133fb257 | ||
|
|
2ab3274768 | ||
|
|
b7f22352ed | ||
|
|
7873340616 | ||
|
|
546a0440cd | ||
|
|
9783271a1d | ||
|
|
35ad3177d3 | ||
|
|
06b6be0c9e | ||
|
|
a390d71ef0 | ||
|
|
39dafddb4b | ||
|
|
2706f8681f | ||
|
|
44babbc240 | ||
|
|
2fe1403cdb | ||
|
|
665bfc3649 | ||
|
|
dd3746d435 | ||
|
|
b881c11672 | ||
|
|
2c0370f546 | ||
|
|
6e1b3c64ec | ||
|
|
17c3fe5699 | ||
|
|
8d20ba1ffd | ||
|
|
0d124269f0 | ||
|
|
1fcf326ecc | ||
|
|
76397085a3 | ||
|
|
1b4bdfaa12 | ||
|
|
040e6ddeb7 | ||
|
|
d148b53d52 | ||
|
|
90f125567c | ||
|
|
8cc72d1c7b | ||
|
|
747c1bbf12 | ||
|
|
22b5f89991 | ||
|
|
d19de50f7f | ||
|
|
d1dd39bf5a | ||
|
|
d07f5b8e18 | ||
|
|
9fa9440d7b | ||
|
|
042b3ae66e | ||
|
|
c07004faf4 | ||
|
|
b3905eedf4 | ||
|
|
9cffccbe73 | ||
|
|
43322186b5 | ||
|
|
a0ab01a77f | ||
|
|
d7b9b65990 | ||
|
|
e23a22d259 | ||
|
|
5d946a44f6 | ||
|
|
437f12245e | ||
|
|
b1cefdfbbe | ||
|
|
857ee7fb98 | ||
|
|
3b68d3dd13 | ||
|
|
4125b4f9a0 | ||
|
|
913cad075a | ||
|
|
8a542adb7e | ||
|
|
481f352f5a | ||
|
|
8ce2c7a40b | ||
|
|
8dda7cf2ea | ||
|
|
01eacf875d | ||
|
|
6da9ac6af1 | ||
|
|
418ad2776d | ||
|
|
2a2c07af87 | ||
|
|
ca898cf240 | ||
|
|
05b6f83ba1 | ||
|
|
68ccaf8818 | ||
|
|
162e0ab546 | ||
|
|
4c9df4da1b | ||
|
|
d1c2e82abc | ||
|
|
c054cde199 | ||
|
|
f113905edd | ||
|
|
b4e2b91c31 | ||
|
|
3568345343 | ||
|
|
4f1223e9a0 | ||
|
|
c6a172a6d0 | ||
|
|
1da70019fb | ||
|
|
a84962d96d | ||
|
|
98253fb0a8 | ||
|
|
7887e4c7e3 | ||
|
|
abe383d532 | ||
|
|
a8078c3fc6 | ||
|
|
9fd07d2fab | ||
|
|
f42fbd0098 | ||
|
|
d431699dbe | ||
|
|
9b883d3e59 | ||
|
|
955e53304f | ||
|
|
ed7085e952 | ||
|
|
e274907260 | ||
|
|
96520162d3 | ||
|
|
bb091a0301 | ||
|
|
7253082497 | ||
|
|
0e446c6f08 | ||
|
|
7af208c2a0 | ||
|
|
60e0c03a1e | ||
|
|
89f75bfb37 | ||
|
|
b83a66cf49 | ||
|
|
3cd6deb732 | ||
|
|
59fff4cc80 | ||
|
|
35e7b5c5ee | ||
|
|
e7415a2317 | ||
|
|
69c5af4d97 | ||
|
|
dca1d34685 | ||
|
|
105922b026 | ||
|
|
1dd6ea1bac | ||
|
|
54f1fb27a1 | ||
|
|
27353b1fbf | ||
|
|
afc34a9730 | ||
|
|
5b4e3cbc66 | ||
|
|
5b763b7519 | ||
|
|
fb07cec466 | ||
|
|
04ea13d8e2 | ||
|
|
9208775f34 | ||
|
|
308c480317 | ||
|
|
85af141f9f | ||
|
|
d7a88b382d | ||
|
|
8133682288 | ||
|
|
0b035b89c0 | ||
|
|
d5930542d9 | ||
|
|
831dfc5bfd | ||
|
|
078808604c | ||
|
|
35f8c5652a | ||
|
|
14d8f88985 | ||
|
|
2ae0a118b6 | ||
|
|
1a51759b0f | ||
|
|
acc2eb1a55 | ||
|
|
e513a72504 | ||
|
|
a8fa8bfa00 | ||
|
|
e8473e5ce0 | ||
|
|
5a6583b93b | ||
|
|
977b9adeff | ||
|
|
382ba22cd7 | ||
|
|
03e16b81e5 | ||
|
|
455bb2a298 | ||
|
|
0b19bd4bb5 | ||
|
|
48b0063c69 | ||
|
|
9395fa886e | ||
|
|
a6c95ff0d5 | ||
|
|
0a115a3603 | ||
|
|
fcb3158a06 | ||
|
|
77f60734f6 | ||
|
|
1c10ddd7b8 | ||
|
|
d8dd048a89 | ||
|
|
42812f8bb2 | ||
|
|
b5a9690b63 | ||
|
|
268354f3c6 | ||
|
|
3ca68f2539 | ||
|
|
08f2c5ea72 | ||
|
|
4d1f3d214d | ||
|
|
fab13b3140 | ||
|
|
b741898ce9 | ||
|
|
45ac0f7fee | ||
|
|
406487d50c | ||
|
|
d73608e16b | ||
|
|
8328e8c644 | ||
|
|
b89c28fe96 | ||
|
|
19a96d2e3d | ||
|
|
1c68c805aa | ||
|
|
a823e06f13 | ||
|
|
cef7a919b8 | ||
|
|
3117db022f | ||
|
|
7b642e40b0 | ||
|
|
89ff3dcf15 | ||
|
|
0336b76a96 | ||
|
|
76cac35c54 | ||
|
|
79c8d25a80 | ||
|
|
58d926be82 | ||
|
|
3044f83690 | ||
|
|
f2d5b2685e | ||
|
|
17abe18d01 | ||
|
|
09880ff8f1 | ||
|
|
23f4686577 | ||
|
|
088edbf708 | ||
|
|
e2f6c8abe7 | ||
|
|
f2735e5fbc | ||
|
|
f8106a81c7 | ||
|
|
1d7bce5343 | ||
|
|
224e0e8625 | ||
|
|
d5b3a7d2ea | ||
|
|
bd0be4542e | ||
|
|
e78052ce33 | ||
|
|
24f79b9206 | ||
|
|
df9633503b | ||
|
|
5e1c12f4b1 | ||
|
|
5699c3d15e | ||
|
|
cd88e8ac7a | ||
|
|
3c83e1dcd3 | ||
|
|
d232838676 | ||
|
|
2ae0f48619 | ||
|
|
170782d17f | ||
|
|
2cbdbbf6fb | ||
|
|
0a750f373f | ||
|
|
92ff5e1859 | ||
|
|
cb3257a890 | ||
|
|
9377cd150d | ||
|
|
e1f2fd8094 | ||
|
|
70dcf6ed69 | ||
|
|
6c62dbc604 | ||
|
|
b6807091a5 | ||
|
|
33f3784b3a | ||
|
|
0e9b552796 | ||
|
|
111e1a278c | ||
|
|
34ecdd7533 | ||
|
|
7ec9c1c5ae | ||
|
|
1055fd8a79 | ||
|
|
03102da373 | ||
|
|
23ea8b418a | ||
|
|
9269fa1933 | ||
|
|
5a1a9f17a0 | ||
|
|
c4ca71a7f6 | ||
|
|
991d111ac3 | ||
|
|
7f18fb0cba | ||
|
|
c4d54ffa71 | ||
|
|
1ee2d5c58b | ||
|
|
94d9d0fc38 | ||
|
|
9252905103 | ||
|
|
e9b49a5317 | ||
|
|
9e50337c99 | ||
|
|
07b68d9b7d | ||
|
|
c7d1fc7c35 | ||
|
|
18b5b99854 | ||
|
|
e60d4ba19b | ||
|
|
dcf2b49b19 | ||
|
|
4aecb4a255 | ||
|
|
7cf7f2ffd8 | ||
|
|
a78161799c | ||
|
|
6a37eee973 | ||
|
|
bb5be010f2 | ||
|
|
dcd4e56aa7 | ||
|
|
12f928c192 | ||
|
|
1b47b94154 | ||
|
|
f64f4ea1b1 | ||
|
|
faa33769f1 | ||
|
|
1b0487eeea | ||
|
|
7ffc06065f | ||
|
|
515720afda | ||
|
|
3f1e6a6628 | ||
|
|
a94deb9f33 | ||
|
|
b2d91b3fe9 | ||
|
|
1f7e23af28 | ||
|
|
0275b7fe4d | ||
|
|
d4b25090aa | ||
|
|
7b14e7fb79 | ||
|
|
1d156e6af6 | ||
|
|
b91e40b0e7 | ||
|
|
fab908c313 | ||
|
|
24e5cd67dd | ||
|
|
7297e0eb83 | ||
|
|
81cce0ddb7 | ||
|
|
8232ef3dd2 | ||
|
|
b930180907 | ||
|
|
ef6866773c | ||
|
|
415dc7607e | ||
|
|
726f2abd96 | ||
|
|
894acad7ec | ||
|
|
d9d7de8804 | ||
|
|
dcd0469977 | ||
|
|
434112eff3 | ||
|
|
ace9186691 | ||
|
|
29cc42e2e8 | ||
|
|
3ae6120067 | ||
|
|
377f51a962 | ||
|
|
dc61e630b4 | ||
|
|
d2ec8eda86 | ||
|
|
376de3b6d9 | ||
|
|
82ad0cb5cd | ||
|
|
df9431670a | ||
|
|
e96f4fcedd | ||
|
|
1e96b90e28 | ||
|
|
46897ec3dd | ||
|
|
ffa8248ac1 | ||
|
|
7d90a0c59b | ||
|
|
e33e77cb9e | ||
|
|
f7a7c3bc72 | ||
|
|
c8371bef3f | ||
|
|
7c3f285342 | ||
|
|
ed3a7d64c6 | ||
|
|
00b4569f8e | ||
|
|
41e0b90850 | ||
|
|
4d35bce189 | ||
|
|
e6631ba1d1 | ||
|
|
6bae952947 | ||
|
|
2e550af196 | ||
|
|
95ecc416f1 | ||
|
|
ee3b0cb53d | ||
|
|
bfa0ea53a4 | ||
|
|
2f338d6eda | ||
|
|
6e59165786 | ||
|
|
a5a6c8a0a1 | ||
|
|
cd0c397b07 | ||
|
|
7ba7f8aa14 | ||
|
|
91d0660cba | ||
|
|
e8bbcb2ae4 | ||
|
|
834d1808a1 | ||
|
|
2d264eccb7 | ||
|
|
3ec0fe1e03 | ||
|
|
2f85c5cb3c | ||
|
|
69cd4386f1 | ||
|
|
effb81837f | ||
|
|
d0139ada06 | ||
|
|
2920793e40 | ||
|
|
570f886a1f | ||
|
|
21dab40b43 | ||
|
|
801ccf94c7 | ||
|
|
7114b99cbc | ||
|
|
94c99f298e | ||
|
|
ac37a4c232 | ||
|
|
5ad4f30505 | ||
|
|
b4773ade9b | ||
|
|
63f422f93a | ||
|
|
1134f89a5a | ||
|
|
fe0b1b62d1 | ||
|
|
d549ccb300 | ||
|
|
06d596b5cf | ||
|
|
1091b21306 | ||
|
|
780b66d5b4 | ||
|
|
10982e1b19 | ||
|
|
068375022e | ||
|
|
d6bd701492 | ||
|
|
223b4ab8aa | ||
|
|
6aff357473 | ||
|
|
3ef24bb5ad | ||
|
|
9e60ea2209 | ||
|
|
86904380bb | ||
|
|
9cdef865fe | ||
|
|
1d611720c6 | ||
|
|
7285e058cd | ||
|
|
e44617e276 | ||
|
|
81972e26ff | ||
|
|
5a7a4608c9 | ||
|
|
9161e64932 | ||
|
|
cfd514c5a5 | ||
|
|
b42f4ee256 | ||
|
|
a5a4fbca2f | ||
|
|
a706811338 | ||
|
|
ec120dfd75 | ||
|
|
fe7b19b96d | ||
|
|
ff5e1dac43 | ||
|
|
e73f7e9807 | ||
|
|
15e99e3063 | ||
|
|
4edc909f2a | ||
|
|
d1fe29adbe | ||
|
|
980226c4a2 | ||
|
|
c4c4306ad3 | ||
|
|
10732c0a90 | ||
|
|
ca2c4b3ee4 | ||
|
|
03671efe11 | ||
|
|
748529afac | ||
|
|
1a003e5905 | ||
|
|
d6c66b8b43 | ||
|
|
813bc05e74 | ||
|
|
ef447b400c | ||
|
|
aca823df64 | ||
|
|
0832faa2f2 | ||
|
|
7573bd1f92 | ||
|
|
35eb013c97 | ||
|
|
110f769384 | ||
|
|
6ce7c6ccda | ||
|
|
350141727b | ||
|
|
c63fed50d5 | ||
|
|
24a22328c9 | ||
|
|
0504410ee9 | ||
|
|
3a1bc73692 | ||
|
|
f02ee87344 | ||
|
|
7cdcb375b3 | ||
|
|
52c07987c6 | ||
|
|
11dee6e984 | ||
|
|
036cf4330f | ||
|
|
4fec73307b | ||
|
|
a58047433b | ||
|
|
e004884352 | ||
|
|
8aa7236dd6 | ||
|
|
1f297aa42e | ||
|
|
b5a0848513 | ||
|
|
c2ea9781ee | ||
|
|
93255071ac | ||
|
|
313293b57b | ||
|
|
687ceca26e | ||
|
|
55b1c1511a | ||
|
|
04ccf36966 | ||
|
|
3eba144998 | ||
|
|
e2bd509aeb | ||
|
|
9be5342220 | ||
|
|
e96c1deffe | ||
|
|
aa53bc89b4 | ||
|
|
e57bd13f73 | ||
|
|
00f30e01d5 | ||
|
|
fcb73fb3a8 | ||
|
|
fba82f8697 | ||
|
|
13c8fc15f4 | ||
|
|
3a3cac54a2 | ||
|
|
303860d509 | ||
|
|
ba2a740d38 | ||
|
|
87f4508d1c | ||
|
|
fea79ba8c9 | ||
|
|
734ca9b488 | ||
|
|
c695e64652 | ||
|
|
77218b788a | ||
|
|
e5063c2016 | ||
|
|
a6cfb38433 | ||
|
|
ae657ada61 | ||
|
|
ee8963ace8 | ||
|
|
aca76ae3a6 | ||
|
|
5e3cdc594d | ||
|
|
959fdbab94 | ||
|
|
f19952af12 | ||
|
|
9b3c59bfa4 | ||
|
|
55dd4ecf74 | ||
|
|
bbff632fbc | ||
|
|
4127be7f2f | ||
|
|
3a77ea83a3 | ||
|
|
2bd70eee4b | ||
|
|
0dd34df7d7 | ||
|
|
41c0567a4f | ||
|
|
dcaa1e209e | ||
|
|
f1e67d943d | ||
|
|
70afd19f7f | ||
|
|
7f6ce95fd6 | ||
|
|
035e1ef9eb | ||
|
|
5988642a89 | ||
|
|
4964fbb1b2 | ||
|
|
2ca3aade8c | ||
|
|
878f33929b | ||
|
|
ae340b3279 | ||
|
|
0da0b8974c | ||
|
|
d7804bfa79 | ||
|
|
e451126af7 | ||
|
|
38049d0ef4 | ||
|
|
31e25047cc | ||
|
|
8d105465a3 | ||
|
|
d8c021def2 | ||
|
|
ba08b8a8af | ||
|
|
6974c00d02 | ||
|
|
5446914131 | ||
|
|
68add0bbd7 | ||
|
|
28d0c4dd6e | ||
|
|
a201f61eeb | ||
|
|
0ec428b1ed | ||
|
|
a088ca0875 | ||
|
|
d412766794 | ||
|
|
3cd2a6b74e | ||
|
|
136ae8ae24 | ||
|
|
d80b8ce76b | ||
|
|
392616bdd3 | ||
|
|
4d6387e69d | ||
|
|
eebe244247 | ||
|
|
dbfb1c696f | ||
|
|
2ed620335f | ||
|
|
09efbd175d | ||
|
|
e4c67a4a6f | ||
|
|
e8dd049baf | ||
|
|
4c0f3413f3 | ||
|
|
a052c65b89 | ||
|
|
1bcc81018b | ||
|
|
81ba1b8790 | ||
|
|
ed946a532e | ||
|
|
db34e75d1f | ||
|
|
bcb588b968 | ||
|
|
474e787234 | ||
|
|
691c62f65d | ||
|
|
a3a4d7bf36 | ||
|
|
0bcb9acb02 | ||
|
|
e148b16882 | ||
|
|
3a764fae00 | ||
|
|
f46c2d6079 | ||
|
|
1847132ded | ||
|
|
5765247f9e | ||
|
|
0ef6c7ed55 | ||
|
|
e2e6398026 | ||
|
|
9cd19228a3 | ||
|
|
4268794990 | ||
|
|
de4dcaaecb | ||
|
|
b7b1e3056a | ||
|
|
458a5250f4 | ||
|
|
5cf3856b6a | ||
|
|
8ddd139111 | ||
|
|
952b94d6fe | ||
|
|
42e68ecd63 | ||
|
|
41fac7ef9d | ||
|
|
253736870e | ||
|
|
569ff9a81b | ||
|
|
3b17174431 | ||
|
|
52436afda9 | ||
|
|
531b4cccca | ||
|
|
e06544cc0f | ||
|
|
c48f4c065c | ||
|
|
c4d7a794ea | ||
|
|
e7c777281d | ||
|
|
f687b1543d | ||
|
|
869bee454d | ||
|
|
83bcb9176b | ||
|
|
f72c902b6a | ||
|
|
e3f68e1e98 | ||
|
|
b002846f7c | ||
|
|
f55cccd7c6 | ||
|
|
929badd208 | ||
|
|
d347fe66ca | ||
|
|
42921ac205 | ||
|
|
58304ceded | ||
|
|
0a7d2055be | ||
|
|
1edc3ead8d | ||
|
|
231bd7699a | ||
|
|
4dee2ebb15 | ||
|
|
16f956bdf8 | ||
|
|
a20ab17236 | ||
|
|
68c5fe94bf | ||
|
|
78f536e7f1 | ||
|
|
ee408300fd | ||
|
|
0f146959e5 | ||
|
|
449d6a6fcd | ||
|
|
63afa92fc1 | ||
|
|
2b786af35b | ||
|
|
231f498eca | ||
|
|
046aafd97e | ||
|
|
d376847d12 | ||
|
|
befd48d053 | ||
|
|
ee294f889c | ||
|
|
5fddac8c6b | ||
|
|
a3d73848a9 | ||
|
|
b829e25f5a | ||
|
|
58a6cc1658 | ||
|
|
f7eef2d3c7 | ||
|
|
b5d007c61c | ||
|
|
8570b6f768 | ||
|
|
b02e2f72b6 | ||
|
|
e546509f53 | ||
|
|
244864c984 | ||
|
|
33af4be469 | ||
|
|
29e3470587 | ||
|
|
2b8e764deb | ||
|
|
f503144c62 | ||
|
|
79f7194429 | ||
|
|
6ac13521e8 | ||
|
|
ca0625f15e | ||
|
|
88c9fbd153 | ||
|
|
7f51b3a31e | ||
|
|
ac0b08fdb7 | ||
|
|
de0e5ea72d | ||
|
|
e06d60a3c3 | ||
|
|
128bfb09ea | ||
|
|
7f0283caf8 | ||
|
|
a00cf5e696 | ||
|
|
65a9a0db41 | ||
|
|
8ac98067de | ||
|
|
f725dc395e | ||
|
|
6e8368c7c5 | ||
|
|
ddd9425463 | ||
|
|
4739cd1510 | ||
|
|
5a3c977759 | ||
|
|
85889ab99d | ||
|
|
a9dc3a62fb | ||
|
|
c2ddf89747 | ||
|
|
9f743b718a | ||
|
|
0db4a9c672 | ||
|
|
2dbdb0da60 | ||
|
|
ba59cb1010 | ||
|
|
ee36f73ec2 | ||
|
|
abcbabfbd8 | ||
|
|
5be76d2657 | ||
|
|
ddb92f66e7 | ||
|
|
f52759cd00 | ||
|
|
b0d9d7779f | ||
|
|
8cd6912fee | ||
|
|
bc58ca647d | ||
|
|
1456569cf6 | ||
|
|
e1e7d3d093 | ||
|
|
495cd0f259 | ||
|
|
f4371efa1c | ||
|
|
d83b05e030 | ||
|
|
bf8267c2a8 | ||
|
|
3bad29ed6d | ||
|
|
cbae4d89e4 | ||
|
|
18f89aebbb | ||
|
|
c2b4caf723 | ||
|
|
c5f3a9e366 | ||
|
|
da826eace1 | ||
|
|
54de942e7f | ||
|
|
0093bf9b79 | ||
|
|
8e9dcb5d62 | ||
|
|
38e909dfca | ||
|
|
6b0276dc22 | ||
|
|
0d19dfa7b8 | ||
|
|
13052b2969 | ||
|
|
1f9de30ff0 | ||
|
|
5b708c1d8d | ||
|
|
ed92d68317 | ||
|
|
2a3bbf13a5 | ||
|
|
330fccad25 | ||
|
|
14243b5ef7 | ||
|
|
9c702814b2 | ||
|
|
ba7acc5443 | ||
|
|
10557ca1ec | ||
|
|
2085701516 | ||
|
|
88ba56618e | ||
|
|
c35545c209 | ||
|
|
585a859340 | ||
|
|
cf214de06c | ||
|
|
2c83edf691 | ||
|
|
2f14c49215 | ||
|
|
72e68e1a6f | ||
|
|
5ff535cab1 | ||
|
|
90e6acf8b9 | ||
|
|
e5e29101fd | ||
|
|
47735aaa0b | ||
|
|
43eb2f8d36 | ||
|
|
1d3c0074d4 | ||
|
|
e8f07e0765 | ||
|
|
54216709b2 | ||
|
|
9f6f034f97 | ||
|
|
e0c74aa2ad | ||
|
|
c083e1b97d | ||
|
|
c4078ed8f1 | ||
|
|
4001e40613 | ||
|
|
a19deac279 | ||
|
|
f655e543b1 | ||
|
|
5031e7f430 | ||
|
|
7f75ee6ed8 | ||
|
|
bde2e0284a | ||
|
|
026826fc84 | ||
|
|
c5f5d88f75 | ||
|
|
3ae4478a70 | ||
|
|
246ece8e3d | ||
|
|
2681acebc6 | ||
|
|
a611301c5a | ||
|
|
3f2ffb851f | ||
|
|
daa37961e4 | ||
|
|
66b336279a | ||
|
|
c99804621d | ||
|
|
2ebbc942d3 | ||
|
|
b81d6962ae | ||
|
|
dc89f75678 | ||
|
|
1ccd70b3fc | ||
|
|
0b3002979e | ||
|
|
25dfa76807 | ||
|
|
db26c579b0 | ||
|
|
623b26f60f | ||
|
|
fec6bf8ee0 | ||
|
|
46760ccfba | ||
|
|
214a32c472 | ||
|
|
ee6a4607d8 | ||
|
|
5a3b3ab2e8 | ||
|
|
5d5000fbbd | ||
|
|
554668f1bd | ||
|
|
7ff8b1ecee | ||
|
|
0858b845fb | ||
|
|
d480113b90 | ||
|
|
8f8370b5bc | ||
|
|
cfcc1b06f9 | ||
|
|
7dbb842085 | ||
|
|
76bb7d3e49 | ||
|
|
3d79861ffb | ||
|
|
236942c902 | ||
|
|
3efe0a0fe0 | ||
|
|
9d933a5d95 | ||
|
|
24eb879352 | ||
|
|
f0141cd725 | ||
|
|
9a82bc7c5a | ||
|
|
b42bfefef9 | ||
|
|
47e881af60 | ||
|
|
442284fee2 | ||
|
|
49a6454999 | ||
|
|
a95e52a10c | ||
|
|
b2f1f00875 | ||
|
|
91b50cdcc4 | ||
|
|
078bd7c80e | ||
|
|
7641918224 | ||
|
|
a90198d50e | ||
|
|
dcff1748b7 | ||
|
|
5f903d8ce2 | ||
|
|
92fdea37d1 | ||
|
|
7e59fafb3f | ||
|
|
ae58224f95 | ||
|
|
857c5eee6f | ||
|
|
adb7f876aa | ||
|
|
6b282c378a | ||
|
|
aaca0fc47b | ||
|
|
4681493b58 | ||
|
|
37b0c15c1a | ||
|
|
f7c29ef4e6 | ||
|
|
15c08c347d | ||
|
|
4bf5f85644 | ||
|
|
dfe09dac0e | ||
|
|
ce26ecc8c1 | ||
|
|
356971cc66 | ||
|
|
82413cd3fd | ||
|
|
f07f3de1bd | ||
|
|
33072072c4 | ||
|
|
94351646b1 | ||
|
|
c766465527 | ||
|
|
b982ab9daf | ||
|
|
114682b49f | ||
|
|
0e5dcb0d40 | ||
|
|
3f491f1a9a | ||
|
|
f5a655b9fc | ||
|
|
62494e9c12 | ||
|
|
c88e34fe8f | ||
|
|
1a5abe6363 | ||
|
|
2f3c775d4f | ||
|
|
7078efcc20 | ||
|
|
e73eb87374 | ||
|
|
471a209d86 | ||
|
|
fabb88d611 | ||
|
|
d7d7752868 | ||
|
|
0fe9041272 | ||
|
|
860680aaa1 | ||
|
|
1640bdf172 | ||
|
|
aced5fcab9 | ||
|
|
f786690f1e | ||
|
|
9a1495199b | ||
|
|
19d227e81d | ||
|
|
00504630c6 | ||
|
|
15d264acce | ||
|
|
4f6e1ed1ec | ||
|
|
959e8d3acc | ||
|
|
e6d1048ebd | ||
|
|
b2edf702ce | ||
|
|
4837474bb0 | ||
|
|
b052eacba7 | ||
|
|
0129305c5f | ||
|
|
5a725b79c9 | ||
|
|
c4f706e918 | ||
|
|
9673f09c9f | ||
|
|
6a84ccbd4e | ||
|
|
3babdfa339 | ||
|
|
14587ee65c | ||
|
|
ef2d129699 | ||
|
|
580c0bef0a | ||
|
|
eef7fef69b | ||
|
|
4d1776f9ff | ||
|
|
f92c21c9c0 | ||
|
|
fac8730ddd | ||
|
|
a3fe58f61b | ||
|
|
696a25fe82 | ||
|
|
04b28dc88f | ||
|
|
abbffb9b15 | ||
|
|
1cd914e5a7 | ||
|
|
6b7bf55acb | ||
|
|
eddcb797e4 | ||
|
|
3014e9253b | ||
|
|
016489ffba | ||
|
|
96ea9e225c | ||
|
|
c4cfc204e7 | ||
|
|
00f5433518 | ||
|
|
3077589cff | ||
|
|
3e3258a4b7 | ||
|
|
dee0f9937e | ||
|
|
1138a4deb1 | ||
|
|
720b14b804 | ||
|
|
196f328312 | ||
|
|
1eb7215162 | ||
|
|
52762cc738 | ||
|
|
c3c38e3510 | ||
|
|
5dcb112621 | ||
|
|
3a9e5fc0cd | ||
|
|
a789fabe2e | ||
|
|
6c8f5e8a16 | ||
|
|
cf08bbdd00 | ||
|
|
80a7765fdd | ||
|
|
119948938e | ||
|
|
b9563cfdc0 | ||
|
|
97e9786fa6 | ||
|
|
60a4541e24 | ||
|
|
52ae19b896 | ||
|
|
8973e976ca | ||
|
|
5ebee4bec7 | ||
|
|
c34b2acf9b | ||
|
|
cd400e5090 | ||
|
|
b433538ab2 | ||
|
|
0a8cc398fe | ||
|
|
a8e37d9486 | ||
|
|
288b017355 | ||
|
|
91745580d8 | ||
|
|
d0d652dba9 | ||
|
|
96f9f89b7b | ||
|
|
2f093011a2 | ||
|
|
cfe55c1975 | ||
|
|
42dc0d754f | ||
|
|
1623257b17 | ||
|
|
3f27256589 | ||
|
|
52c34b6d35 | ||
|
|
e95fcc6532 | ||
|
|
d5b6c0aec1 | ||
|
|
485bcfc039 | ||
|
|
1cbcf7048c | ||
|
|
4d90aec5a6 | ||
|
|
85b2a72624 | ||
|
|
acd5d78d30 | ||
|
|
c81e4a8194 | ||
|
|
81fcd57e3a | ||
|
|
6dd940cfab | ||
|
|
a1bdb6c308 | ||
|
|
525397e64d | ||
|
|
e4af67aa68 | ||
|
|
2d7d8812fd | ||
|
|
069d70176a | ||
|
|
726ecefd55 | ||
|
|
69fbf9d1ad | ||
|
|
38e89f4e4d | ||
|
|
b3ff273b7c | ||
|
|
fb0be72b56 | ||
|
|
339fbffbb7 | ||
|
|
5c308bb60c | ||
|
|
514fe6e98d | ||
|
|
a80d7fddba | ||
|
|
ec11a89496 | ||
|
|
61aa5f907d | ||
|
|
ac7ba173cd | ||
|
|
fe7a764935 | ||
|
|
c1190d348b | ||
|
|
a81c8518b8 | ||
|
|
d7f533118a | ||
|
|
252fdc4208 | ||
|
|
c1d28655da | ||
|
|
77c2e8abc4 | ||
|
|
0a4dba4343 | ||
|
|
b6179463b1 | ||
|
|
99bd7ae437 | ||
|
|
e968388ba7 | ||
|
|
60be576f9d | ||
|
|
4c4c6d2402 | ||
|
|
47249776a0 | ||
|
|
c8f4fa437d | ||
|
|
09c1b575a7 | ||
|
|
2437b0d901 | ||
|
|
e16640ba24 | ||
|
|
0a33ad6542 | ||
|
|
7ee626edf8 | ||
|
|
600b58be75 | ||
|
|
5601704ac1 | ||
|
|
f4c7ba6686 | ||
|
|
4eb6386b6e | ||
|
|
9c78970712 | ||
|
|
e465e25adb | ||
|
|
4d735e9e26 | ||
|
|
28bc720bbc | ||
|
|
0fc170e1c3 | ||
|
|
012d98d303 | ||
|
|
180bc99726 | ||
|
|
541a6b25e7 | ||
|
|
e537d64c5b | ||
|
|
03de09c836 | ||
|
|
9dc309390a | ||
|
|
8280f31180 | ||
|
|
61a1227f87 | ||
|
|
02c37924aa | ||
|
|
ddc4baf5e2 | ||
|
|
0bb0f80c54 | ||
|
|
63f975516a | ||
|
|
9160c8319d | ||
|
|
d268b0335e | ||
|
|
6b355c645c | ||
|
|
54f8758aba | ||
|
|
f7b2ad17be | ||
|
|
951e981d8e | ||
|
|
c4c301d363 | ||
|
|
d6dfc1226b | ||
|
|
50821924f2 | ||
|
|
3c01011c28 | ||
|
|
d674176356 | ||
|
|
8c60396197 | ||
|
|
4a5b442f35 | ||
|
|
80ea398660 | ||
|
|
69aae1abfa | ||
|
|
c528a98820 | ||
|
|
89fa12c6db | ||
|
|
34598d73a3 | ||
|
|
c507aeae4a | ||
|
|
356ce3cc42 | ||
|
|
560f145324 | ||
|
|
4308fb3f9b | ||
|
|
a17b66c6dc | ||
|
|
f52a3ba773 | ||
|
|
f865338ad0 | ||
|
|
7221207fe5 | ||
|
|
cbc61b533f | ||
|
|
bdff8767f7 | ||
|
|
26f3a9215d | ||
|
|
15e34647fb | ||
|
|
d121aa5a9f | ||
|
|
7d77f754c5 | ||
|
|
2012c4d161 | ||
|
|
fed9ede878 | ||
|
|
dcdc94365e | ||
|
|
4b12716961 | ||
|
|
db2f387a77 | ||
|
|
cb972fdf17 | ||
|
|
5c34d57012 | ||
|
|
3906aa245c | ||
|
|
c86daf3a68 | ||
|
|
9bafd81093 | ||
|
|
5305a27c60 | ||
|
|
6b30ca05db | ||
|
|
b99c17c7cd | ||
|
|
fabaccd3da | ||
|
|
48c0ae93f4 | ||
|
|
30768071bf | ||
|
|
68b619e276 | ||
|
|
d5a441b0e8 | ||
|
|
a5ed0864be | ||
|
|
7db9fe46ff | ||
|
|
99df1bfbaa | ||
|
|
067a4a95e0 | ||
|
|
2154a51831 | ||
|
|
f0bc58e289 | ||
|
|
5fd2f15a5d | ||
|
|
baeef22f4c | ||
|
|
e12e7ec95a | ||
|
|
2f6fef0817 | ||
|
|
9cee152e23 | ||
|
|
855ecf427d | ||
|
|
2d2d6f7fad | ||
|
|
ee591c0142 | ||
|
|
fddda800a8 | ||
|
|
9cc97c44d5 | ||
|
|
6350e881da | ||
|
|
ec5a799b31 | ||
|
|
026238b125 | ||
|
|
46712cd967 | ||
|
|
273ca15c17 | ||
|
|
94d8a6039e | ||
|
|
61fde5ed42 | ||
|
|
27a0127556 | ||
|
|
585fedd824 | ||
|
|
49ea990519 | ||
|
|
31e06538a2 | ||
|
|
22657f030c | ||
|
|
3805ecca02 | ||
|
|
31ddef5ddb | ||
|
|
6b4d3e5bbd | ||
|
|
acaeb46d5f | ||
|
|
ce70c3b62a | ||
|
|
55ff63ffeb | ||
|
|
2d629eb0c6 | ||
|
|
519784a7c3 | ||
|
|
f81c5b0fdb | ||
|
|
cf8d860a67 | ||
|
|
3e71c3db31 | ||
|
|
ef8b284434 | ||
|
|
5833565e10 | ||
|
|
87bbb1914a | ||
|
|
358f0f6a98 | ||
|
|
ca924f9abc | ||
|
|
2080ade438 | ||
|
|
a8c1bf0a2d | ||
|
|
c88ac20198 | ||
|
|
360765a94a | ||
|
|
5ca69b9cbb | ||
|
|
4f7809cc4e | ||
|
|
580db2041c | ||
|
|
9256225aab | ||
|
|
4add630b6c | ||
|
|
704458409e | ||
|
|
48e0704ce1 | ||
|
|
dfe7ff55e4 | ||
|
|
a9bc74b2bd | ||
|
|
a42bbbe00c | ||
|
|
25ee3df284 | ||
|
|
c9219d12b8 | ||
|
|
995fbba9de | ||
|
|
ef92094d0c | ||
|
|
98764e6802 | ||
|
|
e30f84f906 | ||
|
|
102921b826 | ||
|
|
7f34ebc1d7 | ||
|
|
dd5ecc5752 | ||
|
|
a19484a09c | ||
|
|
2eb3f734c3 | ||
|
|
3130c244de | ||
|
|
82bf0e4e1c | ||
|
|
5b1d1dde90 | ||
|
|
3ff845dbdf | ||
|
|
12a860dde4 | ||
|
|
ce2d3c9a5f | ||
|
|
f3ee9336a7 | ||
|
|
fc719b932c | ||
|
|
82c0ca7aae | ||
|
|
5681559f9c | ||
|
|
46b7c20a81 | ||
|
|
a5ebc959e5 | ||
|
|
3edf3936ab | ||
|
|
9fbc97f0e6 | ||
|
|
f515c61f25 | ||
|
|
ad87a5bcee | ||
|
|
0e803b33a8 | ||
|
|
579bf7c19c | ||
|
|
d2cbfc0286 | ||
|
|
3e26b372d4 | ||
|
|
c4ba425f4f | ||
|
|
e204bc73ce | ||
|
|
2304ecd870 | ||
|
|
af502c4232 | ||
|
|
c00de8e4cc | ||
|
|
fc10df0464 | ||
|
|
2045011a5e | ||
|
|
2228db3caa | ||
|
|
675a1575df | ||
|
|
14283975b7 | ||
|
|
0251002c77 | ||
|
|
9467027f35 | ||
|
|
bedf5d41cd | ||
|
|
7dab21142a | ||
|
|
e3d812b678 | ||
|
|
002023e2ef | ||
|
|
8776acb4b5 | ||
|
|
9216964801 | ||
|
|
9e3f834b04 | ||
|
|
8436e23516 | ||
|
|
4fa00e27aa | ||
|
|
d23443b187 | ||
|
|
7664118046 | ||
|
|
bfe62800f2 | ||
|
|
a7933f88f1 | ||
|
|
c565eb148d | ||
|
|
49defa44f4 | ||
|
|
0be375f5a6 | ||
|
|
6a84c7583e | ||
|
|
ccee4776a8 | ||
|
|
bf7f9a3b25 | ||
|
|
13b43d1bfa | ||
|
|
d59b598234 | ||
|
|
00a9938a26 | ||
|
|
885d99374c | ||
|
|
3874afe5cc | ||
|
|
a80fe55e80 | ||
|
|
5445782f31 | ||
|
|
8660ceac55 | ||
|
|
5cd6574308 | ||
|
|
149950149e | ||
|
|
c9abe652a1 | ||
|
|
0bd2f96965 | ||
|
|
c3c53363a7 | ||
|
|
8092de1c9a | ||
|
|
838365fc9e | ||
|
|
4b89283ab3 | ||
|
|
99d2e6f334 | ||
|
|
e72095f04a | ||
|
|
0357ce80f8 | ||
|
|
26fbdabd94 | ||
|
|
7c6b3d20ce | ||
|
|
a914cdad1e | ||
|
|
f40a0c98b8 | ||
|
|
a8cbf0d735 | ||
|
|
fc518d754a | ||
|
|
d1b138a353 | ||
|
|
49319fcf42 | ||
|
|
c612cb1e62 | ||
|
|
934c3ad8a5 | ||
|
|
fced4b0d86 | ||
|
|
cf1f87949f | ||
|
|
3a2db3db67 | ||
|
|
390d414c47 | ||
|
|
9e35dee8e5 | ||
|
|
53756b488b | ||
|
|
a81e7057f9 | ||
|
|
d83c376fb0 | ||
|
|
63c9f87264 | ||
|
|
c7a77b3a74 | ||
|
|
5acc9c3fad | ||
|
|
5098603d83 | ||
|
|
376d3ad3b0 | ||
|
|
73052c6003 | ||
|
|
9fbdc52b1a | ||
|
|
1023a3cfe8 | ||
|
|
53e8f1a78a | ||
|
|
67f5649d35 | ||
|
|
cc6c0f29df | ||
|
|
158f79cc1d | ||
|
|
e66cdf9610 | ||
|
|
9bb4d8b8f1 | ||
|
|
a2ac059380 | ||
|
|
2bbccbd3b5 | ||
|
|
0da3a590f2 | ||
|
|
4955c0aace | ||
|
|
91db0230f7 | ||
|
|
a55ffffe79 | ||
|
|
6e270d3dd5 | ||
|
|
e3c7fefb9e | ||
|
|
ef13eee386 | ||
|
|
ad63cfeae4 | ||
|
|
159ac4c91e | ||
|
|
1845f2d7cb | ||
|
|
d6776ffcc8 | ||
|
|
90dedefeb0 | ||
|
|
70f15a7cbd | ||
|
|
ce62ba719e | ||
|
|
a31cd38389 | ||
|
|
ecaf7978cd | ||
|
|
312be1dfc1 | ||
|
|
afdc874df9 | ||
|
|
4d8784470b | ||
|
|
bc03276a53 | ||
|
|
c73930c27d | ||
|
|
ae9dd1aa85 | ||
|
|
906ad10da4 | ||
|
|
7e5968b973 | ||
|
|
4e66b3bf0c | ||
|
|
696c4e4b04 | ||
|
|
9f6e2b4ac6 | ||
|
|
e87548c94a | ||
|
|
0be5daf605 | ||
|
|
be5eaf3bd5 | ||
|
|
579c196447 | ||
|
|
6e4ca6151a | ||
|
|
6912de4fdd | ||
|
|
e1d108168b | ||
|
|
7114a9ff81 | ||
|
|
422f0a4208 | ||
|
|
ab08c40711 | ||
|
|
d44a0c6243 | ||
|
|
4c341344f2 | ||
|
|
896f6028b9 | ||
|
|
f2a1cd91c0 | ||
|
|
261d1ab808 | ||
|
|
1ce11325b4 | ||
|
|
4d527f212a | ||
|
|
e922fd90d4 | ||
|
|
2ff25224f2 | ||
|
|
2ed8edf842 | ||
|
|
109392c1ae | ||
|
|
8ea196e349 | ||
|
|
f09aa009e7 | ||
|
|
4a2a5804ca | ||
|
|
1aa4075cc6 | ||
|
|
68d754efab | ||
|
|
14cae6dc11 | ||
|
|
360af1eaf7 | ||
|
|
3ef4ee8f60 | ||
|
|
75763bf287 | ||
|
|
ed362255df | ||
|
|
e4ec0a8c75 | ||
|
|
5abdb2339d | ||
|
|
93a0a53aab | ||
|
|
4cbdb18aef | ||
|
|
66cbf57f5e | ||
|
|
e1c101b786 | ||
|
|
f3f797a7cf | ||
|
|
a74cdd13ec | ||
|
|
9a962dee0a | ||
|
|
daedb1698a | ||
|
|
5aa4c8f069 | ||
|
|
bb4a93418e | ||
|
|
0a7005edaa | ||
|
|
cdfbb1b2e3 | ||
|
|
eb80fbc431 | ||
|
|
2afab7fd3a | ||
|
|
65f309beec | ||
|
|
fb17a09a39 | ||
|
|
3f6f806500 | ||
|
|
e82beb562f | ||
|
|
322db47c04 | ||
|
|
8166f5d359 | ||
|
|
8204a80d6a | ||
|
|
e0ffe3d367 | ||
|
|
02cce4dbe7 | ||
|
|
2f174d81e8 | ||
|
|
ba60ca62e8 | ||
|
|
7d498cc6aa | ||
|
|
b7f816feee | ||
|
|
ea4cd67299 | ||
|
|
edc024fbb9 | ||
|
|
255051a9ae | ||
|
|
ef87f02290 | ||
|
|
066751a698 | ||
|
|
e485bd3963 | ||
|
|
344110832a | ||
|
|
5f830a016c | ||
|
|
f64eb866d5 | ||
|
|
4571209988 | ||
|
|
14ea6fb284 | ||
|
|
918c864f7d | ||
|
|
c95be2f54e | ||
|
|
930f706dd3 | ||
|
|
9a013b7ea7 | ||
|
|
6d1d38c4af | ||
|
|
72a218fca0 | ||
|
|
766d6b8bdb | ||
|
|
392e6bca48 | ||
|
|
2f6ab60b04 | ||
|
|
7db5c9f934 | ||
|
|
9cb44622a5 | ||
|
|
5eebc138ae | ||
|
|
12b7827930 | ||
|
|
552681ed83 | ||
|
|
27b2b2dda7 | ||
|
|
174fcaa5df | ||
|
|
8f1565c2d6 | ||
|
|
058837e215 | ||
|
|
d133295a3d | ||
|
|
0272f5546f | ||
|
|
47d814ecfb | ||
|
|
6cf7848c3a | ||
|
|
054fb5f18c | ||
|
|
65113ea1d9 | ||
|
|
438d532ff5 | ||
|
|
44b090ecaf | ||
|
|
124214aee3 | ||
|
|
0d7bbcbf46 | ||
|
|
3bd6b3bd46 | ||
|
|
c536cee637 | ||
|
|
d41e0e27c7 | ||
|
|
94ffa77f90 | ||
|
|
3fbb1d9b15 | ||
|
|
224f4a259c | ||
|
|
f026156486 | ||
|
|
d4480b8ce9 | ||
|
|
01c3f6e857 | ||
|
|
b744b78fa6 | ||
|
|
70ac8150df | ||
|
|
1db4d9af0a | ||
|
|
f8ca8c5130 | ||
|
|
c8115e0b33 | ||
|
|
0be13f330b | ||
|
|
79268a5d19 | ||
|
|
167b8a948c | ||
|
|
cc0e15a736 | ||
|
|
01ee0798cb | ||
|
|
eec173e476 | ||
|
|
4b9321eda8 | ||
|
|
67f0512773 | ||
|
|
c635b23b56 | ||
|
|
e2630bbf51 | ||
|
|
e5a474e99f | ||
|
|
8ad6d5816b | ||
|
|
b53cf68dee | ||
|
|
8dba225aae | ||
|
|
bd8260d139 | ||
|
|
c55d2454c3 | ||
|
|
30454e3c06 | ||
|
|
662a4c8bd4 | ||
|
|
d15b730b11 | ||
|
|
beab4f11ab | ||
|
|
4f1478226e | ||
|
|
9ceff38deb | ||
|
|
f7aeb4dbe6 | ||
|
|
7710582a41 | ||
|
|
f80d38d165 | ||
|
|
9c2b1d92ce | ||
|
|
07c223e521 | ||
|
|
6d443a35da | ||
|
|
b1d2795347 | ||
|
|
0f9bce70cf | ||
|
|
6f1f72127f | ||
|
|
986edeb79e | ||
|
|
b3391df6e8 | ||
|
|
d8a114c90a | ||
|
|
67ecb7b73f | ||
|
|
1f456f6d5d | ||
|
|
adcaf5dc23 | ||
|
|
22c5a771d0 | ||
|
|
148ac05654 | ||
|
|
3fa9f4bf91 | ||
|
|
6c4a139e66 | ||
|
|
6d576de211 | ||
|
|
ad1804fa3c | ||
|
|
d3a1db25c2 | ||
|
|
0fcd3cd780 | ||
|
|
61cb573eec | ||
|
|
5dd84bf9a1 | ||
|
|
5dad7c6bba | ||
|
|
3007d50299 | ||
|
|
11c0ac6987 | ||
|
|
2bb62883a4 | ||
|
|
5796d2fb85 | ||
|
|
dae318c9bb | ||
|
|
342764e9ff | ||
|
|
27b9e28e20 | ||
|
|
f8d5dd7fa6 | ||
|
|
7408f97fbd | ||
|
|
d1a9cf840f | ||
|
|
d593927b14 | ||
|
|
f62ebb8fe8 | ||
|
|
ede798dbe5 | ||
|
|
c3095b6a32 | ||
|
|
9eb5bfc9fe | ||
|
|
bf2c529884 | ||
|
|
7ce8150541 | ||
|
|
44de149923 | ||
|
|
8ecdc7b9d9 | ||
|
|
95c64359d2 | ||
|
|
44203e2178 | ||
|
|
d3d940d9c9 | ||
|
|
9d3efae141 | ||
|
|
e6eb3e7099 | ||
|
|
3ab2b37471 | ||
|
|
33e7f4e3ef | ||
|
|
6463eaa6f6 | ||
|
|
a066c0a187 | ||
|
|
176f65713f | ||
|
|
bcc6edf083 | ||
|
|
5f43c710ae | ||
|
|
493afdf3d4 | ||
|
|
c85b6a37a6 | ||
|
|
81971d0eda | ||
|
|
8a6cc9ea35 | ||
|
|
4fd125ddfc | ||
|
|
1298a8382d | ||
|
|
bb9c352f55 | ||
|
|
045533d080 | ||
|
|
6a5ab5f738 | ||
|
|
c1b0e4fd17 | ||
|
|
e71928ffa7 | ||
|
|
de3f5de029 | ||
|
|
57ceee4d4c | ||
|
|
9a5cd7609b | ||
|
|
1382dca3e3 | ||
|
|
bc7a3e8839 | ||
|
|
c5d6f4c63f | ||
|
|
6776f813af | ||
|
|
edfecb21c7 | ||
|
|
6d18f2485d | ||
|
|
73753b364e | ||
|
|
35a8a71150 | ||
|
|
68d6a14d04 | ||
|
|
c155d37790 | ||
|
|
6a6446d0b7 | ||
|
|
b0b4fe5570 | ||
|
|
6de8c3d1ca | ||
|
|
319f3f645a | ||
|
|
bedfbb0e6b | ||
|
|
6526f02d88 | ||
|
|
148ffce6b7 | ||
|
|
85cb969780 | ||
|
|
c1a75ad051 | ||
|
|
5f4cf2925b | ||
|
|
7de49e9812 | ||
|
|
7416566269 | ||
|
|
8c54ca43f0 | ||
|
|
69fe549052 | ||
|
|
1943c01066 | ||
|
|
8d9889d453 | ||
|
|
280d71f1c6 | ||
|
|
bfd8aa4777 | ||
|
|
23e7657bf6 | ||
|
|
13c5d65f50 | ||
|
|
a86132a32b | ||
|
|
e8c4d5326a | ||
|
|
34ce9d68bf | ||
|
|
58dbadb869 | ||
|
|
0a9d901874 | ||
|
|
9ebad9aad8 | ||
|
|
e44b921143 | ||
|
|
6cb44e65a6 | ||
|
|
5398331956 | ||
|
|
de88ff0b6a | ||
|
|
1bbc92e460 | ||
|
|
e3ef9391ce | ||
|
|
b317f99196 | ||
|
|
512c45c9b5 | ||
|
|
5f4ae01c85 | ||
|
|
77a0718521 | ||
|
|
6c2bab44f6 | ||
|
|
b6f8a8bf9e | ||
|
|
ed3030606f | ||
|
|
274e46fa35 | ||
|
|
e95620c131 | ||
|
|
31cb11f0d1 | ||
|
|
fae905efb0 | ||
|
|
fcc1bada71 | ||
|
|
8a140b2303 | ||
|
|
9551590f92 | ||
|
|
0d8278aa0d | ||
|
|
c23a4e2085 | ||
|
|
fe77f2c14c | ||
|
|
5e06ad19ee | ||
|
|
8bce12aca3 | ||
|
|
d928ba7c3b | ||
|
|
25b0077adc | ||
|
|
ee0bcb7685 | ||
|
|
642141f574 | ||
|
|
90cdfb5e7e | ||
|
|
9967bc26d9 | ||
|
|
fef2d74ec2 | ||
|
|
9bbd262d05 | ||
|
|
555d8a1a24 | ||
|
|
f7f549fb05 | ||
|
|
d69c631a32 | ||
|
|
5e3a4c12d7 | ||
|
|
f75d0562ba | ||
|
|
ab745b3b03 | ||
|
|
f745d870f7 | ||
|
|
0ebae7734a | ||
|
|
b1b61963fc | ||
|
|
5282f01cda | ||
|
|
9f38c01668 | ||
|
|
6fed836bee | ||
|
|
d39c8837fb | ||
|
|
870be0d1f0 | ||
|
|
a889163d23 | ||
|
|
1145d1c902 | ||
|
|
d641e5faaa | ||
|
|
57ca5ebf7b | ||
|
|
c2126e0680 | ||
|
|
45ba66c0ff | ||
|
|
a6af348a50 | ||
|
|
95fe5a47f5 | ||
|
|
29b3166da9 | ||
|
|
38ab3fbc44 | ||
|
|
b7ae677fb3 | ||
|
|
f54656dde1 | ||
|
|
fad1661b14 | ||
|
|
ed99c82137 | ||
|
|
c27a4fb609 | ||
|
|
216268f225 | ||
|
|
a5371d9a52 | ||
|
|
fdcf06efa9 | ||
|
|
755d48919f | ||
|
|
51bd72dc62 | ||
|
|
fe4a90ed97 | ||
|
|
7ee08a6713 | ||
|
|
0695fd87c0 | ||
|
|
ab8fe96919 | ||
|
|
a20c3f14ac | ||
|
|
62a0ca4fb5 | ||
|
|
2171f9c848 | ||
|
|
384aed2a91 | ||
|
|
2d9f20f2cc | ||
|
|
8430e24eae | ||
|
|
d13755ba5f | ||
|
|
d496892878 | ||
|
|
6d32879f21 | ||
|
|
40e7eeb118 | ||
|
|
02ef6b73af | ||
|
|
e831768d92 | ||
|
|
a0695b492e | ||
|
|
cddcebfe27 | ||
|
|
71ca25854f | ||
|
|
ad962d5bcd | ||
|
|
0083d99d37 | ||
|
|
5cd710e420 | ||
|
|
6da1bc083e | ||
|
|
47aaecf3ac | ||
|
|
a3f2fadd9e | ||
|
|
0cf851755b | ||
|
|
1361168d00 | ||
|
|
b888d3bcbc | ||
|
|
203dce371c | ||
|
|
1a81f4a8af | ||
|
|
9b788c3c2d | ||
|
|
17e487d011 | ||
|
|
b2b11fba32 | ||
|
|
4d4af995c8 | ||
|
|
0d04aedd00 | ||
|
|
53930866df | ||
|
|
9ce5c7c2fa | ||
|
|
dc30bd3991 | ||
|
|
70c90972dc | ||
|
|
9daa5b8583 | ||
|
|
5916cfd345 | ||
|
|
dec78c447d | ||
|
|
100359ad6f | ||
|
|
26e6f658fd | ||
|
|
15bf2bf772 | ||
|
|
4e72413829 | ||
|
|
0fb214434e | ||
|
|
2b4c62eab8 | ||
|
|
0ed5f41fa8 | ||
|
|
7e973667c8 | ||
|
|
8639fc5b39 | ||
|
|
f503a08813 | ||
|
|
634403cd6e | ||
|
|
6a539bcdcc | ||
|
|
c43830cd6a | ||
|
|
ca6c9dc312 | ||
|
|
c5194edcdd | ||
|
|
7905c1e254 | ||
|
|
fa0d46dba9 | ||
|
|
2bf8a96ec8 | ||
|
|
41a15cc254 | ||
|
|
2364ae67dd | ||
|
|
3c64db25b9 | ||
|
|
87b2703b1e | ||
|
|
d86a8e554b | ||
|
|
af809c66b1 | ||
|
|
702087f0b6 | ||
|
|
d91db9ef62 | ||
|
|
7af819a656 | ||
|
|
633e678590 | ||
|
|
a5f6d4e56a | ||
|
|
c71cf46cbe | ||
|
|
3dc0dbbbac | ||
|
|
eeba4fd8bf | ||
|
|
a797764534 | ||
|
|
9f4aca43ee | ||
|
|
849b992732 | ||
|
|
cdf0e079b2 | ||
|
|
be647848ae | ||
|
|
48369b203c | ||
|
|
dd60c26591 | ||
|
|
5e834689c4 | ||
|
|
141c848260 | ||
|
|
796a2fffda | ||
|
|
6ea6102ae6 | ||
|
|
bfeb504243 | ||
|
|
174a86b497 | ||
|
|
951902319e | ||
|
|
dcb08a1d47 | ||
|
|
6afe2beb5b | ||
|
|
906169fedc | ||
|
|
68f5e58b57 | ||
|
|
9755e8d08c | ||
|
|
b1872bb08a | ||
|
|
dd356cdfdc | ||
|
|
8231f1f839 | ||
|
|
d248515d76 | ||
|
|
113e075fb6 | ||
|
|
c6a2622744 | ||
|
|
cefec5e565 | ||
|
|
54ee4490c7 | ||
|
|
2ab21839cb | ||
|
|
cbdf954eac | ||
|
|
6504505297 | ||
|
|
fa5307dc87 | ||
|
|
80561c65fc | ||
|
|
3d3128b831 | ||
|
|
b228d5188d | ||
|
|
fdc8eeb650 | ||
|
|
8162f1f935 | ||
|
|
b456037a08 | ||
|
|
90f8eb20fc | ||
|
|
19cb848877 | ||
|
|
7ef4535892 | ||
|
|
5e5d38aef2 | ||
|
|
f2b8dd8109 | ||
|
|
8c706895b2 | ||
|
|
8c479396f1 | ||
|
|
fe83a35c0c | ||
|
|
902b5887fc | ||
|
|
9f9e2d7507 | ||
|
|
ed50b357ad | ||
|
|
65c45fa47d | ||
|
|
3d4ceb9efb | ||
|
|
a6940d38a7 | ||
|
|
204410d599 | ||
|
|
20f53eb50f | ||
|
|
887d0b208a | ||
|
|
69dc2cf5a5 | ||
|
|
a7353ee38a | ||
|
|
541b0579e4 | ||
|
|
ebb9ca1298 | ||
|
|
90aa40bfb5 | ||
|
|
6261d316f5 | ||
|
|
3bb439e4b1 | ||
|
|
d52d16ee19 | ||
|
|
9d3dc38a13 | ||
|
|
2888e1fadd | ||
|
|
fcc990ac24 | ||
|
|
5f9916202d | ||
|
|
53a95ccf51 | ||
|
|
5c4f7b62a6 | ||
|
|
8186e6ebf0 | ||
|
|
df2bd841ed | ||
|
|
048fde70e2 | ||
|
|
5d87c27f23 | ||
|
|
9d44f250ab | ||
|
|
31ace7d3f4 | ||
|
|
d893328343 | ||
|
|
1ae22f929d | ||
|
|
73121fadf7 | ||
|
|
4bba92cdac | ||
|
|
c3d6fa229c | ||
|
|
4b09a6e29a | ||
|
|
876b8cc984 | ||
|
|
cb188cc54d | ||
|
|
f3d4e85699 | ||
|
|
74992821f6 | ||
|
|
0299884306 | ||
|
|
b459ef5550 | ||
|
|
d526ce904a | ||
|
|
8b456270be | ||
|
|
21569e4025 | ||
|
|
621ada0c10 | ||
|
|
50055b6500 | ||
|
|
c81851d48d | ||
|
|
8904d577e5 | ||
|
|
34a7406167 | ||
|
|
ab1b769240 | ||
|
|
652ad7b344 | ||
|
|
48fdfd88fa | ||
|
|
1318f8d19d | ||
|
|
c5fe52ede2 | ||
|
|
ae51d341e6 | ||
|
|
96b08180d4 | ||
|
|
f0618e8465 | ||
|
|
c9dd7722c3 | ||
|
|
025cdf246a | ||
|
|
7fdd7cd280 | ||
|
|
4bb9c11e55 | ||
|
|
1b0dccab42 | ||
|
|
31c9a36bf4 | ||
|
|
534b7e7226 | ||
|
|
6b9d14a68b | ||
|
|
d41dfc86c7 | ||
|
|
b86e9c51f5 | ||
|
|
0088a53ab8 | ||
|
|
efdff66593 | ||
|
|
837f8b2796 | ||
|
|
82ff1772b2 | ||
|
|
36aa6739fc | ||
|
|
0c26d35287 | ||
|
|
753daebadf | ||
|
|
d21293ca13 | ||
|
|
1e8fd10a0a | ||
|
|
b9df4b36ab | ||
|
|
3832dec3e3 | ||
|
|
45ff49da16 | ||
|
|
dfc000c1e1 | ||
|
|
604b7abc89 | ||
|
|
a4676be9d7 | ||
|
|
19af4d8c96 | ||
|
|
272cff1cd9 | ||
|
|
d2f006892c | ||
|
|
05637fd7bf | ||
|
|
a9581907c7 | ||
|
|
4d9fff91d4 | ||
|
|
28b9cf683a | ||
|
|
20e1179085 | ||
|
|
c0ed4b7ed3 | ||
|
|
96fd21b381 | ||
|
|
49d4595049 | ||
|
|
eb98a1979d | ||
|
|
9416e3bc77 | ||
|
|
350b121328 | ||
|
|
47dfbce810 | ||
|
|
e2c51f9d00 | ||
|
|
d738188c8b | ||
|
|
0c8b3bc79e | ||
|
|
7f8a152909 | ||
|
|
50c208e4db | ||
|
|
92e9ef31a3 | ||
|
|
d6cce6a887 | ||
|
|
8f7a76f2fe | ||
|
|
6957de71ee | ||
|
|
ee9436d45f | ||
|
|
45c972f813 | ||
|
|
aa547c3934 | ||
|
|
894cd14802 | ||
|
|
950815890f | ||
|
|
3d28723a92 | ||
|
|
4b1519367f | ||
|
|
b515b58ed1 | ||
|
|
09cc9910a2 | ||
|
|
463cedc12c | ||
|
|
9d3abb7a0c | ||
|
|
fef056fbe9 | ||
|
|
acc8eaa4e2 | ||
|
|
d3f768975d | ||
|
|
385dfa697a | ||
|
|
560addae85 | ||
|
|
4924b5f883 | ||
|
|
49ed6eee31 | ||
|
|
f6a5f3cf06 | ||
|
|
704e274e6a | ||
|
|
6f71ad125d | ||
|
|
c891b3a02e | ||
|
|
417ce64c39 | ||
|
|
d3d0c33fe2 | ||
|
|
ae8f56381b | ||
|
|
5752ccdf98 | ||
|
|
7818f76e71 | ||
|
|
0a7d80cbad | ||
|
|
54a753ec7e | ||
|
|
d46f9ebd1f | ||
|
|
41453b0fb3 | ||
|
|
2cebfc8046 | ||
|
|
a20e7566c9 | ||
|
|
29b7bffadf | ||
|
|
2142598058 | ||
|
|
0ed319927a | ||
|
|
033f7a6a5f | ||
|
|
ac551b4448 | ||
|
|
2299906c23 | ||
|
|
607b7c6985 | ||
|
|
79c2378826 | ||
|
|
241b668073 | ||
|
|
e5ca8acdea | ||
|
|
9e8800a8ba | ||
|
|
b0d137b6bb | ||
|
|
5174b409fb | ||
|
|
0c0a4da7d3 | ||
|
|
aead8f6edd | ||
|
|
83f2899892 | ||
|
|
3f25833d3d | ||
|
|
26d2092ace | ||
|
|
c82c34f6a4 | ||
|
|
00dca8b099 | ||
|
|
5c9c1ee4ed | ||
|
|
4e9c4e62a2 | ||
|
|
3e5377c830 | ||
|
|
e3875812e7 | ||
|
|
ef16795ea7 | ||
|
|
9490623d54 | ||
|
|
f4f9086f79 | ||
|
|
22d057328a | ||
|
|
ef8c58e3b7 | ||
|
|
60c8502d27 | ||
|
|
e65583dba7 | ||
|
|
bebf02dccb | ||
|
|
219d8b2e41 | ||
|
|
d20c0d452b | ||
|
|
347c8bcef7 | ||
|
|
93176838e2 | ||
|
|
7dc6c4e5d0 | ||
|
|
430709b308 | ||
|
|
417cdf5901 | ||
|
|
ec0303ab09 | ||
|
|
b80fb7c817 | ||
|
|
962e48c77a | ||
|
|
4b1578237e | ||
|
|
247d8763f7 | ||
|
|
a3e2a32a7d | ||
|
|
237e39f495 | ||
|
|
a23b28bee9 | ||
|
|
d8d13d5ae2 | ||
|
|
0f6b35cbf6 | ||
|
|
969d06f934 | ||
|
|
ebcddd9477 | ||
|
|
0cbe196bd3 | ||
|
|
6087cad5ff | ||
|
|
511d3f8eae | ||
|
|
bbc8408c5a | ||
|
|
f0723940e4 | ||
|
|
34516008f5 | ||
|
|
000e3c0601 | ||
|
|
ec6416bfcb | ||
|
|
baa72e6f52 | ||
|
|
81f0b5ebe2 | ||
|
|
e833af4e9d | ||
|
|
1255dd0728 | ||
|
|
61ab5478bc | ||
|
|
c99eb08741 | ||
|
|
52f1329ca4 | ||
|
|
8f574b1275 | ||
|
|
5e171464c3 | ||
|
|
92bcb03cef | ||
|
|
ead45003e7 | ||
|
|
37a37e95c6 | ||
|
|
f68345d014 | ||
|
|
9605afbb05 | ||
|
|
7aa57ad36c | ||
|
|
82efcefac7 | ||
|
|
9b176299ab | ||
|
|
f70902255c | ||
|
|
cbe79473ef | ||
|
|
158df5f652 | ||
|
|
253f54cb20 | ||
|
|
90fa429fb9 | ||
|
|
d7063a914f | ||
|
|
0a6ba698ba | ||
|
|
b11bfb0e92 | ||
|
|
ece7d1f3b4 | ||
|
|
6d9a813d67 | ||
|
|
f6382c7774 | ||
|
|
2525c53029 | ||
|
|
ee9520811f | ||
|
|
212e8e34ab | ||
|
|
1fe53ac5c2 | ||
|
|
e1f7b64fe1 | ||
|
|
074d949d0b | ||
|
|
0c07c7454d | ||
|
|
82eb456565 | ||
|
|
285fc8ba8c | ||
|
|
91e971a9ac | ||
|
|
a12fcfd6b9 | ||
|
|
1d2ae3d282 | ||
|
|
2a42cc8542 | ||
|
|
e512f272a5 | ||
|
|
8a795dea4d | ||
|
|
bc1333c5c5 | ||
|
|
ab378f4a59 | ||
|
|
a0bb78bc58 | ||
|
|
8d7a64587c | ||
|
|
860dd74748 | ||
|
|
a8c4bb1a25 | ||
|
|
b4f73192ae | ||
|
|
bd48715737 | ||
|
|
9a31099821 | ||
|
|
1dba594fa4 | ||
|
|
e1f5f7b713 | ||
|
|
a5ed3f1d0c | ||
|
|
86ddf9d7cf | ||
|
|
6bd0a0ee1f | ||
|
|
05084c67db | ||
|
|
cbb51c92e9 | ||
|
|
ae7b42c3b0 | ||
|
|
3da75e9dd0 | ||
|
|
e7561911cc | ||
|
|
0d727e74c0 | ||
|
|
36dbe5556f | ||
|
|
8b8d08afaa | ||
|
|
dda95dd741 | ||
|
|
50cc43a742 | ||
|
|
d4ab9850f2 | ||
|
|
f561bb57f4 | ||
|
|
99d8681e46 | ||
|
|
ecd28f6c2d | ||
|
|
5a5f8845ca | ||
|
|
8ac34018ab | ||
|
|
95b1560c8a | ||
|
|
a7efea44d1 | ||
|
|
42d8d2256d | ||
|
|
6063a295a0 | ||
|
|
3c8bdeb539 | ||
|
|
08ecfe58d5 | ||
|
|
dd1bde9830 | ||
|
|
5861923f3b | ||
|
|
5aef00dfaa | ||
|
|
ea4790eb6f | ||
|
|
6de98fd652 | ||
|
|
2d180f5a07 | ||
|
|
0ec3991b15 | ||
|
|
d1a6a17c88 | ||
|
|
f1f1d1506d | ||
|
|
d8af0ee835 | ||
|
|
164f96e30a | ||
|
|
b444f8b0fb | ||
|
|
3bac29828c | ||
|
|
1c60d0b314 | ||
|
|
e7f4b555e9 | ||
|
|
5347d994ef | ||
|
|
bb20fe1929 | ||
|
|
b282110d40 | ||
|
|
87fd4e7f57 | ||
|
|
025b312a2e | ||
|
|
b08813f9b6 | ||
|
|
415199d814 | ||
|
|
6f7869784a | ||
|
|
ebe9784b23 | ||
|
|
645b891a1d | ||
|
|
34fbf2df6d | ||
|
|
9ad2cfc855 | ||
|
|
e4c7bd1baa | ||
|
|
1ee8037d2b | ||
|
|
275ee96750 | ||
|
|
8efff2f795 | ||
|
|
b66cb676a1 | ||
|
|
975b7b72c3 | ||
|
|
a520b9e57f | ||
|
|
65b9fabfd7 | ||
|
|
4be63cb75e | ||
|
|
910ed80ae2 | ||
|
|
8677a8354d | ||
|
|
d902417b21 | ||
|
|
338e2e9089 | ||
|
|
fa88ba1583 | ||
|
|
619c14ef65 | ||
|
|
3012967384 | ||
|
|
295aa8861b | ||
|
|
447d949537 | ||
|
|
c87fa9463e | ||
|
|
f7f424bad7 | ||
|
|
e0606e20d8 | ||
|
|
91a2216d27 | ||
|
|
d2643a3372 | ||
|
|
fa01e80386 | ||
|
|
31caa27d39 | ||
|
|
c78962f5f6 | ||
|
|
4a1bdae913 | ||
|
|
2dfd14f3c5 | ||
|
|
023400e84e | ||
|
|
05fd772d46 | ||
|
|
d409075b6c | ||
|
|
8267c48aad | ||
|
|
afbaf931eb | ||
|
|
12105fb25f | ||
|
|
0bd9dbdba2 | ||
|
|
f48fbc58b5 | ||
|
|
c287d0ff5a | ||
|
|
bac2240c0b | ||
|
|
300ed327df | ||
|
|
e14ca3ab77 | ||
|
|
2b5ba6049f | ||
|
|
caf6217b9a | ||
|
|
716976c078 | ||
|
|
00cf85abd4 | ||
|
|
8ef2ed4144 | ||
|
|
befec82120 | ||
|
|
eb7923f4bc | ||
|
|
d70687ff1e | ||
|
|
e7f0c461c6 | ||
|
|
0bbf3f5f0d | ||
|
|
321fd40355 | ||
|
|
add5bcbe6a | ||
|
|
f39e59ba5b | ||
|
|
a65bdbece5 | ||
|
|
184fa6fd9b | ||
|
|
897a14d07f | ||
|
|
36d09b923e | ||
|
|
0928c52100 | ||
|
|
daa1fcdcba | ||
|
|
6bea09f246 | ||
|
|
e88bd5898c | ||
|
|
a5bb5005f8 | ||
|
|
ec664163e5 | ||
|
|
b130076313 | ||
|
|
372a9c9640 | ||
|
|
958a1e6634 | ||
|
|
306a8728b4 | ||
|
|
e9527a6bbf | ||
|
|
d261a019bd | ||
|
|
6465277fb0 | ||
|
|
fc8be6d56f | ||
|
|
cc32089a51 | ||
|
|
56dd0aa594 | ||
|
|
71d8327b32 | ||
|
|
e322e036a4 | ||
|
|
4f2651dd2b | ||
|
|
f53553e301 | ||
|
|
324f776ed5 | ||
|
|
4c346bebff | ||
|
|
083a2c5235 | ||
|
|
7adfb6c1c0 | ||
|
|
190330c204 | ||
|
|
56f975c65e | ||
|
|
a79892028a | ||
|
|
3086b75616 | ||
|
|
9955da3521 | ||
|
|
0ba9130e96 | ||
|
|
0af14b93c5 | ||
|
|
191884d5af | ||
|
|
dd1aac89ce | ||
|
|
24203e8d07 | ||
|
|
e53f79be03 | ||
|
|
435dc2d818 | ||
|
|
39e446ecf2 | ||
|
|
5a013ddc88 | ||
|
|
14b595940f | ||
|
|
b6d4b96aa8 | ||
|
|
de4c5d641d | ||
|
|
f731419f86 | ||
|
|
0e2f00665c | ||
|
|
cae0f541b5 | ||
|
|
88dec452f6 | ||
|
|
28072ad24f | ||
|
|
857c252b14 | ||
|
|
19e9abb7c4 | ||
|
|
89fa2f0523 | ||
|
|
6686e78069 | ||
|
|
928ee586a0 | ||
|
|
08d661d275 | ||
|
|
f7709207d2 | ||
|
|
6174171cab | ||
|
|
6242e7c8b8 | ||
|
|
8a4fd72261 | ||
|
|
80588d0f5f | ||
|
|
377f977f79 | ||
|
|
68393c778b | ||
|
|
8b8458cf78 | ||
|
|
44e8dcf680 | ||
|
|
b83e6170a4 | ||
|
|
dde0e24e0e | ||
|
|
2d31c9bfb6 | ||
|
|
c0bdd74837 | ||
|
|
3ccf2f4a00 | ||
|
|
b9d81b7994 | ||
|
|
fe8af42814 | ||
|
|
03f2c33601 | ||
|
|
1613398492 | ||
|
|
87ad554531 | ||
|
|
d74363baea | ||
|
|
535baff2aa | ||
|
|
dcad84aeff | ||
|
|
df3e0bf956 | ||
|
|
4215ad6e88 | ||
|
|
5c6a4ae7b2 | ||
|
|
33cece0cd1 | ||
|
|
4b3b48c981 | ||
|
|
99eec81983 | ||
|
|
e1b5e2db33 | ||
|
|
cd76087c2f | ||
|
|
ff34df3e42 | ||
|
|
db43fd3a12 | ||
|
|
de42e7e4c1 | ||
|
|
5baeea2b5d | ||
|
|
6d7be12c60 | ||
|
|
98fb897785 | ||
|
|
7bdd9b25ce | ||
|
|
70b995e6f7 | ||
|
|
ecb6ec3adf | ||
|
|
431f7e6fd5 | ||
|
|
e0f8688cb9 | ||
|
|
6fcd6bc6e4 | ||
|
|
56d72946bc | ||
|
|
9099f84441 | ||
|
|
544e8e9d3f | ||
|
|
a032a41935 | ||
|
|
e43215cdf1 | ||
|
|
781aab0c1d | ||
|
|
197aade0d1 | ||
|
|
5de9f545b0 | ||
|
|
43cf24d8d6 | ||
|
|
b3858b977a | ||
|
|
1a38c79d94 | ||
|
|
7ea46bb370 | ||
|
|
2b8120811c | ||
|
|
3498ebb978 | ||
|
|
5f71c2c1b6 | ||
|
|
c68141d4bb | ||
|
|
70b6f456af | ||
|
|
0b86592d5c | ||
|
|
91ee5af643 | ||
|
|
9df03c1119 | ||
|
|
80fb01fd7d | ||
|
|
febbfa2126 | ||
|
|
c9a959d548 | ||
|
|
24473783e9 | ||
|
|
cd429f9556 | ||
|
|
c9b9023f38 | ||
|
|
c8adc8c654 | ||
|
|
08501ce207 | ||
|
|
1e3a9cc07d | ||
|
|
d9dc87f9ab | ||
|
|
31f8cf94da | ||
|
|
c9c5913845 | ||
|
|
95e3276394 | ||
|
|
8d06c82338 | ||
|
|
5da31f76f4 | ||
|
|
8c3933e60e | ||
|
|
c67ea8309a | ||
|
|
b7c3b32b49 | ||
|
|
f6f32fbaa0 | ||
|
|
06f807bb4d | ||
|
|
20975628b2 | ||
|
|
c6b7337317 | ||
|
|
4e040700ab | ||
|
|
673fcfc9fe | ||
|
|
ed1ac27f75 | ||
|
|
d202d53ce2 | ||
|
|
8485e7b436 | ||
|
|
e85c110697 | ||
|
|
a9c0aefa58 | ||
|
|
3a5c840ce8 | ||
|
|
bbf7f8a98b | ||
|
|
24dee6aa62 | ||
|
|
c33452fd0b | ||
|
|
ad099dff27 | ||
|
|
d31e90fb42 | ||
|
|
c150ee66af | ||
|
|
dac6d74fd1 | ||
|
|
598a87c349 | ||
|
|
34ec6cfc8d | ||
|
|
39865b4c09 | ||
|
|
116a605053 | ||
|
|
a1da459343 | ||
|
|
12440e7ab6 | ||
|
|
39af37f20c | ||
|
|
0b9abdd70d | ||
|
|
29c9b0fc78 | ||
|
|
aee977ac36 | ||
|
|
8b03a82480 | ||
|
|
95f9946476 | ||
|
|
a18866a900 | ||
|
|
ab65f99a44 | ||
|
|
2a4158a130 | ||
|
|
0befa49f1a | ||
|
|
d4aa9745ca | ||
|
|
260a5c89ef | ||
|
|
b19aec81b4 | ||
|
|
9eea792fb1 | ||
|
|
d05a084509 | ||
|
|
1722d3b69f | ||
|
|
53a6384515 | ||
|
|
5e492d3e3f | ||
|
|
1daac4cfad | ||
|
|
646939bcf8 |
27
.github/CONTRIBUTING.md
vendored
27
.github/CONTRIBUTING.md
vendored
@@ -1,25 +1,24 @@
|
||||
## Issues
|
||||
|
||||
When reporting a possible bug, provide detail steps so that we will be able
|
||||
to reproduce the issue. Try not to use phrases like "very big bug",
|
||||
"huge issue", "useless feature", etc. No need to use exclamation marks as well.
|
||||
|
||||
Steps to reproduce should be clear and unambiguous.
|
||||
|
||||
Note that we don't provide developer help or any kind of support on GitHub.
|
||||
For this, please use our [forum](https://forum.espocrm.com).
|
||||
|
||||
## Pull Requests
|
||||
|
||||
We are open for contributions that are bug fixes and small improvements. If you would like to contribute something that is not a small fix, please reach out to maintainers before submitting your PR (by creating a GitHub issue).
|
||||
|
||||
Before we can merge your pull request, you need to accept our CLA [here](https://github.com/espocrm/cla).
|
||||
|
||||
It's desirable that one PR solves one specific problem. Do not include code style changes to PRs
|
||||
(unless the main purpose of the PR is a code style fix).
|
||||
|
||||
If you would like to contribute something that is not a small fix, it's reasonable to create an issue first
|
||||
(a bug report or feature request).
|
||||
|
||||
Branches:
|
||||
|
||||
* *master* – the develop branch; new features should be pushed to here;
|
||||
* *fix* – the upcoming maintenance release; small fixes should be pushed to here.
|
||||
|
||||
## Issues
|
||||
|
||||
We'd appreciate if you prefer posting issues on weekdays rather than weekends.
|
||||
|
||||
When reporting a possible bug, please provide detail steps so that we will be able
|
||||
to reproduce the issue. Please try not to use phrases like "very big bug",
|
||||
"huge issue", etc. No need to use exclamation marks as well.
|
||||
|
||||
Note that we don't provide developer help or any kind of support on GitHub.
|
||||
For this, please use our [forum](https://forum.espocrm.com).
|
||||
|
||||
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a bug report. Not to be used for help requests or server configuration issues. We appreciate if you prefer posting bug reports on weekdays rather than weekends.
|
||||
about: Create a bug report. Not to be used for help requests or server configuration issues. Only for issues related to open source EspoCRM. Issues related to extensions should not to be posted here.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
@@ -10,8 +10,8 @@ assignees: ''
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
**To Reproduce (MANDATORY, DO NOT REMOVE)**
|
||||
Explicit steps to reproduce the behavior:
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Freature requests are frozen til mid-June 2023. Please post on the forum instead. (Suggest an idea for EspoCRM).
|
||||
about: For high-level features, consider creating feature requests on the forum. For low-level (framework) – here on GitHub.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
2
.github/workflows/test-integration-pg.yml
vendored
2
.github/workflows/test-integration-pg.yml
vendored
@@ -33,7 +33,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.2']
|
||||
php-versions: ['8.3']
|
||||
branches: ['master']
|
||||
|
||||
steps:
|
||||
|
||||
2
.github/workflows/test-integration.yml
vendored
2
.github/workflows/test-integration.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2']
|
||||
php-versions: ['8.1', '8.3']
|
||||
branches: ['master']
|
||||
|
||||
steps:
|
||||
|
||||
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,6 +5,8 @@
|
||||
/data/.backup/*
|
||||
/data/config.php
|
||||
/data/config-internal.php
|
||||
/data/config-override.php
|
||||
/data/config-internal-override.php
|
||||
/data/tmp/*
|
||||
/build
|
||||
/node_modules
|
||||
|
||||
3
.idea/codeStyles/Project.xml
generated
3
.idea/codeStyles/Project.xml
generated
@@ -1,5 +1,8 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<JSCodeStyleSettings version="0">
|
||||
<option name="USE_DOUBLE_QUOTES" value="false" />
|
||||
</JSCodeStyleSettings>
|
||||
<PHPCodeStyleSettings>
|
||||
<option name="GROUP_USE_WRAP" value="2" />
|
||||
<option name="VARIABLE_NAMING_STYLE" value="CAMEL_CASE" />
|
||||
|
||||
20
.idea/fileTemplates/includes/PHP File Header.php
generated
20
.idea/fileTemplates/includes/PHP File Header.php
generated
@@ -1,27 +1,27 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-${YEAR} Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
3
.idea/inspectionProfiles/Project_Default.xml
generated
3
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -2,13 +2,14 @@
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="ES6ConvertVarToLetConst" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="ES6ConvertLetToConst" enabled="true" level="WEAK WARNING" enabled_by_default="true" editorAttributes="INFO_ATTRIBUTES" />
|
||||
<inspection_tool class="JSIgnoredPromiseFromCall" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpDocMissingThrowsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpDocSignatureIsNotCompleteInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpMissingFieldTypeInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpMissingParamTypeInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpMissingReturnTypeInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpPropertyCanBeReadonlyInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PhpStanGlobal" enabled="false" level="WEAK WARNING" enabled_by_default="false">
|
||||
<option name="config" value="$PROJECT_DIR$/phpstan.neon" />
|
||||
</inspection_tool>
|
||||
|
||||
136
.idea/jsonSchemas.xml
generated
136
.idea/jsonSchemas.xml
generated
@@ -22,6 +22,9 @@
|
||||
<option name="path" value="schema/metadata" />
|
||||
<option name="mappingKind" value="Directory" />
|
||||
</Item>
|
||||
<Item>
|
||||
<option name="path" value="schema/autoload.json" />
|
||||
</Item>
|
||||
<Item>
|
||||
<option name="path" value="schema/module.json" />
|
||||
</Item>
|
||||
@@ -33,6 +36,25 @@
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="autoload">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="autoload" />
|
||||
<option name="relativePathToSchema" value="schema/autoload.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/autoload.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="layouts/detail">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
@@ -528,6 +550,25 @@
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/emailTemplate">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="metadata/app/emailTemplate" />
|
||||
<option name="relativePathToSchema" value="schema/metadata/app/emailTemplate.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/metadata/app/emailTemplate.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/entityManagerParams">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
@@ -566,6 +607,25 @@
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/entityTemplates">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="metadata/app/entityTemplates" />
|
||||
<option name="relativePathToSchema" value="schema/metadata/app/entityTemplates.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/metadata/app/entityTemplates.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/export">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
@@ -737,6 +797,25 @@
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/layouts">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="metadata/app/layouts" />
|
||||
<option name="relativePathToSchema" value="schema/metadata/app/layouts.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/metadata/app/layouts.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/linkManager">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
@@ -756,6 +835,44 @@
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/entityManager">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="metadata/app/entityManager" />
|
||||
<option name="relativePathToSchema" value="schema/metadata/app/entityManager.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/metadata/app/entityManager.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/mapProviders">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="metadata/app/mapProviders" />
|
||||
<option name="relativePathToSchema" value="schema/metadata/app/mapProviders.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/metadata/app/mapProviders.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/massActions">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
@@ -794,6 +911,25 @@
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/clientNavbar">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
<option name="generatedName" value="New Schema" />
|
||||
<option name="name" value="metadata/app/clientNavbar" />
|
||||
<option name="relativePathToSchema" value="schema/metadata/app/clientNavbar.json" />
|
||||
<option name="schemaVersion" value="JSON Schema version 7" />
|
||||
<option name="patterns">
|
||||
<list>
|
||||
<Item>
|
||||
<option name="pattern" value="true" />
|
||||
<option name="path" value="*/Resources/metadata/app/clientNavbar.json" />
|
||||
<option name="mappingKind" value="Pattern" />
|
||||
</Item>
|
||||
</list>
|
||||
</option>
|
||||
</SchemaInfo>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="metadata/app/orm">
|
||||
<value>
|
||||
<SchemaInfo>
|
||||
|
||||
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@@ -3,5 +3,6 @@
|
||||
<component name="PhpEntryPointsManager">
|
||||
<pattern value="\Espo\Controllers\*" member="*Action*" />
|
||||
<pattern value="\Espo\Modules\*\Controllers\*" member="*Action*" />
|
||||
<suppressed_annotations>@implements</suppressed_annotations>
|
||||
</component>
|
||||
</project>
|
||||
50
.vscode/settings.json
vendored
50
.vscode/settings.json
vendored
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/autoload.json"
|
||||
],
|
||||
"url": "./schema/autoload.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/routes.json"
|
||||
@@ -10,7 +16,7 @@
|
||||
"fileMatch": [
|
||||
"*/Resources/module.json"
|
||||
],
|
||||
"url": "./schema/routes.json"
|
||||
"url": "./schema/module.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
@@ -52,12 +58,6 @@
|
||||
],
|
||||
"url": "./schema/metadata/dashlets.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/metadata//*.json"
|
||||
],
|
||||
"url": "./schema/metadata/.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/metadata/entityAcl/*.json"
|
||||
@@ -250,6 +250,12 @@
|
||||
],
|
||||
"url": "./schema/metadata/app/defaultDashboardOptions.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/emailTemplate.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/emailTemplate.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/entityManagerParams.json"
|
||||
@@ -262,6 +268,12 @@
|
||||
],
|
||||
"url": "./schema/metadata/app/entityTemplateList.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/entityTemplates.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/entityTemplates.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/export.json"
|
||||
@@ -316,12 +328,30 @@
|
||||
],
|
||||
"url": "./schema/metadata/app/language.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/layouts.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/layouts.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/linkManager.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/linkManager.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/entityManager.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/entityManager.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/mapProviders.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/mapProviders.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/massActions.json"
|
||||
@@ -334,6 +364,12 @@
|
||||
],
|
||||
"url": "./schema/metadata/app/metadata.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/clientNavbar.json"
|
||||
],
|
||||
"url": "./schema/metadata/app/clientNavbar.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"*/Resources/metadata/app/orm.json"
|
||||
|
||||
146
Gruntfile.js
146
Gruntfile.js
@@ -1,22 +1,29 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
/**
|
||||
@@ -33,19 +40,35 @@ const fs = require('fs');
|
||||
const cp = require('child_process');
|
||||
const path = require('path');
|
||||
const buildUtils = require('./js/build-utils');
|
||||
const {TemplateBundler, Bundler} = require('espo-frontend-build-tools');
|
||||
const LayoutTypeBundler = require('./js/layout-template-bundler');
|
||||
|
||||
const bundleConfig = require('./frontend/bundle-config.json');
|
||||
const libs = require('./frontend/libs.json');
|
||||
|
||||
module.exports = grunt => {
|
||||
|
||||
const pkg = grunt.file.readJSON('package.json');
|
||||
const bundleConfig = require('./frontend/bundle-config.json');
|
||||
const libs = require('./frontend/libs.json');
|
||||
|
||||
const originalLibDir = 'client/lib/original';
|
||||
|
||||
let bundleJsFileList = buildUtils.getPreparedBundleLibList(libs).concat(originalLibDir + '/espo.js');
|
||||
let copyJsFileList = buildUtils.getCopyLibDataList(libs);
|
||||
const libsBundleFileList = [
|
||||
'client/src/namespace.js',
|
||||
'client/src/loader.js',
|
||||
...buildUtils.getPreparedBundleLibList(libs),
|
||||
];
|
||||
|
||||
let minifyLibFileList = copyJsFileList
|
||||
const bundleFileMap = {'client/lib/espo.js': libsBundleFileList};
|
||||
|
||||
for (const name in bundleConfig.chunks) {
|
||||
const namePart = 'espo-' + name;
|
||||
|
||||
bundleFileMap[`client/lib/${namePart}.js`] = originalLibDir + `/${namePart}.js`
|
||||
}
|
||||
|
||||
const copyJsFileList = buildUtils.getCopyLibDataList(libs);
|
||||
|
||||
const minifyLibFileList = copyJsFileList
|
||||
.filter(item => item.minify)
|
||||
.map(item => {
|
||||
return {
|
||||
@@ -54,21 +77,21 @@ module.exports = grunt => {
|
||||
};
|
||||
});
|
||||
|
||||
let currentPath = path.dirname(fs.realpathSync(__filename));
|
||||
const currentPath = path.dirname(fs.realpathSync(__filename));
|
||||
|
||||
let themeList = [];
|
||||
const themeList = [];
|
||||
|
||||
fs.readdirSync('application/Espo/Resources/metadata/themes').forEach(file => {
|
||||
themeList.push(file.substring(0, file.length - 5));
|
||||
});
|
||||
|
||||
let cssminFilesData = {};
|
||||
let lessData = {};
|
||||
const cssminFilesData = {};
|
||||
const lessData = {};
|
||||
|
||||
themeList.forEach(theme => {
|
||||
let name = buildUtils.camelCaseToHyphen(theme);
|
||||
const name = buildUtils.camelCaseToHyphen(theme);
|
||||
|
||||
let files = {};
|
||||
const files = {};
|
||||
|
||||
files['client/css/espo/'+name+'.css'] = 'frontend/less/'+name+'/main.less';
|
||||
files['client/css/espo/'+name+'-iframe.css'] = 'frontend/less/'+name+'/iframe/main.less';
|
||||
@@ -118,6 +141,10 @@ module.exports = grunt => {
|
||||
'!build/tmp/client/custom/modules',
|
||||
'build/tmp/client/custom/modules/*',
|
||||
'!build/tmp/client/custom/modules/dummy.txt',
|
||||
'build/tmp/client/lib/original/espo.js',
|
||||
'build/tmp/client/lib/original/espo-*.js',
|
||||
'!build/tmp/client/lib/original/espo-funnel-chart.js',
|
||||
'build/tmp/client/lib/transpiled',
|
||||
]
|
||||
},
|
||||
},
|
||||
@@ -132,19 +159,19 @@ module.exports = grunt => {
|
||||
|
||||
uglify: {
|
||||
options: {
|
||||
mangle: true,
|
||||
sourceMap: true,
|
||||
output: {
|
||||
comments: /^!/,
|
||||
},
|
||||
beautify: false,
|
||||
mangle: true,
|
||||
compress: true
|
||||
},
|
||||
bundle: {
|
||||
options: {
|
||||
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
|
||||
},
|
||||
files: {
|
||||
'client/lib/espo.min.js': bundleJsFileList,
|
||||
},
|
||||
files: bundleFileMap,
|
||||
},
|
||||
lib: {
|
||||
files: minifyLibFileList,
|
||||
@@ -162,7 +189,6 @@ module.exports = grunt => {
|
||||
'src/**',
|
||||
'res/**',
|
||||
'fonts/**',
|
||||
'cfg/**',
|
||||
'modules/**',
|
||||
'img/**',
|
||||
'css/**',
|
||||
@@ -249,16 +275,43 @@ module.exports = grunt => {
|
||||
},
|
||||
});
|
||||
|
||||
grunt.registerTask('espo-bundle', () => {
|
||||
const Bundler = require('./js/bundler');
|
||||
|
||||
let contents = (new Bundler()).bundle(bundleConfig.jsFiles);
|
||||
|
||||
const writeOriginalLib = (name, contents) => {
|
||||
if (!fs.existsSync(originalLibDir)) {
|
||||
fs.mkdirSync(originalLibDir);
|
||||
}
|
||||
|
||||
fs.writeFileSync(originalLibDir + '/espo.js', contents, 'utf8');
|
||||
const file = originalLibDir + `/${name}.js`;
|
||||
|
||||
fs.writeFileSync(file, contents, 'utf8');
|
||||
};
|
||||
|
||||
grunt.registerTask('bundle', () => {
|
||||
const bundler = new Bundler(bundleConfig, libs);
|
||||
|
||||
const result = bundler.bundle();
|
||||
|
||||
for (const name in result) {
|
||||
let contents = result[name];
|
||||
|
||||
const key = 'espo-' + name;
|
||||
|
||||
if (name === 'main') {
|
||||
contents += '\n' + (new LayoutTypeBundler()).bundle();
|
||||
}
|
||||
|
||||
writeOriginalLib(key, contents);
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('bundle-templates', () => {
|
||||
const templateBundler = new TemplateBundler({
|
||||
dirs: [
|
||||
'client/res/templates',
|
||||
'client/modules/crm/res/templates',
|
||||
],
|
||||
});
|
||||
|
||||
templateBundler.process();
|
||||
});
|
||||
|
||||
grunt.registerTask('prepare-lib-original', () => {
|
||||
@@ -270,6 +323,10 @@ module.exports = grunt => {
|
||||
cp.execSync("node js/scripts/prepare-lib");
|
||||
});
|
||||
|
||||
grunt.registerTask('transpile', () => {
|
||||
cp.execSync("node js/transpile");
|
||||
});
|
||||
|
||||
grunt.registerTask('chmod-folders', () => {
|
||||
cp.execSync(
|
||||
"find . -type d -exec chmod 755 {} +",
|
||||
@@ -278,9 +335,9 @@ module.exports = grunt => {
|
||||
});
|
||||
|
||||
grunt.registerTask('chmod-multiple', () => {
|
||||
let dirPath = 'build/EspoCRM-' + pkg.version;
|
||||
const dirPath = 'build/EspoCRM-' + pkg.version;
|
||||
|
||||
let fileList = [
|
||||
const fileList = [
|
||||
{
|
||||
name: '*.php',
|
||||
},
|
||||
@@ -313,7 +370,7 @@ module.exports = grunt => {
|
||||
},
|
||||
];
|
||||
|
||||
let dirReadableList = [
|
||||
const dirReadableList = [
|
||||
'public/install',
|
||||
'public/portal',
|
||||
'public/api',
|
||||
@@ -322,7 +379,7 @@ module.exports = grunt => {
|
||||
'.',
|
||||
];
|
||||
|
||||
let dirWritableList = [
|
||||
const dirWritableList = [
|
||||
'data',
|
||||
'custom',
|
||||
'custom/Espo',
|
||||
@@ -333,8 +390,8 @@ module.exports = grunt => {
|
||||
];
|
||||
|
||||
fileList.forEach(item => {
|
||||
let path = item.folder || '.';
|
||||
let name = item.name;
|
||||
const path = item.folder || '.';
|
||||
const name = item.name;
|
||||
|
||||
cp.execSync(
|
||||
`find ${path} -type f -iname "${name}" -exec chmod 644 {} +`,
|
||||
@@ -397,23 +454,22 @@ module.exports = grunt => {
|
||||
grunt.registerTask('zip', function () { // Don't change to arrow-function.
|
||||
const archiver = require('archiver');
|
||||
|
||||
let resolve = this.async();
|
||||
const resolve = this.async();
|
||||
|
||||
let folder = 'EspoCRM-' + pkg.version;
|
||||
|
||||
let zipPath = 'build/' + folder +'.zip';
|
||||
const folder = 'EspoCRM-' + pkg.version;
|
||||
const zipPath = 'build/' + folder + '.zip';
|
||||
|
||||
if (fs.existsSync(zipPath)) {
|
||||
fs.unlinkSync(zipPath);
|
||||
}
|
||||
|
||||
let archive = archiver('zip');
|
||||
const archive = archiver('zip');
|
||||
|
||||
archive.on('error', err => {
|
||||
grunt.fail.warn(err);
|
||||
});
|
||||
|
||||
let zipOutput = fs.createWriteStream(zipPath);
|
||||
const zipOutput = fs.createWriteStream(zipPath);
|
||||
|
||||
zipOutput.on('close', () => {
|
||||
console.log("EspoCRM package has been built.");
|
||||
@@ -443,8 +499,10 @@ module.exports = grunt => {
|
||||
grunt.registerTask('internal', [
|
||||
'less',
|
||||
'cssmin',
|
||||
'espo-bundle',
|
||||
'prepare-lib-original',
|
||||
'transpile',
|
||||
'bundle',
|
||||
'bundle-templates',
|
||||
'uglify:bundle',
|
||||
'copy:frontendLib',
|
||||
'prepare-lib',
|
||||
|
||||
147
LICENSE.txt
147
LICENSE.txt
@@ -1,23 +1,21 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
@@ -26,44 +24,34 @@ them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
@@ -72,7 +60,7 @@ modification follow.
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
@@ -549,35 +537,45 @@ to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
@@ -635,40 +633,29 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
89
README.md
89
README.md
@@ -2,28 +2,58 @@
|
||||
|
||||
[](#espocrm)
|
||||
|
||||
[EspoCRM is an Open Source CRM](https://www.espocrm.com) (Customer Relationship Management)
|
||||
software that allows you to see, enter and evaluate all your company relationships regardless
|
||||
of the type. People, companies or opportunities – all in an easy and intuitive interface.
|
||||
|
||||
It's a web application with a frontend designed as a single page application and REST API
|
||||
backend written in PHP.
|
||||
|
||||
[Download](https://www.espocrm.com/download/) the latest release from our website. Release notes
|
||||
and release packages are available at [Releases](https://github.com/espocrm/espocrm/releases) on GitHub.
|
||||
[EspoCRM](https://www.espocrm.com) is a free, open-source CRM platform designed to help organizations build and maintain strong customer relationships.
|
||||
It provides a wide range of tools to store, organize, and manage leads, contacts, sales opportunities, marketing campaigns,
|
||||
support cases, and more – all business information in a simple and intuitive interface.
|
||||
|
||||

|
||||
|
||||
### Architecture
|
||||
|
||||
EspoCRM is a web application with a frontend designed as a single-page application and a REST API
|
||||
backend written in PHP.
|
||||
|
||||
### Demo
|
||||
|
||||
You can try the CRM on the online [demo](https://www.espocrm.com/demo/).
|
||||
You can try the CRM on an online [demo](https://www.espocrm.com/demo/).
|
||||
|
||||
### Requirements
|
||||
|
||||
* PHP 8.0 and later;
|
||||
* MySQL 5.7 (and later), or MariaDB 10.2 (and later).
|
||||
* PHP 8.1 - 8.3;
|
||||
* MySQL 5.7 (and later), or MariaDB 10.2 (and later);
|
||||
* PostgreSQL 15 (and later) (beta, official support soon).
|
||||
|
||||
For more information about server configuration see [this article](https://docs.espocrm.com/administration/server-configuration/).
|
||||
For more information about server configuration, see [this article](https://docs.espocrm.com/administration/server-configuration/).
|
||||
|
||||
### Why EspoCRM?
|
||||
|
||||
* **Open-source transparency**. EspoCRM’s source code is open and accessible, so anyone can inspect it and see how data is being managed within the CRM.
|
||||
* **Customization freedom**. You can develop features, create custom entities, fields, relationships, buttons to make the CRM fit your specific needs.
|
||||
* **Clean user interface**. EspoCRM has a uncluttered, minimalist and very fast user inteface that is easy to navigate and has a short learning curve.
|
||||
* **Straightforward REST API**. It can be easily integrated with other applications using a REST API.
|
||||
|
||||
### Who is EspoCRM for?
|
||||
|
||||
* **Startups, small & medium-sized businesses**. It’s an affordable solution that is flexible and fully customizable.
|
||||
* **Developers & tech enthusiasts**. You can extend functionalities, build extensions, and create custom integrations.
|
||||
* **Anyone seeking a free CRM**. If you're looking for a user-friendly and secure CRM platform, it can be a good option.
|
||||
|
||||
### Installing stable version
|
||||
|
||||
See installation instructions:
|
||||
|
||||
* [Manual installation](https://docs.espocrm.com/administration/installation/)
|
||||
* [Installation by script](https://docs.espocrm.com/administration/installation-by-script/)
|
||||
* [Installation with Docker](https://docs.espocrm.com/administration/docker/installation/)
|
||||
* [Installation with Traefik](https://docs.espocrm.com/administration/docker/traefik/)
|
||||
|
||||
### Download
|
||||
|
||||
[Download](https://www.espocrm.com/download/) the latest release from our website. You can also download the latest and previous release packages from GitHub [releases](https://github.com/espocrm/espocrm/releases).
|
||||
|
||||
### Release notes
|
||||
|
||||
Release notes are available at GitHub [releases](https://github.com/espocrm/espocrm/releases).
|
||||
|
||||
### Documentation
|
||||
|
||||
@@ -33,24 +63,25 @@ See the [documentation](https://docs.espocrm.com) for administrators, users and
|
||||
|
||||
Create a [GitHub issue](https://github.com/espocrm/espocrm/issues/new/choose) or post on our [forum](https://forum.espocrm.com/forum/bug-reports).
|
||||
|
||||
### Installing stable version
|
||||
|
||||
See installation instructions:
|
||||
|
||||
* [Manual installation](https://docs.espocrm.com/administration/installation/)
|
||||
* [Installation by script](https://docs.espocrm.com/administration/installation-by-script/)
|
||||
* [Installation with Docker](https://docs.espocrm.com/administration/docker/installation/)
|
||||
* [Installation with Traefik](https://docs.espocrm.com/administration/docker/traefik/)
|
||||
|
||||
### Development
|
||||
|
||||
See the [developer documentation](https://docs.espocrm.com/development/).
|
||||
|
||||
We highly recommend using IDE for development. The backend codebase follows SOLID principles, utilizes interfaces, static typing and generics. We recommend to start learning EspoCRM from the Dependency Injection article in the documentation.
|
||||
We highly recommend using an IDE for development. The backend codebase follows SOLID principles, utilizes interfaces, static typing and generics. We recommend to start learning EspoCRM from the Dependency Injection article in the documentation.
|
||||
|
||||
Metadata plays an integral role in the EspoCRM application. All possible parameters are described with a JSON Schema, meaning you will have autocompletion in the IDE. You can also find the full metadata reference in the documentation.
|
||||
|
||||
### Community & Support
|
||||
|
||||
If you have a question regarding some features, need help or customizations, want to get in touch with other EspoCRM users, or add a feature request, please use our [community forum](https://forum.espocrm.com/). We believe that using the forum to ask for help and share experience allows everyone in the community to contribute and use this knowledge later.
|
||||
|
||||
### License
|
||||
|
||||
EspoCRM is an open-source project licensed under [GNU AGPLv3](https://raw.githubusercontent.com/espocrm/espocrm/master/LICENSE.txt).
|
||||
|
||||
### Contributing
|
||||
|
||||
Before we can merge your pull request, you need to accept our CLA [here](https://github.com/espocrm/cla). It's very simple to do.
|
||||
Before we can merge your pull request, you need to accept our CLA [here](https://github.com/espocrm/cla). See the [contributing guidelines](https://github.com/espocrm/espocrm/blob/master/.github/CONTRIBUTING.md).
|
||||
|
||||
Branches:
|
||||
|
||||
@@ -60,14 +91,6 @@ Branches:
|
||||
|
||||
### Language
|
||||
|
||||
If you want to improve existing translation or add a language that is not available yet, you can contribute on our [POEditor](https://poeditor.com/join/project/gLDKZtUF4i) project. See instructions [here](https://www.espocrm.com/blog/how-to-use-poeditor-to-translate-espocrm/).
|
||||
If you want to improve existing translation or add a language that is not available yet, you can contribute on our [POEditor](https://poeditor.com/join/project/gLDKZtUF4i) project. See instructions [here](https://www.espocrm.com/blog/how-to-use-poeditor-to-translate-espocrm/). It may be reasonable to let us know about your intention to join the POEditor project by posting on our forum or via the contact form on our website.
|
||||
|
||||
Changes on POEditor are usually merged to the GitHub repository before minor releases.
|
||||
|
||||
### Community & Support
|
||||
|
||||
If you have a question regarding some features, need help or customizations, want to get in touch with other EspoCRM users, or add a feature request, please use our [community forum](https://forum.espocrm.com/). We believe that using the forum to ask for help and share experience allows everyone in the community to contribute and use this knowledge later.
|
||||
|
||||
### License
|
||||
|
||||
EspoCRM is published under the GNU GPLv3 [license](https://raw.githubusercontent.com/espocrm/espocrm/master/LICENSE.txt).
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -63,11 +63,6 @@ class Binding implements BindingProcessor
|
||||
'container'
|
||||
);
|
||||
|
||||
$binder->bindService(
|
||||
'Espo\\Core\\Container',
|
||||
'container'
|
||||
);
|
||||
|
||||
$binder->bindService(
|
||||
'Psr\\Container\\ContainerInterface',
|
||||
'container'
|
||||
@@ -148,11 +143,6 @@ class Binding implements BindingProcessor
|
||||
'recordServiceContainer'
|
||||
);
|
||||
|
||||
$binder->bindService(
|
||||
'Espo\\Core\\Record\\HookManager',
|
||||
'recordHookManager'
|
||||
);
|
||||
|
||||
$binder->bindService(
|
||||
'Espo\\Core\\HookManager',
|
||||
'hookManager'
|
||||
@@ -240,6 +230,11 @@ class Binding implements BindingProcessor
|
||||
'Espo\\ORM\\PDO\\PDOProvider',
|
||||
'Espo\\ORM\\PDO\\DefaultPDOProvider'
|
||||
);
|
||||
|
||||
$binder->bindImplementation(
|
||||
'Espo\\Core\\Utils\\Database\\ConfigDataProvider',
|
||||
'Espo\\Core\\Utils\\Database\\DefaultConfigDataProvider'
|
||||
);
|
||||
}
|
||||
|
||||
private function bindMisc(Binder $binder): void
|
||||
@@ -282,6 +277,21 @@ class Binding implements BindingProcessor
|
||||
'Espo\\Core\\Mail\\Importer\\DuplicateFinder',
|
||||
'Espo\\Core\\Mail\\Importer\\DefaultDuplicateFinder'
|
||||
);
|
||||
|
||||
$binder->bindImplementation(
|
||||
'Espo\\Tools\\Api\\Cors\\Helper',
|
||||
'Espo\\Tools\\Api\\Cors\\DefaultHelper'
|
||||
);
|
||||
|
||||
$binder->bindImplementation(
|
||||
'Espo\\Core\\Record\\ActionHistory\\ActionLogger',
|
||||
'Espo\\Core\\Record\\ActionHistory\\DefaultActionLogger'
|
||||
);
|
||||
|
||||
$binder->bindImplementation(
|
||||
'Espo\\Core\\Mail\\Importer',
|
||||
'Espo\\Core\\Mail\\Importer\\DefaultImporter'
|
||||
);
|
||||
}
|
||||
|
||||
private function bindAcl(Binder $binder): void
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -99,10 +99,7 @@ class AccessChecker implements AccessEntityCREDChecker
|
||||
else if ($this->aclManager->checkEntity($user, $parent)) {
|
||||
if (
|
||||
$entity->getTargetField() &&
|
||||
in_array(
|
||||
$entity->getTargetField(),
|
||||
$this->aclManager->getScopeForbiddenFieldList($user, $parent->getEntityType())
|
||||
)
|
||||
!$this->aclManager->checkField($user, $parent->getEntityType(), $entity->getTargetField())
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Acl\Email\LinkCheckers;
|
||||
|
||||
use Espo\Core\Acl\LinkChecker;
|
||||
use Espo\Core\AclManager;
|
||||
use Espo\Entities\Email;
|
||||
use Espo\Entities\User;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\ORM\EntityManager;
|
||||
|
||||
/**
|
||||
* @implements LinkChecker<Email, Entity>
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class ParentLinkChecker implements LinkChecker
|
||||
{
|
||||
public function __construct(
|
||||
private EntityManager $entityManager,
|
||||
private AclManager $aclManager
|
||||
) {}
|
||||
|
||||
public function check(User $user, Entity $entity, Entity $foreignEntity): bool
|
||||
{
|
||||
if ($this->aclManager->checkEntityRead($user, $foreignEntity)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!$entity->getReplied()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$replied = $this->entityManager
|
||||
->getRepositoryByClass(Email::class)
|
||||
->getById($entity->getReplied()->getId());
|
||||
|
||||
if (!$replied) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$parentLink = $replied->getParent();
|
||||
|
||||
if (
|
||||
!$parentLink ||
|
||||
$parentLink->getId() !== $foreignEntity->getId() ||
|
||||
$parentLink->getEntityType() !== $foreignEntity->getEntityType()
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->aclManager->checkEntityRead($user, $replied);
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,33 +2,35 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Acl\Note;
|
||||
|
||||
use Espo\Core\Acl\Permission;
|
||||
use Espo\Core\Acl\Table;
|
||||
use Espo\Entities\Note;
|
||||
use Espo\Entities\User;
|
||||
use Espo\ORM\Entity;
|
||||
@@ -141,6 +143,10 @@ class AccessChecker implements AccessEntityCREDChecker
|
||||
return in_array($user->getId(), $entity->getLinkMultipleIdList('users'));
|
||||
}
|
||||
|
||||
if ($entity->getTargetType() === Note::TARGET_PORTALS) {
|
||||
return $this->aclManager->getPermissionLevel($user, Permission::PORTAL) === Table::LEVEL_YES;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,33 +2,34 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Acl\Portal;
|
||||
|
||||
use Espo\Core\Acl\Permission;
|
||||
use Espo\Entities\Portal;
|
||||
use Espo\Entities\User;
|
||||
use Espo\Core\Acl\AccessEntityCREDChecker;
|
||||
@@ -45,18 +46,12 @@ class AccessChecker implements AccessEntityCREDChecker
|
||||
{
|
||||
use DefaultAccessCheckerDependency;
|
||||
|
||||
private DefaultAccessChecker $defaultAccessChecker;
|
||||
private AclManager $aclManager;
|
||||
|
||||
public function __construct(DefaultAccessChecker $defaultAccessChecker, AclManager $aclManager)
|
||||
{
|
||||
$this->defaultAccessChecker = $defaultAccessChecker;
|
||||
$this->aclManager = $aclManager;
|
||||
}
|
||||
public function __construct(private DefaultAccessChecker $defaultAccessChecker, private AclManager $aclManager)
|
||||
{}
|
||||
|
||||
public function check(User $user, ScopeData $data): bool
|
||||
{
|
||||
$level = $this->aclManager->getPermissionLevel($user, 'portal');
|
||||
$level = $this->aclManager->getPermissionLevel($user, Permission::PORTAL);
|
||||
|
||||
return $level === Table::LEVEL_YES;
|
||||
}
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,33 +2,34 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Acl\User;
|
||||
|
||||
use Espo\Core\Acl\Permission;
|
||||
use Espo\Entities\User;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Core\Acl\AccessEntityCREDSChecker;
|
||||
@@ -60,8 +61,6 @@ class AccessChecker implements AccessEntityCREDSChecker
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @var User $entity */
|
||||
|
||||
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
|
||||
return false;
|
||||
}
|
||||
@@ -71,10 +70,8 @@ class AccessChecker implements AccessEntityCREDSChecker
|
||||
|
||||
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
|
||||
{
|
||||
/** @var User $entity */
|
||||
|
||||
if ($entity->isPortal()) {
|
||||
if ($this->aclManager->getPermissionLevel($user, 'portal') === Table::LEVEL_YES) {
|
||||
if ($this->aclManager->getPermissionLevel($user, Permission::PORTAL) === Table::LEVEL_YES) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -90,8 +87,6 @@ class AccessChecker implements AccessEntityCREDSChecker
|
||||
|
||||
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
|
||||
{
|
||||
/** @var User $entity */
|
||||
|
||||
if ($entity->isSystem()) {
|
||||
return false;
|
||||
}
|
||||
@@ -111,8 +106,6 @@ class AccessChecker implements AccessEntityCREDSChecker
|
||||
|
||||
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
|
||||
{
|
||||
/** @var User $entity */
|
||||
|
||||
if (!$user->isAdmin()) {
|
||||
return false;
|
||||
}
|
||||
@@ -130,8 +123,7 @@ class AccessChecker implements AccessEntityCREDSChecker
|
||||
|
||||
public function checkEntityStream(User $user, Entity $entity, ScopeData $data): bool
|
||||
{
|
||||
/** @var User $entity */
|
||||
|
||||
return $this->aclManager->checkUserPermission($user, $entity, 'user');
|
||||
/** @noinspection PhpRedundantOptionalArgumentInspection */
|
||||
return $this->aclManager->checkUserPermission($user, $entity, Permission::USER);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -105,10 +105,7 @@ class AccessChecker implements AccessEntityCREDChecker
|
||||
else if ($this->aclManager->checkEntity($user, $parent)) {
|
||||
if (
|
||||
$entity->getTargetField() &&
|
||||
in_array(
|
||||
$entity->getTargetField(),
|
||||
$this->aclManager->getScopeForbiddenFieldList($user, $parent->getEntityType())
|
||||
)
|
||||
!$this->aclManager->checkField($user, $parent->getEntityType(), $entity->getTargetField())
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
48
application/Espo/Classes/AppParams/AddressCountryData.php
Normal file
48
application/Espo/Classes/AppParams/AddressCountryData.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\AppParams;
|
||||
|
||||
use Espo\Core\Utils\Address\CountryDataProvider;
|
||||
use Espo\Tools\App\AppParam;
|
||||
|
||||
class AddressCountryData implements AppParam
|
||||
{
|
||||
public function __construct(
|
||||
private CountryDataProvider $provider
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @return array{list: string[], preferredList: string[]}
|
||||
*/
|
||||
public function get(): array
|
||||
{
|
||||
return $this->provider->get();
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,31 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\AppParams;
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
65
application/Espo/Classes/Cleanup/AppLog.php
Normal file
65
application/Espo/Classes/Cleanup/AppLog.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Cleanup;
|
||||
|
||||
use Espo\Core\Cleanup\Cleanup;
|
||||
use Espo\Core\Field\DateTime;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Entities\AppLogRecord;
|
||||
use Espo\ORM\EntityManager;
|
||||
use Espo\ORM\Query\DeleteBuilder;
|
||||
|
||||
class AppLog implements Cleanup
|
||||
{
|
||||
private const PERIOD = '30 days';
|
||||
|
||||
public function __construct(
|
||||
private EntityManager $entityManager,
|
||||
private Config $config
|
||||
) {}
|
||||
|
||||
public function process(): void
|
||||
{
|
||||
$query = DeleteBuilder::create()
|
||||
->from(AppLogRecord::ENTITY_TYPE)
|
||||
->where(['createdAt<' => $this->getBefore()->toString()])
|
||||
->build();
|
||||
|
||||
$this->entityManager->getQueryExecutor()->execute($query);
|
||||
}
|
||||
|
||||
private function getBefore(): DateTime
|
||||
{
|
||||
/** @var string $period */
|
||||
$period = $this->config->get('cleanupAppLogPeriod') ?? self::PERIOD;
|
||||
|
||||
return DateTime::createNow()->modify('-' . $period);
|
||||
}
|
||||
}
|
||||
104
application/Espo/Classes/Cleanup/Audit.php
Normal file
104
application/Espo/Classes/Cleanup/Audit.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Cleanup;
|
||||
|
||||
use Espo\Core\Cleanup\Cleanup;
|
||||
use Espo\Core\Field\DateTime;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\Entities\Note;
|
||||
use Espo\ORM\EntityManager;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class Audit implements Cleanup
|
||||
{
|
||||
private const PERIOD = '3 months';
|
||||
|
||||
public function __construct(
|
||||
private Metadata $metadata,
|
||||
private EntityManager $entityManager,
|
||||
private Config $config
|
||||
) {}
|
||||
|
||||
public function process(): void
|
||||
{
|
||||
if (!$this->config->get('cleanupAudit')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$entityTypeList = $this->getEntityTypeList();
|
||||
|
||||
foreach ($entityTypeList as $scope) {
|
||||
$this->processEntityType($scope);
|
||||
}
|
||||
}
|
||||
|
||||
private function processEntityType(string $entityType): void
|
||||
{
|
||||
$query = $this->entityManager
|
||||
->getQueryBuilder()
|
||||
->delete()
|
||||
->from(Note::ENTITY_TYPE)
|
||||
->where([
|
||||
'parentType' => $entityType,
|
||||
'createdAt<' => $this->getBefore()->toString(),
|
||||
'type' => [Note::TYPE_UPDATE, Note::TYPE_STATUS],
|
||||
])
|
||||
->build();
|
||||
|
||||
$this->entityManager->getQueryExecutor()->execute($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
private function getEntityTypeList(): array
|
||||
{
|
||||
/** @var string[] $scopeList */
|
||||
$scopeList = array_keys($this->metadata->get(['scopes']) ?? []);
|
||||
|
||||
$scopeList = array_filter($scopeList, function ($item) {
|
||||
return $this->metadata->get(['scopes', $item, 'entity']) &&
|
||||
!$this->metadata->get(['scopes', $item, 'stream']);
|
||||
});
|
||||
|
||||
return array_values($scopeList);
|
||||
}
|
||||
|
||||
private function getBefore(): DateTime
|
||||
{
|
||||
/** @var string $period */
|
||||
$period = $this->config->get('cleanupAuditPeriod') ?? self::PERIOD;
|
||||
|
||||
return DateTime::createNow()->modify('-' . $period);
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -57,7 +57,7 @@ class Exports implements Cleanup
|
||||
|
||||
$before = DateTime::createNow()
|
||||
->modify($period)
|
||||
->getString();
|
||||
->toString();
|
||||
|
||||
$delete = $this->entityManager
|
||||
->getQueryBuilder()
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -55,7 +55,7 @@ class MassActions implements Cleanup
|
||||
|
||||
$before = DateTime::createNow()
|
||||
->modify($period)
|
||||
->getString();
|
||||
->toString();
|
||||
|
||||
$delete = $this->entityManager
|
||||
->getQueryBuilder()
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -56,7 +56,7 @@ class PasswordChangeRequests implements Cleanup
|
||||
|
||||
$before = DateTime::createNow()
|
||||
->modify($period)
|
||||
->getString();
|
||||
->toString();
|
||||
|
||||
$delete = $this->entityManager
|
||||
->getQueryBuilder()
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
137
application/Espo/Classes/Cleanup/Stars.php
Normal file
137
application/Espo/Classes/Cleanup/Stars.php
Normal file
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\Cleanup;
|
||||
|
||||
use Espo\Core\Cleanup\Cleanup;
|
||||
use Espo\Core\Utils\Acl\UserAclManagerProvider;
|
||||
use Espo\Entities\StarSubscription;
|
||||
use Espo\Entities\User;
|
||||
use Espo\ORM\EntityManager;
|
||||
use Espo\ORM\Query\DeleteBuilder;
|
||||
use Espo\Tools\Stars\StarService;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class Stars implements Cleanup
|
||||
{
|
||||
public function __construct(
|
||||
private EntityManager $entityManager,
|
||||
private UserAclManagerProvider $userAclManagerProvider,
|
||||
private StarService $service
|
||||
) {}
|
||||
|
||||
public function process(): void
|
||||
{
|
||||
foreach ($this->getEntityTypeList() as $entityType) {
|
||||
$this->processEntityType($entityType);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
private function getEntityTypeList(): array
|
||||
{
|
||||
$groups = $this->entityManager->getRDBRepositoryByClass(StarSubscription::class)
|
||||
->group('entityType')
|
||||
->select('entityType')
|
||||
->find();
|
||||
|
||||
$list = [];
|
||||
|
||||
foreach ($groups as $group) {
|
||||
$list[] = $group->get('entityType');
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
private function processEntityType(string $entityType): void
|
||||
{
|
||||
if (
|
||||
!$this->service->isEnabled($entityType) ||
|
||||
!$this->entityManager->hasRepository($entityType)
|
||||
) {
|
||||
$deleteQuery = DeleteBuilder::create()
|
||||
->from(StarSubscription::ENTITY_TYPE)
|
||||
->where(['entityType' => $entityType])
|
||||
->build();
|
||||
|
||||
$this->entityManager->getQueryExecutor()->execute($deleteQuery);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$stars = $this->entityManager
|
||||
->getRDBRepositoryByClass(StarSubscription::class)
|
||||
->where(['entityType' => $entityType])
|
||||
->sth()
|
||||
->find();
|
||||
|
||||
foreach ($stars as $star) {
|
||||
$entityId = $star->get('entityId');
|
||||
$userId = $star->get('userId');
|
||||
|
||||
if ($userId === null || $entityId === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$entity = $this->entityManager->getEntityById($entityType, $entityId);
|
||||
$user = $this->entityManager->getRDBRepositoryByClass(User::class)->getById($userId);
|
||||
|
||||
if (!$entity || !$user) {
|
||||
$this->unstar($userId, $entityType, $entityId);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$aclManager = $this->userAclManagerProvider->get($user);
|
||||
|
||||
if (!$aclManager->checkEntityRead($user, $entity)) {
|
||||
$this->unstar($userId, $entityType, $entityId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function unstar(string $userId, string $entityType, string $entityId): void
|
||||
{
|
||||
$deleteQuery = DeleteBuilder::create()
|
||||
->from(StarSubscription::ENTITY_TYPE)
|
||||
->where([
|
||||
'userId' => $userId,
|
||||
'entityType' => $entityType,
|
||||
'entityId' => $entityId,
|
||||
])
|
||||
->build();
|
||||
|
||||
$this->entityManager->getQueryExecutor()->execute($deleteQuery);
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -33,7 +33,7 @@ use Espo\Core\Cleanup\Cleanup;
|
||||
use Espo\Core\Field\DateTime;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\Entities\Subscription;
|
||||
use Espo\Entities\StreamSubscription;
|
||||
use Espo\ORM\EntityManager;
|
||||
use Espo\ORM\Query\Part\Condition as Cond;
|
||||
|
||||
@@ -41,19 +41,11 @@ class Subscribers implements Cleanup
|
||||
{
|
||||
private const PERIOD = '2 months';
|
||||
|
||||
private Metadata $metadata;
|
||||
private EntityManager $entityManager;
|
||||
private Config $config;
|
||||
|
||||
public function __construct(
|
||||
Metadata $metadata,
|
||||
EntityManager $entityManager,
|
||||
Config $config
|
||||
) {
|
||||
$this->metadata = $metadata;
|
||||
$this->entityManager = $entityManager;
|
||||
$this->config = $config;
|
||||
}
|
||||
private Metadata $metadata,
|
||||
private EntityManager $entityManager,
|
||||
private Config $config
|
||||
) {}
|
||||
|
||||
public function process(): void
|
||||
{
|
||||
@@ -105,7 +97,7 @@ class Subscribers implements Cleanup
|
||||
$query = $this->entityManager
|
||||
->getQueryBuilder()
|
||||
->delete()
|
||||
->from(Subscription::ENTITY_TYPE, 'subscription')
|
||||
->from(StreamSubscription::ENTITY_TYPE, 'subscription')
|
||||
->join(
|
||||
$entityType,
|
||||
'entity',
|
||||
@@ -122,7 +114,7 @@ class Subscribers implements Cleanup
|
||||
),
|
||||
Cond::less(
|
||||
Cond::column('entity.' . $dateField),
|
||||
$before->getString()
|
||||
$before->toString()
|
||||
),
|
||||
Cond::in(
|
||||
Cond::column('entity.' . $statusField),
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\ConsoleCommands;
|
||||
|
||||
use Espo\Core\Console\Command;
|
||||
use Espo\Core\Console\Command\Params;
|
||||
use Espo\Core\Console\IO;
|
||||
use Espo\Core\Utils\File\Manager as FileManager;
|
||||
use Espo\Core\Utils\System;
|
||||
use Espo\Core\Utils\Util;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class CheckFilePermissions implements Command
|
||||
{
|
||||
public function __construct(
|
||||
private FileManager $fileManager,
|
||||
private System $system
|
||||
) {}
|
||||
|
||||
public function run(Params $params, IO $io): void
|
||||
{
|
||||
$io->writeLine("\nNote: Run this command under the web server user.\n");
|
||||
|
||||
$io->writeLine('Writable:');
|
||||
$io->writeLine('');
|
||||
|
||||
foreach ($this->fileManager->getPermissionUtils()->getWritableList() as $path) {
|
||||
$fullPath = Util::concatPath($this->system->getRootDir(), $path);
|
||||
|
||||
$isWritable = $this->fileManager->isWritable($fullPath);
|
||||
|
||||
$msg = " " . ($isWritable ? "OK" : "FAIL") . " : $path";
|
||||
|
||||
$io->writeLine($msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,112 +2,32 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\DuplicateWhereBuilders;
|
||||
|
||||
use Espo\Core\Duplicate\WhereBuilder;
|
||||
use Espo\Core\Field\EmailAddressGroup;
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\ORM\Query\Part\Condition as Cond;
|
||||
use Espo\ORM\Query\Part\Where\OrGroup;
|
||||
use Espo\ORM\Query\Part\WhereItem;
|
||||
|
||||
/**
|
||||
* @implements WhereBuilder<CoreEntity>
|
||||
*/
|
||||
class Company implements WhereBuilder
|
||||
{
|
||||
/**
|
||||
* @param CoreEntity $entity
|
||||
*/
|
||||
public function build(Entity $entity): ?WhereItem
|
||||
{
|
||||
$orBuilder = OrGroup::createBuilder();
|
||||
|
||||
$toCheck = false;
|
||||
|
||||
if ($entity->get('name')) {
|
||||
$orBuilder->add(
|
||||
Cond::equal(
|
||||
Cond::column('name'),
|
||||
$entity->get('name')
|
||||
),
|
||||
);
|
||||
|
||||
$toCheck = true;
|
||||
}
|
||||
|
||||
if (
|
||||
($entity->get('emailAddress') || $entity->get('emailAddressData')) &&
|
||||
(
|
||||
$entity->isNew() ||
|
||||
$entity->isAttributeChanged('emailAddress') ||
|
||||
$entity->isAttributeChanged('emailAddressData')
|
||||
)
|
||||
) {
|
||||
foreach ($this->getEmailAddressList($entity) as $emailAddress) {
|
||||
$orBuilder->add(
|
||||
Cond::equal(
|
||||
Cond::column('emailAddress'),
|
||||
$emailAddress
|
||||
)
|
||||
);
|
||||
|
||||
$toCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$toCheck) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $orBuilder->build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
private function getEmailAddressList(CoreEntity $entity): array
|
||||
{
|
||||
if ($entity->get('emailAddressData')) {
|
||||
/** @var EmailAddressGroup $eaGroup */
|
||||
$eaGroup = $entity->getValueObject('emailAddress');
|
||||
|
||||
return $eaGroup->getAddressList();
|
||||
}
|
||||
|
||||
if ($entity->get('emailAddress')) {
|
||||
return [
|
||||
$entity->get('emailAddress')
|
||||
];
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
class Company extends General
|
||||
{}
|
||||
|
||||
274
application/Espo/Classes/DuplicateWhereBuilders/General.php
Normal file
274
application/Espo/Classes/DuplicateWhereBuilders/General.php
Normal file
@@ -0,0 +1,274 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\DuplicateWhereBuilders;
|
||||
|
||||
use Espo\Core\Duplicate\WhereBuilder;
|
||||
use Espo\Core\Field\EmailAddressGroup;
|
||||
use Espo\Core\Field\PhoneNumberGroup;
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\ORM\Defs;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\ORM\Query\Part\Condition as Cond;
|
||||
use Espo\ORM\Query\Part\Where\OrGroup;
|
||||
use Espo\ORM\Query\Part\Where\OrGroupBuilder;
|
||||
use Espo\ORM\Query\Part\WhereItem;
|
||||
use Espo\ORM\Type\AttributeType;
|
||||
|
||||
/**
|
||||
* @implements WhereBuilder<CoreEntity>
|
||||
*/
|
||||
class General implements WhereBuilder
|
||||
{
|
||||
public function __construct(
|
||||
private Metadata $metadata,
|
||||
private Defs $ormDefs,
|
||||
private Config $config
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @param CoreEntity $entity
|
||||
*/
|
||||
public function build(Entity $entity): ?WhereItem
|
||||
{
|
||||
/** @var string[] $fieldList */
|
||||
$fieldList = $this->metadata->get(['scopes', $entity->getEntityType(), 'duplicateCheckFieldList']) ?? [];
|
||||
|
||||
$orBuilder = OrGroup::createBuilder();
|
||||
|
||||
$toCheck = false;
|
||||
|
||||
foreach ($fieldList as $field) {
|
||||
$toCheckItem = $this->applyField($field, $entity, $orBuilder);
|
||||
|
||||
if ($toCheckItem) {
|
||||
$toCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$toCheck) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $orBuilder->build();
|
||||
}
|
||||
|
||||
private function applyField(
|
||||
string $field,
|
||||
CoreEntity $entity,
|
||||
OrGroupBuilder $orBuilder
|
||||
): bool {
|
||||
|
||||
$type = $this->ormDefs
|
||||
->getEntity($entity->getEntityType())
|
||||
->tryGetField($field)
|
||||
?->getType();
|
||||
|
||||
if ($type === 'personName') {
|
||||
return $this->applyFieldPersonName($field, $entity, $orBuilder);
|
||||
}
|
||||
|
||||
if ($type === 'email') {
|
||||
return $this->applyFieldEmail($field, $entity, $orBuilder);
|
||||
}
|
||||
|
||||
if ($type === 'phone') {
|
||||
return $this->applyFieldPhone($field, $entity, $orBuilder);
|
||||
}
|
||||
|
||||
if ($entity->getAttributeType($field) === AttributeType::VARCHAR) {
|
||||
return $this->applyFieldVarchar($field, $entity, $orBuilder);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private function applyFieldPersonName(
|
||||
string $field,
|
||||
CoreEntity $entity,
|
||||
OrGroupBuilder $orBuilder
|
||||
): bool {
|
||||
|
||||
$first = 'first' . ucfirst($field);
|
||||
$last = 'last' . ucfirst($field);
|
||||
|
||||
if (!$entity->get($first) && !$entity->get($last)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$orBuilder->add(
|
||||
Cond::and(
|
||||
Cond::equal(
|
||||
Cond::column($first),
|
||||
$entity->get($first)
|
||||
),
|
||||
Cond::equal(
|
||||
Cond::column($last),
|
||||
$entity->get($last)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function applyFieldEmail(
|
||||
string $field,
|
||||
CoreEntity $entity,
|
||||
OrGroupBuilder $orBuilder
|
||||
): bool {
|
||||
|
||||
$toCheck = false;
|
||||
|
||||
if (
|
||||
($entity->get($field) || $entity->get($field . 'Data')) &&
|
||||
(
|
||||
$entity->isNew() ||
|
||||
$entity->isAttributeChanged($field) ||
|
||||
$entity->isAttributeChanged($field . 'Data')
|
||||
)
|
||||
) {
|
||||
foreach ($this->getEmailAddressList($entity) as $emailAddress) {
|
||||
$orBuilder->add(
|
||||
Cond::equal(
|
||||
Cond::column($field),
|
||||
$emailAddress
|
||||
)
|
||||
);
|
||||
|
||||
$toCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $toCheck;
|
||||
}
|
||||
|
||||
private function applyFieldPhone(
|
||||
string $field,
|
||||
CoreEntity $entity,
|
||||
OrGroupBuilder $orBuilder
|
||||
): bool {
|
||||
|
||||
$toCheck = false;
|
||||
|
||||
$isNumeric = $this->config->get('phoneNumberNumericSearch');
|
||||
|
||||
$column = $isNumeric ?
|
||||
$field . 'Numeric' :
|
||||
$field;
|
||||
|
||||
if (
|
||||
($entity->get($field) || $entity->get($field . 'Data')) &&
|
||||
(
|
||||
$entity->isNew() ||
|
||||
$entity->isAttributeChanged($field) ||
|
||||
$entity->isAttributeChanged($field . 'Data')
|
||||
)
|
||||
) {
|
||||
foreach ($this->getPhoneNumberList($entity) as $number) {
|
||||
if ($isNumeric) {
|
||||
$number = preg_replace('/[^0-9]/', '', $number);
|
||||
}
|
||||
|
||||
$orBuilder->add(
|
||||
Cond::equal(
|
||||
Cond::column($column),
|
||||
$number
|
||||
)
|
||||
);
|
||||
|
||||
$toCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $toCheck;
|
||||
}
|
||||
|
||||
private function applyFieldVarchar(
|
||||
string $field,
|
||||
CoreEntity $entity,
|
||||
OrGroupBuilder $orBuilder
|
||||
): bool {
|
||||
|
||||
if (!$entity->get($field)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$orBuilder->add(
|
||||
Cond::equal(
|
||||
Cond::column($field),
|
||||
$entity->get($field)
|
||||
),
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
private function getEmailAddressList(CoreEntity $entity): array
|
||||
{
|
||||
if ($entity->get('emailAddressData')) {
|
||||
/** @var EmailAddressGroup $eaGroup */
|
||||
$eaGroup = $entity->getValueObject('emailAddress');
|
||||
|
||||
return $eaGroup->getAddressList();
|
||||
}
|
||||
|
||||
if ($entity->get('emailAddress')) {
|
||||
return [
|
||||
$entity->get('emailAddress')
|
||||
];
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
private function getPhoneNumberList(CoreEntity $entity): array
|
||||
{
|
||||
if ($entity->get('phoneNumberData')) {
|
||||
/** @var PhoneNumberGroup $eaGroup */
|
||||
$eaGroup = $entity->getValueObject('phoneNumber');
|
||||
|
||||
return $eaGroup->getNumberList();
|
||||
}
|
||||
|
||||
if ($entity->get('phoneNumber')) {
|
||||
return [$entity->get('phoneNumber')];
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,119 +2,32 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\DuplicateWhereBuilders;
|
||||
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
|
||||
use Espo\Core\Duplicate\WhereBuilder;
|
||||
use Espo\Core\Field\EmailAddressGroup;
|
||||
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\ORM\Query\Part\Condition as Cond;
|
||||
use Espo\ORM\Query\Part\Where\OrGroup;
|
||||
use Espo\ORM\Query\Part\WhereItem;
|
||||
|
||||
/**
|
||||
* @implements WhereBuilder<CoreEntity>
|
||||
*/
|
||||
class Person implements WhereBuilder
|
||||
{
|
||||
/**
|
||||
* @param CoreEntity $entity
|
||||
*/
|
||||
public function build(Entity $entity): ?WhereItem
|
||||
{
|
||||
$orBuilder = OrGroup::createBuilder();
|
||||
|
||||
$toCheck = false;
|
||||
|
||||
if ($entity->get('firstName') || $entity->get('lastName')) {
|
||||
$orBuilder->add(
|
||||
Cond::and(
|
||||
Cond::equal(
|
||||
Cond::column('firstName'),
|
||||
$entity->get('firstName')
|
||||
),
|
||||
Cond::equal(
|
||||
Cond::column('lastName'),
|
||||
$entity->get('lastName')
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$toCheck = true;
|
||||
}
|
||||
|
||||
if (
|
||||
($entity->get('emailAddress') || $entity->get('emailAddressData')) &&
|
||||
(
|
||||
$entity->isNew() ||
|
||||
$entity->isAttributeChanged('emailAddress') ||
|
||||
$entity->isAttributeChanged('emailAddressData')
|
||||
)
|
||||
) {
|
||||
foreach ($this->getEmailAddressList($entity) as $emailAddress) {
|
||||
$orBuilder->add(
|
||||
Cond::equal(
|
||||
Cond::column('emailAddress'),
|
||||
$emailAddress
|
||||
)
|
||||
);
|
||||
|
||||
$toCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$toCheck) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $orBuilder->build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
private function getEmailAddressList(CoreEntity $entity): array
|
||||
{
|
||||
if ($entity->get('emailAddressData')) {
|
||||
/** @var EmailAddressGroup $eaGroup */
|
||||
$eaGroup = $entity->getValueObject('emailAddress');
|
||||
|
||||
return $eaGroup->getAddressList();
|
||||
}
|
||||
|
||||
if ($entity->get('emailAddress')) {
|
||||
return [
|
||||
$entity->get('emailAddress')
|
||||
];
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
class Person extends General
|
||||
{}
|
||||
|
||||
199
application/Espo/Classes/FieldConverters/RelationshipRole.php
Normal file
199
application/Espo/Classes/FieldConverters/RelationshipRole.php
Normal file
@@ -0,0 +1,199 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldConverters;
|
||||
|
||||
use Espo\Core\Utils\Database\Orm\Defs\AttributeDefs;
|
||||
use Espo\Core\Utils\Database\Orm\Defs\EntityDefs;
|
||||
use Espo\Core\Utils\Database\Orm\FieldConverter;
|
||||
use Espo\ORM\Defs\FieldDefs;
|
||||
use Espo\ORM\Type\AttributeType;
|
||||
use RuntimeException;
|
||||
|
||||
class RelationshipRole implements FieldConverter
|
||||
{
|
||||
public function convert(FieldDefs $fieldDefs, string $entityType): EntityDefs
|
||||
{
|
||||
$name = $fieldDefs->getName();
|
||||
|
||||
$attributeDefs = AttributeDefs::create($name)
|
||||
->withType(AttributeType::VARCHAR)
|
||||
->withNotStorable();
|
||||
|
||||
$attributeDefs = $this->addWhere($attributeDefs, $fieldDefs, $entityType);
|
||||
|
||||
return EntityDefs::create()
|
||||
->withAttribute($attributeDefs);
|
||||
}
|
||||
|
||||
private function addWhere(AttributeDefs $attributeDefs, FieldDefs $fieldDefs, string $entityType): AttributeDefs
|
||||
{
|
||||
$data = $fieldDefs->getParam('converterData');
|
||||
|
||||
if (!is_array($data)) {
|
||||
throw new RuntimeException("No `converterData` in field defs.");
|
||||
}
|
||||
|
||||
/** @var ?string $column */
|
||||
$column = $data['column'] ?? null;
|
||||
/** @var ?string $link */
|
||||
$link = $data['link'] ?? null;
|
||||
/** @var ?string $relationName */
|
||||
$relationName = $data['relationName'] ?? null;
|
||||
/** @var ?string $nearKey */
|
||||
$nearKey = $data['nearKey'] ?? null;
|
||||
|
||||
if (!$column || !$link || !$relationName || !$nearKey) {
|
||||
throw new RuntimeException("Bad `converterData`.");
|
||||
}
|
||||
|
||||
$midTable = ucfirst($relationName);
|
||||
|
||||
return $attributeDefs->withParamsMerged([
|
||||
'where' => [
|
||||
'=' => [
|
||||
'whereClause' => [
|
||||
'id=s' => [
|
||||
'from' => $midTable,
|
||||
'select' => [$nearKey],
|
||||
'whereClause' => [
|
||||
'deleted' => false,
|
||||
$column => '{value}',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'<>' => [
|
||||
'whereClause' => [
|
||||
'id!=s' => [
|
||||
'from' => $midTable,
|
||||
'select' => [$nearKey],
|
||||
'whereClause' => [
|
||||
'deleted' => false,
|
||||
$column => '{value}',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'IN' => [
|
||||
'whereClause' => [
|
||||
'id=s' => [
|
||||
'from' => $midTable,
|
||||
'select' => [$nearKey],
|
||||
'whereClause' => [
|
||||
'deleted' => false,
|
||||
$column => '{value}',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'NOT IN' => [
|
||||
'whereClause' => [
|
||||
'id!=s' => [
|
||||
'from' => $midTable,
|
||||
'select' => [$nearKey],
|
||||
'whereClause' => [
|
||||
'deleted' => false,
|
||||
$column => '{value}',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'LIKE' => [
|
||||
'whereClause' => [
|
||||
'id=s' => [
|
||||
'from' => $midTable,
|
||||
'select' => [$nearKey],
|
||||
'whereClause' => [
|
||||
'deleted' => false,
|
||||
"$column*" => '{value}',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'NOT LIKE' => [
|
||||
'whereClause' => [
|
||||
'id!=s' => [
|
||||
'from' => $midTable,
|
||||
'select' => [$nearKey],
|
||||
'whereClause' => [
|
||||
'deleted' => false,
|
||||
"$column*" => '{value}',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'IS NULL' => [
|
||||
'whereClause' => [
|
||||
'NOT' => [
|
||||
'EXISTS' => [
|
||||
'from' => $entityType,
|
||||
'fromAlias' => 'sq',
|
||||
'select' => ['id'],
|
||||
'leftJoins' => [
|
||||
[
|
||||
$link,
|
||||
'm',
|
||||
null,
|
||||
['onlyMiddle' => true]
|
||||
]
|
||||
],
|
||||
'whereClause' => [
|
||||
"m.$column!=" => null,
|
||||
'sq.id:' => lcfirst($entityType) . '.id',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'IS NOT NULL' => [
|
||||
'whereClause' => [
|
||||
'EXISTS' => [
|
||||
'from' => $entityType,
|
||||
'fromAlias' => 'sq',
|
||||
'select' => ['id'],
|
||||
'leftJoins' => [
|
||||
[
|
||||
$link,
|
||||
'm',
|
||||
null,
|
||||
['onlyMiddle' => true]
|
||||
]
|
||||
],
|
||||
'whereClause' => [
|
||||
"m.$column!=" => null,
|
||||
'sq.id:' => lcfirst($entityType) . '.id',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,71 +2,83 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Services;
|
||||
namespace Espo\Classes\FieldProcessing\LeadCapture;
|
||||
|
||||
use Espo\Entities\LeadCapture as LeadCaptureEntity;
|
||||
use Espo\Core\FieldProcessing\Loader;
|
||||
use Espo\Core\FieldProcessing\Loader\Params;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\FieldUtil;
|
||||
use Espo\Core\Utils\Util;
|
||||
use Espo\Entities\LeadCapture;
|
||||
use Espo\Modules\Crm\Entities\Lead;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Tools\LeadCapture\Service as LeadCaptureService;
|
||||
use Espo\Core\Utils\Util;
|
||||
use Espo\ORM\EntityManager;
|
||||
|
||||
/**
|
||||
* @extends Record<LeadCaptureEntity>
|
||||
* @implements Loader<LeadCapture>
|
||||
*/
|
||||
class LeadCapture extends Record
|
||||
class ExampleLoader implements Loader
|
||||
{
|
||||
/** @var string[] */
|
||||
protected $readOnlyAttributeList = ['apiKey'];
|
||||
public function __construct(
|
||||
private FieldUtil $fieldUtil,
|
||||
private Config $config,
|
||||
private EntityManager $entityManager
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @param LeadCaptureEntity $entity
|
||||
*/
|
||||
public function prepareEntityForOutput(Entity $entity)
|
||||
public function process(Entity $entity, Params $params): void
|
||||
{
|
||||
parent::prepareEntityForOutput($entity);
|
||||
|
||||
$entity->set('exampleRequestMethod', 'POST');
|
||||
|
||||
$entity->set('exampleRequestHeaders', [
|
||||
'Content-Type: application/json',
|
||||
]);
|
||||
|
||||
$this->processRequestUrl($entity);
|
||||
$this->processRequestPayload($entity);
|
||||
}
|
||||
|
||||
private function processRequestUrl(LeadCapture $entity): void
|
||||
{
|
||||
$apiKey = $entity->getApiKey();
|
||||
$siteUrl = $this->config->get('siteUrl');
|
||||
|
||||
if ($apiKey) {
|
||||
$requestUrl = $this->config->getSiteUrl() . '/api/v1/LeadCapture/' . $apiKey;
|
||||
|
||||
$entity->set('exampleRequestUrl', $requestUrl);
|
||||
if (!$apiKey) {
|
||||
return;
|
||||
}
|
||||
|
||||
$fieldUtil = $this->fieldUtil;
|
||||
$requestUrl = "$siteUrl/api/v1/LeadCapture/$apiKey";
|
||||
|
||||
$requestPayload = "```{\n";
|
||||
$entity->set('exampleRequestUrl', $requestUrl);
|
||||
}
|
||||
|
||||
private function processRequestPayload(LeadCapture $entity): void
|
||||
{
|
||||
$requestPayload = "```\n{\n";
|
||||
|
||||
$attributeList = [];
|
||||
|
||||
@@ -80,7 +92,7 @@ class LeadCapture extends Record
|
||||
];
|
||||
|
||||
foreach ($entity->getFieldList() as $field) {
|
||||
foreach ($fieldUtil->getActualAttributeList(Lead::ENTITY_TYPE, $field) as $attribute) {
|
||||
foreach ($this->fieldUtil->getActualAttributeList(Lead::ENTITY_TYPE, $field) as $attribute) {
|
||||
if (!in_array($attribute, $attributeIgnoreList)) {
|
||||
$attributeList[] = $attribute;
|
||||
}
|
||||
@@ -105,20 +117,8 @@ class LeadCapture extends Record
|
||||
$requestPayload .= "\n";
|
||||
}
|
||||
|
||||
$requestPayload .= '}```';
|
||||
$requestPayload .= "}\n```";
|
||||
|
||||
$entity->set('exampleRequestPayload', $requestPayload);
|
||||
}
|
||||
|
||||
protected function beforeCreateEntity(Entity $entity, $data)
|
||||
{
|
||||
$apiKey = $this->createLeadCaptureService()->generateApiKey();
|
||||
|
||||
$entity->set('apiKey', $apiKey);
|
||||
}
|
||||
|
||||
protected function createLeadCaptureService(): LeadCaptureService
|
||||
{
|
||||
return $this->injectableFactory->create(LeadCaptureService::class);
|
||||
}
|
||||
}
|
||||
@@ -2,46 +2,45 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldProcessing\Note;
|
||||
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Core\FieldProcessing\Loader;
|
||||
use Espo\Core\FieldProcessing\Loader\Params;
|
||||
use Espo\Entities\Note;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
/**
|
||||
* @implements Loader<Note>
|
||||
*/
|
||||
class AttachmentsLoader implements Loader
|
||||
class AdditionalFieldsLoader implements Loader
|
||||
{
|
||||
public function process(Entity $entity, Params $params): void
|
||||
{
|
||||
/** @var Note $entity */
|
||||
$entity->loadAttachments();
|
||||
$entity->loadAdditionalFields();
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2023 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
@@ -34,7 +34,6 @@ use Espo\Entities\AuthToken;
|
||||
use Espo\Entities\User;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Core\Acl;
|
||||
use Espo\Core\Acl\Table;
|
||||
use Espo\Core\FieldProcessing\Loader;
|
||||
use Espo\Core\FieldProcessing\Loader\Params;
|
||||
use Espo\Core\ORM\EntityManager;
|
||||
@@ -44,6 +43,7 @@ use Exception;
|
||||
|
||||
/**
|
||||
* @implements Loader<User>
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class LastAccessLoader implements Loader
|
||||
{
|
||||
@@ -58,10 +58,7 @@ class LastAccessLoader implements Loader
|
||||
|
||||
public function process(Entity $entity, Params $params): void
|
||||
{
|
||||
$forbiddenFieldList = $this->acl
|
||||
->getScopeForbiddenFieldList($entity->getEntityType(), Table::ACTION_READ);
|
||||
|
||||
if (in_array('lastAccess', $forbiddenFieldList)) {
|
||||
if (!$this->acl->checkField($entity->getEntityType(), 'lastAccess')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
54
application/Espo/Classes/FieldSanitizers/ArrayFromNull.php
Normal file
54
application/Espo/Classes/FieldSanitizers/ArrayFromNull.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class ArrayFromNull implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
if (!$data->has($field)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $data->get($field);
|
||||
|
||||
if ($value !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$data->set($field, []);
|
||||
}
|
||||
}
|
||||
62
application/Espo/Classes/FieldSanitizers/ArrayStringTrim.php
Normal file
62
application/Espo/Classes/FieldSanitizers/ArrayStringTrim.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class ArrayStringTrim implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
if (!$data->has($field)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $data->get($field);
|
||||
|
||||
if (!is_array($value)) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($value as $i => $item) {
|
||||
if (!is_string($item)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$value[$i] = trim($item);
|
||||
}
|
||||
|
||||
$data->set($field, $value);
|
||||
}
|
||||
}
|
||||
70
application/Espo/Classes/FieldSanitizers/Date.php
Normal file
70
application/Espo/Classes/FieldSanitizers/Date.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Espo\Core\Field\Date as DateValue;
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
use Espo\Core\Utils\DateTime as DateTimeUtil;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class Date implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
$value = $data->get($field);
|
||||
|
||||
if ($value === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
DateValue::fromString($value);
|
||||
|
||||
return;
|
||||
}
|
||||
catch (Exception) {}
|
||||
|
||||
$dateTime = DateTimeImmutable::createFromFormat(DateTimeInterface::ATOM, $value);
|
||||
|
||||
if ($dateTime === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $dateTime->format(DateTimeUtil::SYSTEM_DATE_FORMAT);
|
||||
|
||||
$data->set($field, $value);
|
||||
}
|
||||
}
|
||||
73
application/Espo/Classes/FieldSanitizers/Datetime.php
Normal file
73
application/Espo/Classes/FieldSanitizers/Datetime.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use DateTimeZone;
|
||||
use Espo\Core\Field\DateTime as DateTimeValue;
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
use Espo\Core\Utils\DateTime as DateTimeUtil;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class Datetime implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
$value = $data->get($field);
|
||||
|
||||
if ($value === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
DateTimeValue::fromString($value);
|
||||
|
||||
return;
|
||||
}
|
||||
catch (Exception) {}
|
||||
|
||||
$dateTime = DateTimeImmutable::createFromFormat(DateTimeInterface::ATOM, $value);
|
||||
|
||||
if ($dateTime === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $dateTime
|
||||
->setTimezone(new DateTimeZone('UTC'))
|
||||
->format(DateTimeUtil::SYSTEM_DATE_TIME_FORMAT);
|
||||
|
||||
$data->set($field, $value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Espo\Core\Field\Date;
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
use Espo\Core\Utils\DateTime as DateTimeUtil;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class DatetimeOptionalDate implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
$attribute = $field . 'Date';
|
||||
|
||||
$value = $data->get($attribute);
|
||||
|
||||
if ($value === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
Date::fromString($value);
|
||||
|
||||
return;
|
||||
}
|
||||
catch (Exception) {}
|
||||
|
||||
$dateTime = DateTimeImmutable::createFromFormat(DateTimeInterface::ATOM, $value);
|
||||
|
||||
if ($dateTime === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $dateTime->format(DateTimeUtil::SYSTEM_DATE_FORMAT);
|
||||
|
||||
$data->set($attribute, $value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class EmptyStringToNull implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
if (!$data->has($field)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $data->get($field);
|
||||
|
||||
if (!is_string($value)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($value === '') {
|
||||
$value = null;
|
||||
}
|
||||
|
||||
$data->set($field, $value);
|
||||
}
|
||||
}
|
||||
77
application/Espo/Classes/FieldSanitizers/Phone.php
Normal file
77
application/Espo/Classes/FieldSanitizers/Phone.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
use Espo\Core\PhoneNumber\Sanitizer as PhoneNumberSanitizer;
|
||||
use stdClass;
|
||||
|
||||
class Phone implements Sanitizer
|
||||
{
|
||||
public function __construct(
|
||||
private PhoneNumberSanitizer $phoneNumberSanitizer
|
||||
) {}
|
||||
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
$number = $data->get($field);
|
||||
|
||||
if ($number !== null) {
|
||||
$number = $this->phoneNumberSanitizer->sanitize($number);
|
||||
|
||||
$data->set($field, $number);
|
||||
}
|
||||
|
||||
$items = $data->get($field . 'Data');
|
||||
|
||||
if (!is_array($items)) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($items as $item) {
|
||||
if (!$item instanceof stdClass) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$number = $item->phoneNumber ?? null;
|
||||
|
||||
if (!is_scalar($number)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$number = (string) $number;
|
||||
|
||||
$item->phoneNumber = $this->phoneNumberSanitizer->sanitize($number);
|
||||
}
|
||||
|
||||
$data->set($field . 'Data', $items);
|
||||
}
|
||||
}
|
||||
60
application/Espo/Classes/FieldSanitizers/StringTrim.php
Normal file
60
application/Espo/Classes/FieldSanitizers/StringTrim.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU Affero General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldSanitizers;
|
||||
|
||||
use Espo\Core\FieldSanitize\Sanitizer;
|
||||
use Espo\Core\FieldSanitize\Sanitizer\Data;
|
||||
|
||||
/**
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
class StringTrim implements Sanitizer
|
||||
{
|
||||
public function sanitize(Data $data, string $field): void
|
||||
{
|
||||
if (!$data->has($field)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $data->get($field);
|
||||
|
||||
if (!is_string($value)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = trim($value);
|
||||
|
||||
if ($value === '') {
|
||||
$value = null;
|
||||
}
|
||||
|
||||
$data->set($field, $value);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user