forked from forgejo/forgejo
Use single shared random string generation function (#15741)
* Use single shared random string generation function - Replace 3 functions that do the same with 1 shared one - Use crypto/rand over math/rand for a stronger RNG - Output only alphanumerical for URL compatibilty Fixes: #15536 * use const string method * Update modules/avatar/avatar.go Co-authored-by: a1012112796 <1012112796@qq.com> Co-authored-by: a1012112796 <1012112796@qq.com>
This commit is contained in:
parent
270aab429e
commit
1e6fa57acb
15 changed files with 100 additions and 192 deletions
|
@ -12,10 +12,9 @@ import (
|
|||
|
||||
// Enable PNG support:
|
||||
_ "image/png"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
|
||||
"github.com/issue9/identicon"
|
||||
"github.com/nfnt/resize"
|
||||
|
@ -29,8 +28,11 @@ const AvatarSize = 290
|
|||
// in custom size (height and width).
|
||||
func RandomImageSize(size int, data []byte) (image.Image, error) {
|
||||
randExtent := len(palette.WebSafe) - 32
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
colorIndex := rand.Intn(randExtent)
|
||||
integer, err := util.RandomInt(int64(randExtent))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("util.RandomInt: %v", err)
|
||||
}
|
||||
colorIndex := int(integer)
|
||||
backColorIndex := colorIndex - 1
|
||||
if backColorIndex < 0 {
|
||||
backColorIndex = randExtent - 1
|
||||
|
|
|
@ -13,12 +13,17 @@ import (
|
|||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func Test_RandomImage(t *testing.T) {
|
||||
_, err := RandomImage([]byte("gogs@local"))
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = RandomImageSize(0, []byte("gogs@local"))
|
||||
func Test_RandomImageSize(t *testing.T) {
|
||||
_, err := RandomImageSize(0, []byte("gitea@local"))
|
||||
assert.Error(t, err)
|
||||
|
||||
_, err = RandomImageSize(64, []byte("gitea@local"))
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func Test_RandomImage(t *testing.T) {
|
||||
_, err := RandomImage([]byte("gitea@local"))
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func Test_PrepareWithPNG(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue