Private photos: see who shares back
This commit is contained in:
parent
577c92386e
commit
944dbb749b
|
@ -45,6 +45,7 @@ func Private() http.HandlerFunc {
|
|||
var vars = map[string]interface{}{
|
||||
"IsGrantee": isGrantee,
|
||||
"CountGrantee": models.CountPrivateGrantee(currentUser.ID),
|
||||
"GranteeMap": models.MapPrivatePhotoGrantee(currentUser, users),
|
||||
"Users": users,
|
||||
"Pager": pager,
|
||||
}
|
||||
|
|
|
@ -226,3 +226,33 @@ func (pb *PrivatePhoto) Save() error {
|
|||
result := DB.Save(pb)
|
||||
return result.Error
|
||||
}
|
||||
|
||||
// PrivateGranteeMap maps user IDs to whether they have granted you their private photos.
|
||||
type PrivateGranteeMap map[uint64]bool
|
||||
|
||||
// MapShyAccounts looks up a set of user IDs in bulk and returns a PrivateGranteeMap suitable for templates.
|
||||
func MapPrivatePhotoGrantee(currentUser *User, users []*User) PrivateGranteeMap {
|
||||
var (
|
||||
usermap = PrivateGranteeMap{}
|
||||
)
|
||||
|
||||
var (
|
||||
matched = []*PrivatePhoto{}
|
||||
result = DB.Model(&PrivatePhoto{}).
|
||||
Where("target_user_id = ?", currentUser.ID).
|
||||
Find(&matched)
|
||||
)
|
||||
|
||||
if result.Error == nil {
|
||||
for _, row := range matched {
|
||||
usermap[row.SourceUserID] = true
|
||||
}
|
||||
}
|
||||
|
||||
return usermap
|
||||
}
|
||||
|
||||
// Get a user from the PrivateGranteeMap.
|
||||
func (um PrivateGranteeMap) Get(id uint64) bool {
|
||||
return um[id]
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@
|
|||
<p class="title is-4">
|
||||
<a href="/u/{{.Username}}" class="has-text-dark">{{.NameOrUsername}}</a>
|
||||
</p>
|
||||
<p class="subtitle is-6">
|
||||
<p class="subtitle is-6 mb-1">
|
||||
<span class="icon"><i class="fa fa-user"></i></span>
|
||||
<a href="/u/{{.Username}}">{{.Username}}</a>
|
||||
{{if not .Certified}}
|
||||
|
@ -108,6 +108,21 @@
|
|||
</span>
|
||||
{{end}}
|
||||
</p>
|
||||
|
||||
<!-- Indicator if they are sharing back -->
|
||||
<div>
|
||||
{{if $Root.GranteeMap.Get .ID}}
|
||||
<span class="has-text-success">
|
||||
<i class="fa fa-check mr-1"></i>
|
||||
Sharing with me too
|
||||
</span>
|
||||
{{else}}
|
||||
<span class="has-text-danger">
|
||||
<i class="fa fa-xmark mr-1"></i>
|
||||
Not sharing with me
|
||||
</span>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue
Block a user