github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/juju/permission/model.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package permission
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  )
     9  
    10  // ModelAccess defines the permission that a user has on a model.
    11  type ModelAccess int
    12  
    13  const (
    14  	_ = iota
    15  
    16  	// ModelReadAccess allows a user to read a model but not to change it.
    17  	ModelReadAccess ModelAccess = iota
    18  
    19  	// ModelWriteAccess allows a user write access to the model.
    20  	ModelWriteAccess ModelAccess = iota
    21  )
    22  
    23  // ParseModelAccess parses a user-facing string representation of a model
    24  // access permission into a logical representation.
    25  func ParseModelAccess(access string) (ModelAccess, error) {
    26  	var fail = ModelAccess(0)
    27  	switch access {
    28  	case "read":
    29  		return ModelReadAccess, nil
    30  	case "write":
    31  		return ModelWriteAccess, nil
    32  	default:
    33  		return fail, errors.Errorf("invalid model access permission %q", access)
    34  	}
    35  }