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 }