Multiples corrections

This commit is contained in:
2026-05-14 18:52:40 +02:00
parent 5b2a2e7ddb
commit 85ad36880c
20 changed files with 7065 additions and 964 deletions
+204 -90
View File
@@ -10,7 +10,7 @@
<option name="id" value="A402SO" /> <option name="id" value="A402SO" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Sony" /> <option name="manufacturer" value="Sony" />
<option name="name" value="Xperia 10" /> <option name="name" value="Xperia 10 VI" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2520" /> <option name="screenY" value="2520" />
@@ -34,7 +34,7 @@
<option name="id" value="OP535DL1" /> <option name="id" value="OP535DL1" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="OnePlus" /> <option name="manufacturer" value="OnePlus" />
<option name="name" value="CPH2409" /> <option name="name" value="Nord CE 2 Lite 5G" />
<option name="screenDensity" value="401" /> <option name="screenDensity" value="401" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2412" /> <option name="screenY" value="2412" />
@@ -46,7 +46,7 @@
<option name="id" value="OP5552L1" /> <option name="id" value="OP5552L1" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="OnePlus" /> <option name="manufacturer" value="OnePlus" />
<option name="name" value="CPH2415" /> <option name="name" value="10T 5G" />
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2412" /> <option name="screenY" value="2412" />
@@ -58,7 +58,7 @@
<option name="id" value="OP573DL1" /> <option name="id" value="OP573DL1" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="OPPO" /> <option name="manufacturer" value="OPPO" />
<option name="name" value="CPH2557" /> <option name="name" value="A79 5G" />
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -70,7 +70,7 @@
<option name="id" value="OP5759L1" /> <option name="id" value="OP5759L1" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="OPPO" /> <option name="manufacturer" value="OPPO" />
<option name="name" value="CPH2579" /> <option name="name" value="A38" />
<option name="screenDensity" value="320" /> <option name="screenDensity" value="320" />
<option name="screenX" value="720" /> <option name="screenX" value="720" />
<option name="screenY" value="1612" /> <option name="screenY" value="1612" />
@@ -94,7 +94,7 @@
<option name="id" value="RMX3231" /> <option name="id" value="RMX3231" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="realme" /> <option name="manufacturer" value="realme" />
<option name="name" value="C11" /> <option name="name" value="RMX3231" />
<option name="screenDensity" value="320" /> <option name="screenDensity" value="320" />
<option name="screenX" value="720" /> <option name="screenX" value="720" />
<option name="screenY" value="1600" /> <option name="screenY" value="1600" />
@@ -155,7 +155,7 @@
<option name="id" value="a05s" /> <option name="id" value="a05s" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A05s" /> <option name="name" value="Galaxy A05s" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -191,7 +191,7 @@
<option name="id" value="a14m" /> <option name="id" value="a14m" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A145R" /> <option name="name" value="Galaxy A14" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2408" /> <option name="screenY" value="2408" />
@@ -227,7 +227,7 @@
<option name="id" value="a15" /> <option name="id" value="a15" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A15" /> <option name="name" value="Galaxy A15" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -239,7 +239,7 @@
<option name="id" value="a15x" /> <option name="id" value="a15x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A15 5G" /> <option name="name" value="Galaxy A15 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -251,7 +251,7 @@
<option name="id" value="a15x" /> <option name="id" value="a15x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A15 5G" /> <option name="name" value="Galaxy A15 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -275,7 +275,7 @@
<option name="id" value="a16" /> <option name="id" value="a16" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A165M" /> <option name="name" value="Galaxy A16" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -287,7 +287,7 @@
<option name="id" value="a16x" /> <option name="id" value="a16x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A16 5G" /> <option name="name" value="Galaxy A16 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -299,7 +299,7 @@
<option name="id" value="a16x" /> <option name="id" value="a16x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A16 5G" /> <option name="name" value="Galaxy A16 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -311,7 +311,7 @@
<option name="id" value="a16xeea" /> <option name="id" value="a16xeea" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A16 5G" /> <option name="name" value="Galaxy A16 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -335,7 +335,7 @@
<option name="id" value="a26x" /> <option name="id" value="a26x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A266B" /> <option name="name" value="Galaxy A26 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -347,7 +347,7 @@
<option name="id" value="a34x" /> <option name="id" value="a34x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A346N" /> <option name="name" value="Galaxy A34 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -359,7 +359,7 @@
<option name="id" value="a35x" /> <option name="id" value="a35x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A35" /> <option name="name" value="Galaxy A35 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -371,7 +371,7 @@
<option name="id" value="a35x" /> <option name="id" value="a35x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A35" /> <option name="name" value="Galaxy A35 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -383,7 +383,7 @@
<option name="id" value="a35x" /> <option name="id" value="a35x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="A35" /> <option name="name" value="Galaxy A35 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -395,7 +395,7 @@
<option name="id" value="a36xq" /> <option name="id" value="a36xq" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A366E" /> <option name="name" value="Galaxy A36 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -407,7 +407,7 @@
<option name="id" value="a36xq" /> <option name="id" value="a36xq" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A366E" /> <option name="name" value="Galaxy A36 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -419,7 +419,7 @@
<option name="id" value="a56x" /> <option name="id" value="a56x" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-A566E" /> <option name="name" value="Galaxy A56 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -548,6 +548,7 @@
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="blazer" /> <option name="codename" value="blazer" />
<option name="default" value="true" />
<option name="id" value="blazer" /> <option name="id" value="blazer" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -555,6 +556,11 @@
<option name="screenDensity" value="420" /> <option name="screenDensity" value="420" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2410" /> <option name="screenY" value="2410" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="32" /> <option name="api" value="32" />
@@ -575,11 +581,35 @@
<option name="id" value="c1q" /> <option name="id" value="c1q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Note 20 5G" /> <option name="name" value="Galaxy Note20 5G" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="c1qksw" />
<option name="id" value="c1qksw" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Note20 5G" />
<option name="screenDensity" value="450" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="c2q" />
<option name="id" value="c2q" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Note20 Ultra 5G" />
<option name="screenDensity" value="560" />
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="34" /> <option name="api" value="34" />
<option name="brand" value="google" /> <option name="brand" value="google" />
@@ -608,7 +638,6 @@
<option name="api" value="34" /> <option name="api" value="34" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="comet" /> <option name="codename" value="comet" />
<option name="default" value="true" />
<option name="id" value="comet" /> <option name="id" value="comet" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -616,17 +645,11 @@
<option name="screenDensity" value="390" /> <option name="screenDensity" value="390" />
<option name="screenX" value="2076" /> <option name="screenX" value="2076" />
<option name="screenY" value="2152" /> <option name="screenY" value="2152" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="35" /> <option name="api" value="35" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="comet" /> <option name="codename" value="comet" />
<option name="default" value="true" />
<option name="id" value="comet" /> <option name="id" value="comet" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -634,11 +657,6 @@
<option name="screenDensity" value="390" /> <option name="screenDensity" value="390" />
<option name="screenX" value="2076" /> <option name="screenX" value="2076" />
<option name="screenY" value="2152" /> <option name="screenY" value="2152" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="35" /> <option name="api" value="35" />
@@ -647,7 +665,7 @@
<option name="id" value="cuscoi" /> <option name="id" value="cuscoi" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Motorola" /> <option name="manufacturer" value="Motorola" />
<option name="name" value="edge 50 fusion" /> <option name="name" value="moto g96 5G" />
<option name="screenDensity" value="400" /> <option name="screenDensity" value="400" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -659,7 +677,7 @@
<option name="id" value="dm1q" /> <option name="id" value="dm1q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="S23" /> <option name="name" value="Galaxy S23" />
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -671,7 +689,7 @@
<option name="id" value="dm1q-SM-S911U" /> <option name="id" value="dm1q-SM-S911U" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="S23" /> <option name="name" value="Galaxy S23" />
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -695,7 +713,7 @@
<option name="id" value="dm2q" /> <option name="id" value="dm2q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="S23 Plus" /> <option name="name" value="Galaxy S23+" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -728,7 +746,6 @@
<option name="api" value="34" /> <option name="api" value="34" />
<option name="brand" value="samsung" /> <option name="brand" value="samsung" />
<option name="codename" value="e1q" /> <option name="codename" value="e1q" />
<option name="default" value="true" />
<option name="id" value="e1q" /> <option name="id" value="e1q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
@@ -736,17 +753,11 @@
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="samsung" /> <option name="brand" value="samsung" />
<option name="codename" value="e1q" /> <option name="codename" value="e1q" />
<option name="default" value="true" />
<option name="id" value="e1q" /> <option name="id" value="e1q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
@@ -754,11 +765,18 @@
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
<option name="tags"> </PersistentDeviceSelectionData>
<list> <PersistentDeviceSelectionData>
<option value="dda-default" /> <option name="api" value="36" />
</list> <option name="brand" value="samsung" />
</option> <option name="codename" value="e1s" />
<option name="id" value="e1s" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S24" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1080" />
<option name="screenY" value="2340" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="36" /> <option name="api" value="36" />
@@ -767,7 +785,7 @@
<option name="id" value="e2q" /> <option name="id" value="e2q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S24 +" /> <option name="name" value="Galaxy S24+" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -916,10 +934,23 @@
<option name="screenX" value="720" /> <option name="screenX" value="720" />
<option name="screenY" value="1600" /> <option name="screenY" value="1600" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="35" />
<option name="brand" value="motorola" />
<option name="codename" value="fogos" />
<option name="id" value="fogos" />
<option name="labId" value="google" />
<option name="manufacturer" value="Motorola" />
<option name="name" value="moto g34 5G" />
<option name="screenDensity" value="280" />
<option name="screenX" value="720" />
<option name="screenY" value="1600" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="frankel" /> <option name="codename" value="frankel" />
<option name="default" value="true" />
<option name="id" value="frankel" /> <option name="id" value="frankel" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -927,6 +958,11 @@
<option name="screenDensity" value="420" /> <option name="screenDensity" value="420" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2424" /> <option name="screenY" value="2424" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="34" /> <option name="api" value="34" />
@@ -935,7 +971,7 @@
<option name="id" value="g0q" /> <option name="id" value="g0q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-S906U1" /> <option name="name" value="Galaxy S22+" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -947,7 +983,7 @@
<option name="id" value="g0q" /> <option name="id" value="g0q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-S906U1" /> <option name="name" value="Galaxy S22+" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -971,7 +1007,7 @@
<option name="id" value="gta9pwifi" /> <option name="id" value="gta9pwifi" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-X210" /> <option name="name" value="Galaxy Tab A9+" />
<option name="screenDensity" value="240" /> <option name="screenDensity" value="240" />
<option name="screenX" value="1200" /> <option name="screenX" value="1200" />
<option name="screenY" value="1920" /> <option name="screenY" value="1920" />
@@ -983,7 +1019,7 @@
<option name="id" value="gts7lwifi" /> <option name="id" value="gts7lwifi" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-T870" /> <option name="name" value="Galaxy Tab S7" />
<option name="screenDensity" value="340" /> <option name="screenDensity" value="340" />
<option name="screenX" value="1600" /> <option name="screenX" value="1600" />
<option name="screenY" value="2560" /> <option name="screenY" value="2560" />
@@ -995,7 +1031,7 @@
<option name="id" value="gts7xllite" /> <option name="id" value="gts7xllite" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-T738U" /> <option name="name" value="Galaxy Tab S7 FE 5G" />
<option name="screenDensity" value="340" /> <option name="screenDensity" value="340" />
<option name="screenX" value="1600" /> <option name="screenX" value="1600" />
<option name="screenY" value="2560" /> <option name="screenY" value="2560" />
@@ -1045,7 +1081,7 @@
<option name="id" value="gts9wifi" /> <option name="id" value="gts9wifi" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-X710" /> <option name="name" value="Galaxy Tab S9" />
<option name="screenDensity" value="340" /> <option name="screenDensity" value="340" />
<option name="screenX" value="1600" /> <option name="screenX" value="1600" />
<option name="screenY" value="2560" /> <option name="screenY" value="2560" />
@@ -1057,7 +1093,7 @@
<option name="id" value="guamna" /> <option name="id" value="guamna" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Motorola" /> <option name="manufacturer" value="Motorola" />
<option name="name" value="Moto XT2093-3" /> <option name="name" value="moto g play (2021)" />
<option name="screenDensity" value="280" /> <option name="screenDensity" value="280" />
<option name="screenX" value="720" /> <option name="screenX" value="720" />
<option name="screenY" value="1600" /> <option name="screenY" value="1600" />
@@ -1069,7 +1105,7 @@
<option name="id" value="guamp" /> <option name="id" value="guamp" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Motorola" /> <option name="manufacturer" value="Motorola" />
<option name="name" value="Moto XT2083-1" /> <option name="name" value="moto g(9) play" />
<option name="screenDensity" value="280" /> <option name="screenDensity" value="280" />
<option name="screenX" value="720" /> <option name="screenX" value="720" />
<option name="screenY" value="1600" /> <option name="screenY" value="1600" />
@@ -1194,6 +1230,30 @@
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="samsung" />
<option name="codename" value="m1q" />
<option name="id" value="m1q" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S26" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1080" />
<option name="screenY" value="2340" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="samsung" />
<option name="codename" value="m2q" />
<option name="id" value="m2q" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S26+" />
<option name="screenDensity" value="450" />
<option name="screenX" value="1080" />
<option name="screenY" value="2340" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="34" /> <option name="api" value="34" />
<option name="brand" value="motorola" /> <option name="brand" value="motorola" />
@@ -1222,6 +1282,7 @@
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="mustang" /> <option name="codename" value="mustang" />
<option name="default" value="true" />
<option name="id" value="mustang" /> <option name="id" value="mustang" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -1229,6 +1290,11 @@
<option name="screenDensity" value="390" /> <option name="screenDensity" value="390" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2404" /> <option name="screenY" value="2404" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="34" /> <option name="api" value="34" />
@@ -1237,7 +1303,7 @@
<option name="id" value="o1q" /> <option name="id" value="o1q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S21" /> <option name="name" value="Galaxy S21 5G" />
<option name="screenDensity" value="421" /> <option name="screenDensity" value="421" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -1249,7 +1315,7 @@
<option name="id" value="o1q" /> <option name="id" value="o1q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S21" /> <option name="name" value="Galaxy S21 5G" />
<option name="screenDensity" value="421" /> <option name="screenDensity" value="421" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -1273,7 +1339,19 @@
<option name="id" value="p3q" /> <option name="id" value="p3q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S21 Ultra" /> <option name="name" value="Galaxy S21 Ultra 5G" />
<option name="screenDensity" value="600" />
<option name="screenX" value="1440" />
<option name="screenY" value="3200" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="35" />
<option name="brand" value="samsung" />
<option name="codename" value="p3s" />
<option name="id" value="p3s" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S21 Ultra 5G" />
<option name="screenDensity" value="600" /> <option name="screenDensity" value="600" />
<option name="screenX" value="1440" /> <option name="screenX" value="1440" />
<option name="screenY" value="3200" /> <option name="screenY" value="3200" />
@@ -1285,7 +1363,7 @@
<option name="id" value="pa2q" /> <option name="id" value="pa2q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="S25+" /> <option name="name" value="Galaxy S25+" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -1306,6 +1384,7 @@
<option name="api" value="35" /> <option name="api" value="35" />
<option name="brand" value="samsung" /> <option name="brand" value="samsung" />
<option name="codename" value="pa3q" /> <option name="codename" value="pa3q" />
<option name="default" value="true" />
<option name="id" value="pa3q" /> <option name="id" value="pa3q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
@@ -1313,11 +1392,17 @@
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="samsung" /> <option name="brand" value="samsung" />
<option name="codename" value="pa3q" /> <option name="codename" value="pa3q" />
<option name="default" value="true" />
<option name="id" value="pa3q" /> <option name="id" value="pa3q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
@@ -1325,6 +1410,11 @@
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="33" /> <option name="api" value="33" />
@@ -1362,6 +1452,18 @@
<option name="screenX" value="1812" /> <option name="screenX" value="1812" />
<option name="screenY" value="2176" /> <option name="screenY" value="2176" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="samsung" />
<option name="codename" value="q5qksx" />
<option name="id" value="q5qksx" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Z Fold5" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1812" />
<option name="screenY" value="2176" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="34" /> <option name="api" value="34" />
<option name="brand" value="samsung" /> <option name="brand" value="samsung" />
@@ -1374,6 +1476,18 @@
<option name="screenX" value="1856" /> <option name="screenX" value="1856" />
<option name="screenY" value="2160" /> <option name="screenY" value="2160" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="samsung" />
<option name="codename" value="q7mq" />
<option name="id" value="q7mq" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Z TriFold" />
<option name="screenDensity" value="320" />
<option name="screenX" value="2160" />
<option name="screenY" value="1584" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="samsung" /> <option name="brand" value="samsung" />
@@ -1393,7 +1507,7 @@
<option name="id" value="r0qcsx" /> <option name="id" value="r0qcsx" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="S22" /> <option name="name" value="Galaxy S22" />
<option name="screenDensity" value="480" /> <option name="screenDensity" value="480" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -1419,7 +1533,7 @@
<option name="id" value="r11q" /> <option name="id" value="r11q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-S711U" /> <option name="name" value="Galaxy S23 FE" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -1431,7 +1545,7 @@
<option name="id" value="r11s" /> <option name="id" value="r11s" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-S711N" /> <option name="name" value="Galaxy S23 FE" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2340" /> <option name="screenY" value="2340" />
@@ -1488,6 +1602,7 @@
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="rango" /> <option name="codename" value="rango" />
<option name="default" value="true" />
<option name="id" value="rango" /> <option name="id" value="rango" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -1495,6 +1610,11 @@
<option name="screenDensity" value="390" /> <option name="screenDensity" value="390" />
<option name="screenX" value="2076" /> <option name="screenX" value="2076" />
<option name="screenY" value="2152" /> <option name="screenY" value="2152" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="30" /> <option name="api" value="30" />
@@ -1544,7 +1664,7 @@
<option name="id" value="t2q" /> <option name="id" value="t2q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S21 Plus" /> <option name="name" value="Galaxy S21+ 5G" />
<option name="screenDensity" value="394" /> <option name="screenDensity" value="394" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -1556,7 +1676,7 @@
<option name="id" value="t2q" /> <option name="id" value="t2q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S21 Plus" /> <option name="name" value="Galaxy S21+ 5G" />
<option name="screenDensity" value="394" /> <option name="screenDensity" value="394" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2400" /> <option name="screenY" value="2400" />
@@ -1590,7 +1710,6 @@
<option name="api" value="34" /> <option name="api" value="34" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="tokay" /> <option name="codename" value="tokay" />
<option name="default" value="true" />
<option name="id" value="tokay" /> <option name="id" value="tokay" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -1598,17 +1717,11 @@
<option name="screenDensity" value="420" /> <option name="screenDensity" value="420" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2424" /> <option name="screenY" value="2424" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="35" /> <option name="api" value="35" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="tokay" /> <option name="codename" value="tokay" />
<option name="default" value="true" />
<option name="id" value="tokay" /> <option name="id" value="tokay" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -1616,17 +1729,11 @@
<option name="screenDensity" value="420" /> <option name="screenDensity" value="420" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2424" /> <option name="screenY" value="2424" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="36" /> <option name="api" value="36" />
<option name="brand" value="google" /> <option name="brand" value="google" />
<option name="codename" value="tokay" /> <option name="codename" value="tokay" />
<option name="default" value="true" />
<option name="id" value="tokay" /> <option name="id" value="tokay" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Google" /> <option name="manufacturer" value="Google" />
@@ -1634,11 +1741,6 @@
<option name="screenDensity" value="420" /> <option name="screenDensity" value="420" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2424" /> <option name="screenY" value="2424" />
<option name="tags">
<list>
<option value="dda-default" />
</list>
</option>
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData> <PersistentDeviceSelectionData>
<option name="api" value="34" /> <option name="api" value="34" />
@@ -1647,7 +1749,7 @@
<option name="id" value="xcover7" /> <option name="id" value="xcover7" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="SM-G556B" /> <option name="name" value="Galaxy XCover7" />
<option name="screenDensity" value="450" /> <option name="screenDensity" value="450" />
<option name="screenX" value="1080" /> <option name="screenX" value="1080" />
<option name="screenY" value="2408" /> <option name="screenY" value="2408" />
@@ -1659,11 +1761,23 @@
<option name="id" value="y2q" /> <option name="id" value="y2q" />
<option name="labId" value="google" /> <option name="labId" value="google" />
<option name="manufacturer" value="Samsung" /> <option name="manufacturer" value="Samsung" />
<option name="name" value="S20 Plus 5G" /> <option name="name" value="Galaxy S20+ 5G" />
<option name="screenDensity" value="600" /> <option name="screenDensity" value="600" />
<option name="screenX" value="1440" /> <option name="screenX" value="1440" />
<option name="screenY" value="3200" /> <option name="screenY" value="3200" />
</PersistentDeviceSelectionData> </PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="z3q" />
<option name="id" value="z3q" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S20 Ultra 5G" />
<option name="screenDensity" value="560" />
<option name="screenX" value="1440" />
<option name="screenY" value="3200" />
</PersistentDeviceSelectionData>
</list> </list>
</option> </option>
</component> </component>
@@ -31,6 +31,14 @@ class AuthController extends Controller
], 401); ], 401);
} }
// Vérification si le compte est actif
if (!$user->is_active) {
return response([
'status' => 'error',
'message' => 'Votre compte a été désactivé par un administrateur.'
], 403);
}
// Log::info('Email reçu: ' . $request->email); // Log::info('Email reçu: ' . $request->email);
// Log::info('Password saisi: ' . $request->password); // Log::info('Password saisi: ' . $request->password);
// Log::info('Hachage en BDD: ' . $user->password); // Log::info('Hachage en BDD: ' . $user->password);
@@ -45,7 +53,7 @@ class AuthController extends Controller
], 200); ], 200);
} }
public function register(Request $request) public function register(Request $request)
{ {
// 1. Validation des données (Standard Qualité) // 1. Validation des données (Standard Qualité)
$validator = Validator::make($request->all(), [ $validator = Validator::make($request->all(), [
@@ -54,7 +62,7 @@ class AuthController extends Controller
'password' => 'required|string|min:8|confirmed', 'password' => 'required|string|min:8|confirmed',
]); ]);
Log::info('Tentative de création', $request->all()); Log::info('Tentative de création', $request->all());
if ($validator->fails()) { if ($validator->fails()) {
@@ -90,8 +98,8 @@ class AuthController extends Controller
$request->validate([ $request->validate([
'current_password' => 'required', 'current_password' => 'required',
'email' => [ 'email' => [
'sometimes', 'sometimes',
'email', 'email',
Rule::unique('users')->ignore($user->id) // Empêche les doublons en BDD Rule::unique('users')->ignore($user->id) // Empêche les doublons en BDD
], ],
]); ]);
@@ -99,7 +107,7 @@ class AuthController extends Controller
// 2. Vérification de sécurité (RGPD/Confidentialité) // 2. Vérification de sécurité (RGPD/Confidentialité)
if (!Hash::check($request->current_password, $user->password)) { if (!Hash::check($request->current_password, $user->password)) {
return response()->json([ return response()->json([
'status' => 'error', 'status' => 'error',
'message' => 'Le mot de passe actuel est incorrect' 'message' => 'Le mot de passe actuel est incorrect'
], 403); ], 403);
} }
@@ -114,4 +122,4 @@ class AuthController extends Controller
'user' => $user 'user' => $user
]); ]);
} }
} }
@@ -30,20 +30,16 @@ class DiagnosticController extends Controller
return view('diagnostics.history', compact('history')); return view('diagnostics.history', compact('history'));
} }
public function store(Request $request) public function store(Request $request, \App\Services\StressCalculator $calculator)
{ {
// Logique pour calculer le score Holmes-Rahe // Logique pour calculer le score Holmes-Rahe
$totalPoints = 0; $totalPoints = 0;
if ($request->has('events')) { if ($request->has('events')) {
$totalPoints = StressEvent::whereIn('id', $request->events)->sum('points'); $points = StressEvent::whereIn('id', $request->events)->pluck('points')->toArray();
$totalPoints = $calculator->calculateScore($points);
} }
$niveauStress = 'Faible'; $niveauStress = $calculator->determineLevel($totalPoints);
if ($totalPoints >= 300) {
$niveauStress = 'Élevé';
} elseif ($totalPoints >= 150) {
$niveauStress = 'Modéré';
}
// Enregistrement si l'utilisateur est connecté // Enregistrement si l'utilisateur est connecté
if (Auth::check()) { if (Auth::check()) {
+7 -1
View File
@@ -2,9 +2,15 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class StressEvent extends Model class StressEvent extends Model
{ {
// use HasFactory;
protected $fillable = [
'event_name',
'points',
];
} }
+22 -23
View File
@@ -2,61 +2,60 @@
namespace App\Models; namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail; use Filament\Models\Contracts\FilamentUser;
use Database\Factories\UserFactory; use Filament\Panel;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens; use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable class User extends Authenticatable implements FilamentUser
{ {
/** @use HasFactory<UserFactory> */
use HasFactory, Notifiable;
use HasApiTokens, HasFactory, Notifiable; use HasApiTokens, HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var list<string>
*/
protected $fillable = [ protected $fillable = [
'name', 'name',
'email', 'email',
'password', 'password',
'id_role', 'id_role',
'is_active',
]; ];
/**
* The attributes that should be hidden for serialization.
*
* @var list<string>
*/
protected $hidden = [ protected $hidden = [
'password', 'password',
'remember_token', 'remember_token',
]; ];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array protected function casts(): array
{ {
return [ return [
'email_verified_at' => 'datetime', 'email_verified_at' => 'datetime',
'password' => 'hashed', 'password' => 'hashed',
'is_active' => 'boolean',
]; ];
} }
public function emotionRecords() public function role(): BelongsTo
{ {
return $this->hasMany(EmotionRecord::class); return $this->belongsTo(Role::class, 'id_role');
} }
public function favoritedBy() public function emotionRecords(): HasMany
{
return $this->hasMany(EmotionRecord::class, 'user_id');
}
public function favoritedActivities(): BelongsToMany
{ {
return $this->belongsToMany(RelaxationActivity::class, 'favorites', 'id_user', 'id_activite'); return $this->belongsToMany(RelaxationActivity::class, 'favorites', 'id_user', 'id_activite');
} }
public function canAccessPanel(Panel $panel): bool
{
// Autorise l'accès si l'utilisateur est actif et a le rôle 'Admin'
return $this->is_active && $this->role && $this->role->libelle === 'Admin';
}
} }
+3 -1
View File
@@ -19,6 +19,8 @@ class AppServiceProvider extends ServiceProvider
*/ */
public function boot(): void public function boot(): void
{ {
// if (config('app.env') === 'production' || config('app.env') === 'local') {
\Illuminate\Support\Facades\URL::forceScheme('https');
}
} }
} }
+2 -3
View File
@@ -1,7 +1,6 @@
<?php <?php
use App\Providers\AppServiceProvider;
return [ return [
AppServiceProvider::class, App\Providers\AppServiceProvider::class,
App\Providers\Filament\AdminPanelProvider::class,
]; ];
+4 -1
View File
@@ -8,6 +8,7 @@
"require": { "require": {
"php": "^8.2", "php": "^8.2",
"blade-ui-kit/blade-heroicons": "^2.7", "blade-ui-kit/blade-heroicons": "^2.7",
"filament/filament": "^3.2",
"guzzlehttp/guzzle": "^7.10", "guzzlehttp/guzzle": "^7.10",
"laravel/framework": "^12.0", "laravel/framework": "^12.0",
"laravel/sanctum": "^4.0", "laravel/sanctum": "^4.0",
@@ -53,7 +54,8 @@
], ],
"post-autoload-dump": [ "post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi" "@php artisan package:discover --ansi",
"@php artisan filament:upgrade"
], ],
"post-update-cmd": [ "post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force" "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
@@ -79,6 +81,7 @@
"optimize-autoloader": true, "optimize-autoloader": true,
"preferred-install": "dist", "preferred-install": "dist",
"sort-packages": true, "sort-packages": true,
"platform-check": false,
"allow-plugins": { "allow-plugins": {
"pestphp/pest-plugin": true, "pestphp/pest-plugin": true,
"php-http/discovery": true "php-http/discovery": true
+1692 -158
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -30,6 +30,7 @@ class UserFactory extends Factory
'email_verified_at' => now(), 'email_verified_at' => now(),
'password' => static::$password ??= Hash::make('password'), 'password' => static::$password ??= Hash::make('password'),
'remember_token' => Str::random(10), 'remember_token' => Str::random(10),
'id_role' => \App\Models\Role::first() ?? \App\Models\Role::create(['libelle' => 'Utilisateur']),
]; ];
} }
+8 -6
View File
@@ -26,11 +26,13 @@ class DatabaseSeeder extends Seeder
$adminRole = Role::where('libelle', 'Admin')->first(); $adminRole = Role::where('libelle', 'Admin')->first();
User::create([ User::firstOrCreate(
'name' => 'AdminCESI', ['email' => 'admin@cesizen.fr'],
'email' => 'admin@cesizen.fr', [
'password' => Hash::make('okokokok'), // Toujours hacher ! 'name' => 'AdminCESI',
'id_role' => $adminRole->id, 'password' => Hash::make('okokokok'),
]); 'id_role' => $adminRole->id,
]
);
} }
} }
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "WEB", "name": "www",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
+40 -13
View File
@@ -14,20 +14,47 @@
<nav class="flex items-center gap-6" role="navigation" aria-label="Menu utilisateur"> <nav class="flex items-center gap-6" role="navigation" aria-label="Menu utilisateur">
@auth @auth
<a href="{{ route('profile.index') }}" class="flex items-center gap-3 px-4 py-1.5 bg-slate-50 rounded-lg border border-slate-200 shadow-sm hover:border-[#000091] transition-all group"> <div class="relative" x-data="{ open: false }">
<div class="text-right"> <button @click="open = !open" @click.away="open = false" class="flex items-center gap-3 px-4 py-1.5 bg-slate-50 rounded-lg border border-slate-200 shadow-sm hover:border-[#000091] transition-all group">
<p class="text-sm font-bold leading-none text-slate-900 group-hover:text-[#000091]">{{ Auth::user()->name }}</p> <div class="text-right">
<p class="text-[10px] text-slate-500 font-bold uppercase tracking-tighter">Mon Profil</p> <p class="text-sm font-bold leading-none text-slate-900 group-hover:text-[#000091]">{{ Auth::user()->name }}</p>
</div> <p class="text-[10px] text-slate-500 font-bold uppercase tracking-tighter">Mon Profil</p>
<img src="https://ui-avatars.com/api/?name={{ urlencode(Auth::user()->name) }}&background=000091&color=fff" class="w-9 h-9 rounded-lg border border-slate-200" alt="Avatar de {{ Auth::user()->name }}"> </div>
</a> <img src="https://ui-avatars.com/api/?name={{ urlencode(Auth::user()->name) }}&background=000091&color=fff" class="w-9 h-9 rounded-lg border border-slate-200" alt="Avatar de {{ Auth::user()->name }}">
<form action="{{ route('logout') }}" method="POST" class="inline"> <x-heroicon-o-chevron-down class="h-4 w-4 text-slate-400 group-hover:text-[#000091] transition-transform" ::class="open ? 'rotate-180' : ''" />
@csrf
<button type="submit" class="text-xs font-bold text-slate-500 hover:text-[#E1000F] uppercase tracking-tighter flex items-center gap-1">
<x-heroicon-o-arrow-left-on-rectangle class="h-4 w-4" />
Quitter
</button> </button>
</form>
<!-- Dropdown Menu -->
<div x-show="open"
x-transition:enter="transition ease-out duration-100"
x-transition:enter-start="opacity-0 scale-95"
x-transition:enter-end="opacity-100 scale-100"
class="absolute right-0 mt-2 w-56 bg-white border border-slate-200 rounded-lg shadow-xl z-50 py-2 overflow-hidden">
<a href="{{ route('profile.index') }}" class="flex items-center gap-3 px-4 py-2.5 text-sm font-medium text-slate-700 hover:bg-slate-50 transition-colors">
<x-heroicon-o-user class="h-4 w-4 text-slate-400" />
Mon compte
</a>
@if(Auth::user()->role && Auth::user()->role->libelle === 'Admin')
<div class="border-t border-slate-100 my-1"></div>
<a href="/admin" class="flex items-center gap-3 px-4 py-2.5 text-sm font-bold text-[--fr-blue] hover:bg-blue-50 transition-colors">
<x-heroicon-o-shield-check class="h-4 w-4" />
Administration
</a>
@endif
<div class="border-t border-slate-100 my-1"></div>
<form action="{{ route('logout') }}" method="POST" class="block w-full">
@csrf
<button type="submit" class="flex items-center gap-3 w-full px-4 py-2.5 text-sm font-medium text-red-600 hover:bg-red-50 transition-colors">
<x-heroicon-o-arrow-left-on-rectangle class="h-4 w-4" />
Déconnexion
</button>
</form>
</div>
</div>
@else @else
<div class="flex items-center gap-4"> <div class="flex items-center gap-4">
<a href="/login" class="text-sm font-bold text-[#000091] hover:underline px-2 py-2">Se connecter</a> <a href="/login" class="text-sm font-bold text-[#000091] hover:underline px-2 py-2">Se connecter</a>
@@ -40,6 +40,16 @@
Exercices de Respiration Exercices de Respiration
</a> </a>
<!-- Informations / Guides -->
<a href="{{ route('informations.index') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all group {{ request()->routeIs('informations.*') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium border-b border-slate-100/50' }}"
{!! request()->routeIs('informations.*') ? 'aria-current="page"' : '' !!}>
<div class="w-8 h-8 rounded-sm flex items-center justify-center transition-colors {{ request()->routeIs('informations.*') ? 'bg-white/20 text-white' : 'bg-blue-50 text-[--fr-blue]' }}" aria-hidden="true">
<x-heroicon-o-document-text class="h-4 w-4" />
</div>
Guides & Informations
</a>
<div class="pt-10 space-y-1"> <div class="pt-10 space-y-1">
<p class="text-[10px] font-bold text-slate-500 uppercase tracking-[0.2em] mb-4 px-4">Services de l'État</p> <p class="text-[10px] font-bold text-slate-500 uppercase tracking-[0.2em] mb-4 px-4">Services de l'État</p>
<a href="#" class="flex items-center justify-between px-4 py-2 text-sm text-slate-600 hover:text-[--fr-blue] font-medium transition-colors"> <a href="#" class="flex items-center justify-between px-4 py-2 text-sm text-slate-600 hover:text-[--fr-blue] font-medium transition-colors">
+3 -3
View File
@@ -29,7 +29,7 @@
Faire mon bilan de santé Faire mon bilan de santé
</a> </a>
<a href="{{ route('relaxation.index') }}" class="px-8 py-3.5 bg-white border-2 border-[#000091] text-[#000091] font-bold rounded-sm hover:bg-slate-50 transition-all"> <a href="{{ route('relaxation.index') }}" class="px-8 py-3.5 bg-white border-2 border-[#000091] text-[#000091] font-bold rounded-sm hover:bg-slate-50 transition-all">
Voir mes favoris Travailler sa respiration
</a> </a>
</div> </div>
</div> </div>
@@ -77,7 +77,7 @@
</div> </div>
<h4 class="text-xl font-bold text-slate-900 mb-2">Guides Pratiques</h4> <h4 class="text-xl font-bold text-slate-900 mb-2">Guides Pratiques</h4>
<p class="text-slate-600 text-sm leading-relaxed mb-6">Consultez les fiches de prévention sur le sommeil et la nutrition.</p> <p class="text-slate-600 text-sm leading-relaxed mb-6">Consultez les fiches de prévention sur le sommeil et la nutrition.</p>
<a href="#" class="inline-flex items-center gap-2 text-sm font-bold text-[--fr-blue] hover:underline underline-offset-4 decoration-2"> <a href="{{ route('informations.index') }}" class="inline-flex items-center gap-2 text-sm font-bold text-[--fr-blue] hover:underline underline-offset-4 decoration-2">
Lire les guides Lire les guides
<x-heroicon-o-arrow-right class="h-4 w-4" aria-hidden="true" /> <x-heroicon-o-arrow-right class="h-4 w-4" aria-hidden="true" />
</a> </a>
@@ -105,7 +105,7 @@
</div> </div>
<!-- Global Footer Gov --> <!-- Global Footer Gov -->
</main> </main>
</div> </div>
</body> </body>
+4
View File
@@ -25,4 +25,8 @@ Route::middleware('auth:sanctum')->group(function () {
Route::get('/emotions', [App\Http\Controllers\Api\EmotionController::class, 'index']); Route::get('/emotions', [App\Http\Controllers\Api\EmotionController::class, 'index']);
Route::post('/emotions', [App\Http\Controllers\Api\EmotionController::class, 'store']); Route::post('/emotions', [App\Http\Controllers\Api\EmotionController::class, 'store']);
// Routes pour les informations (accessibles aux utilisateurs connectés)
Route::get('/informations', [App\Http\Controllers\Api\InformationController::class, 'index']);
Route::get('/informations/{id}', [App\Http\Controllers\Api\InformationController::class, 'show']);
}); });
+4
View File
@@ -9,10 +9,14 @@ use App\Http\Controllers\Web\RelaxationController;
use App\Http\Controllers\Web\AuthController; use App\Http\Controllers\Web\AuthController;
use App\Http\Controllers\Web\ProfileController; use App\Http\Controllers\Web\ProfileController;
use App\Http\Controllers\Web\InformationController;
// Public Routes // Public Routes
Route::get('/', [DashboardController::class, 'index'])->name('home'); Route::get('/', [DashboardController::class, 'index'])->name('home');
Route::get('/diagnostics', [DiagnosticController::class, 'index'])->name('diagnostics.index'); Route::get('/diagnostics', [DiagnosticController::class, 'index'])->name('diagnostics.index');
Route::get('/relaxation', [RelaxationController::class, 'index'])->name('relaxation.index'); Route::get('/relaxation', [RelaxationController::class, 'index'])->name('relaxation.index');
Route::get('/informations', [InformationController::class, 'index'])->name('informations.index');
Route::get('/informations/{id}', [InformationController::class, 'show'])->name('informations.show');
// Authentification // Authentification
Route::get('/login', [AuthController::class, 'showLogin'])->name('login'); Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
+2 -1
View File
@@ -1,6 +1,7 @@
{ {
"require": { "require": {
"blade-ui-kit/blade-heroicons": "^2.7", "blade-ui-kit/blade-heroicons": "^2.7",
"guzzlehttp/guzzle": "^7.10" "guzzlehttp/guzzle": "^7.10",
"filament/filament": "^3.2"
} }
} }
Generated
+5034 -640
View File
File diff suppressed because it is too large Load Diff
+6 -9
View File
@@ -9,6 +9,8 @@ import 'features/auth/screens/login_screen.dart';
import 'features/auth/screens/profile_screen.dart'; import 'features/auth/screens/profile_screen.dart';
import 'features/diagnostics/screens/diagnostic_screen.dart'; import 'features/diagnostics/screens/diagnostic_screen.dart';
import 'features/exercises/screens/breathing_screen.dart'; import 'features/exercises/screens/breathing_screen.dart';
import 'features/informations/screens/info_screen.dart';
import 'features/informations/providers/information_provider.dart';
import 'features/tracker/screens/tracker_screen.dart'; import 'features/tracker/screens/tracker_screen.dart';
import 'features/relaxation/screens/relaxation_screen.dart'; import 'features/relaxation/screens/relaxation_screen.dart';
import 'features/wear/wear_sync_service.dart'; import 'features/wear/wear_sync_service.dart';
@@ -21,6 +23,7 @@ void main() {
ChangeNotifierProvider(create: (_) => DiagnosticProvider()), ChangeNotifierProvider(create: (_) => DiagnosticProvider()),
ChangeNotifierProvider(create: (_) => EmotionProvider()), ChangeNotifierProvider(create: (_) => EmotionProvider()),
ChangeNotifierProvider(create: (_) => RelaxationProvider()), ChangeNotifierProvider(create: (_) => RelaxationProvider()),
ChangeNotifierProvider(create: (_) => InformationProvider()),
], ],
child: const MyApp(), child: const MyApp(),
), ),
@@ -229,15 +232,9 @@ class _HomeScreenState extends State<HomeScreen> {
'Informations', 'Informations',
Icons.info_outline, Icons.info_outline,
Colors.lightBlue.shade300, Colors.lightBlue.shade300,
onTap: () {}, onTap: () {
), Navigator.push(context, MaterialPageRoute(builder: (_) => const InfoScreen()));
_buildMenuCard( },
context,
'Favoris',
Icons.favorite_border,
Colors.pink.shade200,
isLocked: !isLoggedIn,
onTap: () {},
), ),
], ],
), ),