Skip to content

Commit b3aa226

Browse files
committed
Add authentication
Add user authentication module, Login page and initialization page. Fixed the problem that the application could not start after the system restarted.
1 parent 39ccbe2 commit b3aa226

File tree

18 files changed

+155
-43
lines changed

18 files changed

+155
-43
lines changed

CasaOS

60.2 MB
Binary file not shown.

go.mod

+6-5
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ require (
2222
github.com/go-ini/ini v1.62.0
2323
github.com/go-ole/go-ole v1.2.5 // indirect
2424
github.com/go-openapi/jsonreference v0.19.6 // indirect
25-
github.com/go-openapi/spec v0.20.3 // indirect
25+
github.com/go-openapi/spec v0.20.4 // indirect
2626
github.com/go-openapi/swag v0.19.15 // indirect
2727
github.com/go-playground/validator/v10 v10.6.1 // indirect
2828
github.com/gogo/googleapis v1.4.1 // indirect
@@ -40,6 +40,7 @@ require (
4040
github.com/leodido/go-urn v1.2.1 // indirect
4141
github.com/mailru/easyjson v0.7.7 // indirect
4242
github.com/mattn/go-colorable v0.1.11 // indirect
43+
github.com/mattn/go-isatty v0.0.14 // indirect
4344
github.com/mattn/go-runewidth v0.0.13 // indirect
4445
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect
4546
github.com/morikuni/aec v1.0.0 // indirect
@@ -57,7 +58,7 @@ require (
5758
github.com/smartystreets/goconvey v1.6.4 // indirect
5859
github.com/spf13/cobra v1.2.1 // indirect
5960
github.com/swaggo/gin-swagger v1.3.0
60-
github.com/swaggo/swag v1.7.0
61+
github.com/swaggo/swag v1.7.3
6162
github.com/tidwall/gjson v1.8.0
6263
github.com/tidwall/pretty v1.2.0 // indirect
6364
github.com/tklauser/go-sysconf v0.3.6 // indirect
@@ -67,13 +68,13 @@ require (
6768
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect
6869
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5
6970
golang.org/x/mod v0.5.0 // indirect
70-
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167 // indirect
71+
golang.org/x/net v0.0.0-20211020060615-d418f374d309 // indirect
7172
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f
72-
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac // indirect
73+
golang.org/x/sys v0.0.0-20211020174200-9d6173849985 // indirect
7374
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b // indirect
7475
golang.org/x/text v0.3.7 // indirect
7576
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
76-
golang.org/x/tools v0.1.5 // indirect
77+
golang.org/x/tools v0.1.7 // indirect
7778
google.golang.org/appengine v1.6.7 // indirect
7879
google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 // indirect
7980
google.golang.org/grpc v1.41.0 // indirect

go.sum

+18
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4
325325
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
326326
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
327327
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
328+
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
328329
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
329330
github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w=
330331
github.com/gin-contrib/gzip v0.0.2 h1:VMBkd4ZB1Hl7e1lOA5gEZ/qdD3d9vLIq57xKWgPCCV8=
@@ -373,6 +374,8 @@ github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8
373374
github.com/go-openapi/spec v0.19.14/go.mod h1:gwrgJS15eCUgjLpMjBJmbZezCsw88LmgeEip0M63doA=
374375
github.com/go-openapi/spec v0.20.3 h1:uH9RQ6vdyPSs2pSy9fL8QPspDF2AMIMPtmK5coSSjtQ=
375376
github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg=
377+
github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M=
378+
github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
376379
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
377380
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
378381
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
@@ -396,6 +399,7 @@ github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblf
396399
github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
397400
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
398401
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
402+
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
399403
github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
400404
github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
401405
github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0=
@@ -776,6 +780,7 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg
776780
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
777781
github.com/shirou/gopsutil/v3 v3.21.5 h1:YUBf0w/KPLk7w1803AYBnH7BmA+1Z/Q5MEZxpREUaB4=
778782
github.com/shirou/gopsutil/v3 v3.21.5/go.mod h1:ghfMypLDrFSWN2c9cDYFLHyynQ+QUht0cv/18ZqVczw=
783+
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
779784
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
780785
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
781786
github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
@@ -837,6 +842,8 @@ github.com/swaggo/gin-swagger v1.3.0/go.mod h1:oy1BRA6WvgtCp848lhxce7BnWH4C8Bxa0
837842
github.com/swaggo/swag v1.5.1/go.mod h1:1Bl9F/ZBpVWh22nY0zmYyASPO1lI/zIwRDrpZU+tv8Y=
838843
github.com/swaggo/swag v1.7.0 h1:5bCA/MTLQoIqDXXyHfOpMeDvL9j68OY/udlK4pQoo4E=
839844
github.com/swaggo/swag v1.7.0/go.mod h1:BdPIL73gvS9NBsdi7M1JOxLvlbfvNRaBP8m6WT6Aajo=
845+
github.com/swaggo/swag v1.7.3 h1:ucB7irEdRrhjmW+Z1Ss4GjO68oPKQFjSgOR8BCAvcbU=
846+
github.com/swaggo/swag v1.7.3/go.mod h1:zD8h6h4SPv7t3l+4BKdRquqW1ASWjKZgT6Qv9z3kNqI=
840847
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
841848
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
842849
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
@@ -870,7 +877,9 @@ github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxW
870877
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
871878
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
872879
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
880+
github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo=
873881
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
882+
github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=
874883
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
875884
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
876885
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
@@ -890,6 +899,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
890899
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
891900
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
892901
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
902+
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
893903
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
894904
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
895905
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
@@ -1029,8 +1039,11 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
10291039
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
10301040
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
10311041
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
1042+
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
10321043
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167 h1:eDd+TJqbgfXruGQ5sJRU7tEtp/58OAx4+Ayjxg4SM+4=
10331044
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1045+
golang.org/x/net v0.0.0-20211020060615-d418f374d309 h1:A0lJIi+hcTR6aajJH4YqKWwohY4aW9RO7oRMcdv+HKI=
1046+
golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
10341047
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
10351048
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
10361049
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1148,11 +1161,14 @@ golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBc
11481161
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
11491162
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
11501163
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1164+
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
11511165
golang.org/x/sys v0.0.0-20210927052749-1cf2251ac284 h1:lBPNCmq8u4zFP3huKCmUQ2Fx8kcY4X+O12UgGnyKsrg=
11521166
golang.org/x/sys v0.0.0-20210927052749-1cf2251ac284/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
11531167
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
11541168
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac h1:oN6lz7iLW/YC7un8pq+9bOLyXrprv2+DKfkJY+2LJJw=
11551169
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1170+
golang.org/x/sys v0.0.0-20211020174200-9d6173849985 h1:LOlKVhfDyahgmqa97awczplwkjzNaELFg3zRIJ13RYo=
1171+
golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
11561172
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
11571173
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE=
11581174
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -1234,6 +1250,8 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
12341250
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
12351251
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
12361252
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
1253+
golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ=
1254+
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
12371255
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
12381256
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
12391257
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

main

42.7 MB
Binary file not shown.

main.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ import (
1111
loger2 "github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
1212
"github.com/IceWhaleTech/CasaOS/route"
1313
"github.com/IceWhaleTech/CasaOS/service"
14-
"github.com/gin-gonic/gin"
1514
"github.com/robfig/cron"
1615
"gorm.io/gorm"
1716
)
1817

1918
var sqliteDB *gorm.DB
2019

21-
var swagHandler gin.HandlerFunc
2220
var configFlag = flag.String("c", "", "config address")
2321

22+
var showUserInfo = flag.Bool("show-user-info", false, "show user info")
23+
2424
func init() {
2525
flag.Parse()
2626
config.InitSetup(*configFlag)
@@ -31,21 +31,27 @@ func init() {
3131
service.MyService = service.NewService(sqliteDB, loger2.NewOLoger())
3232
}
3333

34-
// @title Oasis API
34+
// @title casaOS API
3535
// @version 1.0.0
3636
// @contact.name lauren.pan
3737
// @contact.url https://www.zimaboard.com
3838
// @contact.email [email protected]
39-
// @description Oasis v1版本api
40-
// @host 192.168.2.114:8089
39+
// @description casaOS v1版本api
40+
// @host 192.168.2.217:8089
4141
// @securityDefinitions.apikey ApiKeyAuth
4242
// @in header
4343
// @name Authorization
4444
// @BasePath /v1
4545
func main() {
46+
if *showUserInfo {
47+
fmt.Println("CasaOS User Info")
48+
fmt.Println("UserName:" + config.UserInfo.UserName)
49+
fmt.Println("Password:" + config.UserInfo.PWD)
50+
return
51+
}
4652
//model.Setup()
4753
//gredis.Setup()
48-
r := route.InitRouter(swagHandler)
54+
r := route.InitRouter()
4955
//service.SyncTask(sqliteDB)
5056
cron2 := cron.New() //创建一个cron实例
5157
//执行定时任务(每5秒执行一次)

model/sys_common.go

+1
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,5 @@ type RedisModel struct {
6262
type SystemConfig struct {
6363
ConfigStr string `json:"config_str"`
6464
WidgetList string `json:"widget_list"`
65+
ConfigPath string `json:"config_path"`
6566
}

pkg/config/init.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ package config
22

33
import (
44
"fmt"
5-
"github.com/IceWhaleTech/CasaOS/model"
6-
"github.com/go-ini/ini"
75
"log"
86
"os"
97
"path"
108
"path/filepath"
119
"runtime"
1210
"strings"
11+
12+
"github.com/IceWhaleTech/CasaOS/model"
13+
"github.com/go-ini/ini"
1314
)
1415

1516
//系统配置
@@ -55,6 +56,7 @@ func InitSetup(config string) {
5556
mapTo("redis", RedisInfo)
5657
mapTo("server", ServerInfo)
5758
mapTo("system", SystemConfigInfo)
59+
SystemConfigInfo.ConfigPath = configDir
5860
// AppInfo.ProjectPath = getCurrentDirectory() //os.Getwd()
5961

6062
}

pkg/utils/version/version.go

+23-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ package version
22

33
import (
44
json2 "encoding/json"
5+
"strconv"
6+
"strings"
7+
58
"github.com/IceWhaleTech/CasaOS/model"
69
"github.com/IceWhaleTech/CasaOS/pkg/config"
710
"github.com/IceWhaleTech/CasaOS/pkg/utils/httper"
811
"github.com/IceWhaleTech/CasaOS/types"
912
"github.com/tidwall/gjson"
10-
"strconv"
11-
"strings"
1213
)
1314

1415
func IsNeedUpdate() (bool, model.Version) {
@@ -35,3 +36,23 @@ func IsNeedUpdate() (bool, model.Version) {
3536
}
3637
return false, version
3738
}
39+
40+
//a版本大于b版本
41+
func VersionCompared(a string, b string) bool {
42+
v1 := strings.Split(a, ".")
43+
v2 := strings.Split(b, ".")
44+
for len(v1) < len(v2) {
45+
v1 = append(v1, "0")
46+
}
47+
for len(v2) < len(v1) {
48+
v2 = append(v2, "0")
49+
}
50+
for i := 0; i < len(v1); i++ {
51+
a, _ := strconv.Atoi(v1[i])
52+
b, _ := strconv.Atoi(v2[i])
53+
if a > b {
54+
return true
55+
}
56+
}
57+
return false
58+
}

route/doc.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
//go:build doc
12
// +build doc
23

34
package route
45

56
import (
6-
_ "github.com/IceWhaleTech/CasaOS/docs"
77
ginSwagger "github.com/swaggo/gin-swagger"
8-
"github.com/swaggo/gin-swagger/swaggerFiles"
8+
swaggerFiles "github.com/swaggo/gin-swagger/swaggerFiles"
99
)
1010

1111
func init() {
12+
// swagHandler = ginSwagger.WrapHandler(swaggerFiles.Handler)
1213
swagHandler = ginSwagger.WrapHandler(swaggerFiles.Handler)
1314
}

route/route.go

+7-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package route
33
import (
44
"net/http"
55

6+
_ "github.com/IceWhaleTech/CasaOS/docs"
67
"github.com/IceWhaleTech/CasaOS/middleware"
78
"github.com/IceWhaleTech/CasaOS/pkg/config"
89
jwt2 "github.com/IceWhaleTech/CasaOS/pkg/utils/jwt"
@@ -13,7 +14,7 @@ import (
1314

1415
var swagHandler gin.HandlerFunc
1516

16-
func InitRouter(swagHandler gin.HandlerFunc) *gin.Engine {
17+
func InitRouter() *gin.Engine {
1718

1819
r := gin.Default()
1920
r.Use(middleware.Cors())
@@ -30,17 +31,19 @@ func InitRouter(swagHandler gin.HandlerFunc) *gin.Engine {
3031
//登录
3132
r.POST("/v1/user/login", v1.Login)
3233

33-
r.GET("/debug", v1.GetSystemConfigDebug)
34+
r.GET("/v1/guide/check", v1.GetGuideCheck)
3435

36+
r.GET("/debug", v1.GetSystemConfigDebug)
37+
//设置用户
38+
r.POST("/v1/user/setusernamepwd", v1.Set_Name_Pwd)
3539
v1Group := r.Group("/v1")
3640

3741
v1Group.Use(jwt2.JWT(swagHandler))
3842
{
3943
v1UserGroup := v1Group.Group("/user")
4044
v1UserGroup.Use()
4145
{
42-
//设置用户
43-
v1UserGroup.POST("/setusernamepwd", v1.Set_Name_Pwd)
46+
4447
//chang head
4548
v1UserGroup.POST("/changhead", v1.Up_Load_Head)
4649
//chang user name

route/v1/docker.go

+24-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ package v1
33
import (
44
"bytes"
55
json2 "encoding/json"
6+
"net/http"
7+
"reflect"
8+
"strconv"
9+
"strings"
10+
"time"
11+
612
"github.com/IceWhaleTech/CasaOS/model"
713
"github.com/IceWhaleTech/CasaOS/pkg/docker"
814
upnp2 "github.com/IceWhaleTech/CasaOS/pkg/upnp"
@@ -19,11 +25,6 @@ import (
1925
"github.com/gorilla/websocket"
2026
"github.com/jinzhu/copier"
2127
uuid "github.com/satori/go.uuid"
22-
"net/http"
23-
"reflect"
24-
"strconv"
25-
"strings"
26-
"time"
2728
)
2829

2930
var upgrader = websocket.Upgrader{
@@ -283,6 +284,16 @@ func InstallApp(c *gin.Context) {
283284
//}
284285

285286
//step:创建容器
287+
// networkName, err := service.MyService.Docker().GetNetWorkNameByNetWorkID(appInfo.NetworkModel)
288+
// if err != nil {
289+
// //service.MyService.Redis().Set(id, "{\"id\"\""+id+"\",\"state\":false,\"message\":\""+err.Error()+"\",\"speed\":80}", 100)
290+
// installLog.State = 0
291+
// installLog.Speed = 75
292+
// installLog.Type = types.NOTIFY_TYPE_ERROR
293+
// installLog.Message = err.Error()
294+
// service.MyService.Notify().UpdateLog(installLog)
295+
// return
296+
// }
286297
containerId, err := service.MyService.Docker().DockerContainerCreate(dockerImage+":"+dockerImageVersion, id, m, appInfo.NetworkModel)
287298
installLog.ContainerId = containerId
288299
if err != nil {
@@ -873,12 +884,17 @@ func UpdateSetting(c *gin.Context) {
873884
envsStr, _ := json2.Marshal(m.Envs)
874885
volumesStr, _ := json2.Marshal(m.Volumes)
875886
devicesStr, _ := json2.Marshal(m.Devices)
876-
if !reflect.DeepEqual(string(portsStr), appInfo.Ports) || !reflect.DeepEqual(string(envsStr), appInfo.Envs) || !reflect.DeepEqual(string(volumesStr), appInfo.Volumes) || m.PortMap != appInfo.PortMap {
887+
if !reflect.DeepEqual(string(portsStr), appInfo.Ports) || !reflect.DeepEqual(string(envsStr), appInfo.Envs) || !reflect.DeepEqual(string(volumesStr), appInfo.Volumes) || m.PortMap != appInfo.PortMap || m.NetworkModel != appInfo.NetModel {
877888

878889
var newUUid = uuid.NewV4().String()
879890
var err error
880891

881-
containerId, err = service.MyService.Docker().DockerContainerCreate(appInfo.Image+":"+appInfo.Version, newUUid, cpd, appInfo.NetModel)
892+
// networkName, err := service.MyService.Docker().GetNetWorkNameByNetWorkID(appInfo.NetModel)
893+
// if err != nil {
894+
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.ERROR)})
895+
// return
896+
// }
897+
containerId, err = service.MyService.Docker().DockerContainerCreate(appInfo.Image+":"+appInfo.Version, newUUid, cpd, m.NetworkModel)
882898

883899
if err != nil {
884900
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.ERROR)})
@@ -980,6 +996,7 @@ func UpdateSetting(c *gin.Context) {
980996
appInfo.Icon = m.Icon
981997
appInfo.Volumes = string(volumesStr)
982998
appInfo.Devices = string(devicesStr)
999+
appInfo.NetModel = m.NetworkModel
9831000
appInfo.Position = m.Position
9841001
appInfo.EnableUPNP = m.EnableUPNP
9851002
appInfo.Restart = m.Restart

0 commit comments

Comments
 (0)