| 186 | } |
| 187 | |
| 188 | func (c *RepoCache) GetUserIdentity() (*IdentityCache, error) { |
| 189 | c.muUserIdentity.RLock() |
| 190 | if c.userIdentityId != "" { |
| 191 | defer c.muUserIdentity.RUnlock() |
| 192 | return c.identities.Resolve(c.userIdentityId) |
| 193 | } |
| 194 | c.muUserIdentity.RUnlock() |
| 195 | |
| 196 | c.muUserIdentity.Lock() |
| 197 | defer c.muUserIdentity.Unlock() |
| 198 | |
| 199 | i, err := identity.GetUserIdentityId(c.repo) |
| 200 | if err != nil { |
| 201 | return nil, err |
| 202 | } |
| 203 | |
| 204 | c.userIdentityId = i |
| 205 | |
| 206 | return c.identities.Resolve(i) |
| 207 | } |
| 208 | |
| 209 | func (c *RepoCache) GetUserIdentityExcerpt() (*IdentityExcerpt, error) { |
| 210 | c.muUserIdentity.RLock() |