github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/permission/useraccess.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 "time" 8 9 "gopkg.in/juju/names.v2" 10 ) 11 12 // UserAccess represents a user access to a target whereas the user 13 // could represent a remote user or a user across multiple models the 14 // user access always represents a single user for a single target. 15 // There should be no more than one UserAccess per target/user pair. 16 // Many of these fields are storage artifacts but generate them from 17 // other fields implies out of band knowledge of other packages. 18 type UserAccess struct { 19 // UserID is the stored ID of the user. 20 UserID string 21 // UserTag is the tag for the user. 22 UserTag names.UserTag 23 // Object is the tag for the object of this access grant. 24 Object names.Tag 25 // Access represents the level of access subject has over object. 26 Access Access 27 // CreatedBy is the tag of the user that granted the access. 28 CreatedBy names.UserTag 29 // DateCreated is the date the user was created in UTC. 30 DateCreated time.Time 31 // DisplayName is the name we are showing for this user. 32 DisplayName string 33 // UserName is the actual username for this access. 34 UserName string 35 } 36 37 // IsEmptyUserAccess returns true if the passed UserAccess instance 38 // is empty. 39 func IsEmptyUserAccess(a UserAccess) bool { 40 return a == UserAccess{} 41 }