diff --git a/entrypoint.sh b/entrypoint.sh index 1439eb8..f1e69a7 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -12,5 +12,8 @@ echo "WARNING: signal-cli-rest-api runs as signal-api (not as root!)" echo "Run 'su signal-api' before using signal-cli!" EOF +cap_prefix="-cap_" +caps="$cap_prefix$(seq -s ",$cap_prefix" 0 $(cat /proc/sys/kernel/cap_last_cap))" + # Start API as signal-api user -exec setpriv --reuid=1000 --regid=1000 --init-groups --inh-caps=-all signal-cli-rest-api $@ +exec setpriv --reuid=1000 --regid=1000 --init-groups --inh-caps=$caps signal-cli-rest-api $@ diff --git a/src/api/api.go b/src/api/api.go index adbb353..c5d205d 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -31,6 +31,7 @@ type GroupEntry struct { type RegisterNumberRequest struct { UseVoice bool `json:"use_voice"` + Captcha string `json:"captcha"` } type VerifyNumberSettings struct { @@ -328,6 +329,7 @@ func (a *Api) RegisterNumber(c *gin.Context) { } } else { req.UseVoice = false + req.Captcha = "" } if number == "" { @@ -341,6 +343,10 @@ func (a *Api) RegisterNumber(c *gin.Context) { command = append(command, "--voice") } + if req.Captcha != "" { + command = append(command, []string{"--captcha", req.Captcha}...) + } + _, err := runSignalCli(true, command, "") if err != nil { c.JSON(400, gin.H{"error": err.Error()})