本文整理匯總了Golang中github.com/lionkov/go9p/p.User.Groups方法的典型用法代碼示例。如果您正苦於以下問題:Golang User.Groups方法的具體用法?Golang User.Groups怎麽用?Golang User.Groups使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/lionkov/go9p/p.User
的用法示例。
在下文中一共展示了User.Groups方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: CheckPerm
// Checks if the specified user has permission to perform
// certain operation on a file. Perm contains one or more
// of DMREAD, DMWRITE, and DMEXEC.
func CheckPerm(f *p.Dir, user p.User, perm uint32) bool {
if user == nil {
return false
}
perm &= 7
/* other permissions */
fperm := f.Mode & 7
if (fperm & perm) == perm {
return true
}
/* user permissions */
if f.Uid == user.Name() || f.Uidnum == uint32(user.Id()) {
fperm |= (f.Mode >> 6) & 7
}
if (fperm & perm) == perm {
return true
}
/* group permissions */
groups := user.Groups()
if groups != nil && len(groups) > 0 {
for i := 0; i < len(groups); i++ {
if f.Gid == groups[i].Name() || f.Gidnum == uint32(groups[i].Id()) {
fperm |= (f.Mode >> 3) & 7
break
}
}
}
if (fperm & perm) == perm {
return true
}
return false
}