code.gitea.io/gitea@v1.21.7/models/perm/access_mode.go (about)

     1  // Copyright 2019 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package perm
     5  
     6  import (
     7  	"fmt"
     8  )
     9  
    10  // AccessMode specifies the users access mode
    11  type AccessMode int
    12  
    13  const (
    14  	// AccessModeNone no access
    15  	AccessModeNone AccessMode = iota // 0
    16  	// AccessModeRead read access
    17  	AccessModeRead // 1
    18  	// AccessModeWrite write access
    19  	AccessModeWrite // 2
    20  	// AccessModeAdmin admin access
    21  	AccessModeAdmin // 3
    22  	// AccessModeOwner owner access
    23  	AccessModeOwner // 4
    24  )
    25  
    26  func (mode AccessMode) String() string {
    27  	switch mode {
    28  	case AccessModeRead:
    29  		return "read"
    30  	case AccessModeWrite:
    31  		return "write"
    32  	case AccessModeAdmin:
    33  		return "admin"
    34  	case AccessModeOwner:
    35  		return "owner"
    36  	default:
    37  		return "none"
    38  	}
    39  }
    40  
    41  func (mode AccessMode) LogString() string {
    42  	return fmt.Sprintf("<AccessMode:%d:%s>", mode, mode.String())
    43  }
    44  
    45  // ParseAccessMode returns corresponding access mode to given permission string.
    46  func ParseAccessMode(permission string) AccessMode {
    47  	switch permission {
    48  	case "read":
    49  		return AccessModeRead
    50  	case "write":
    51  		return AccessModeWrite
    52  	case "admin":
    53  		return AccessModeAdmin
    54  	default:
    55  		return AccessModeNone
    56  	}
    57  }