ec48618d40
* Fix bug preventing transfer to private organization The code assessing whether a private organization was visible to a user before allowing transfer was incorrect due to testing membership the wrong way round This PR fixes this issue and renames the function performing the test to be clearer. Further looking at the API for transfer repository - no testing was performed to ensure that the acting user could actually see the new owning organization. Signed-off-by: Andrew Thornton <art27@cantab.net> * change IsUserPartOfOrg everywhere Co-authored-by: zeripath <art27@cantab.net>
139 lines
5.5 KiB
Cheetah
139 lines
5.5 KiB
Cheetah
{{template "base/head" .}}
|
|
<div class="user profile">
|
|
<div class="ui container">
|
|
<div class="ui stackable grid">
|
|
<div class="ui five wide column">
|
|
<div class="ui card">
|
|
{{if eq .SignedUserName .Owner.Name}}
|
|
<a class="image poping up" href="{{AppSubUrl}}/user/settings" id="profile-avatar" data-content="{{.i18n.Tr "user.change_avatar"}}" data-variation="inverted tiny" data-position="bottom center">
|
|
<img src="{{.Owner.SizedRelAvatarLink 290}}" title="{{.Owner.Name}}"/>
|
|
</a>
|
|
{{else}}
|
|
<span class="image">
|
|
<img src="{{.Owner.SizedRelAvatarLink 290}}" title="{{.Owner.Name}}"/>
|
|
</span>
|
|
{{end}}
|
|
<div class="content wrap">
|
|
{{if .Owner.FullName}}<span class="header text center">{{.Owner.FullName}}</span>{{end}}
|
|
<span class="username text center">{{.Owner.Name}}</span>
|
|
</div>
|
|
<div class="extra content wrap">
|
|
<ul class="text black">
|
|
{{if .Owner.Location}}
|
|
<li>{{svg "octicon-location" 16}} {{.Owner.Location}}</li>
|
|
{{end}}
|
|
{{if .ShowUserEmail }}
|
|
<li>
|
|
{{svg "octicon-mail" 16}}
|
|
<a href="mailto:{{.Owner.Email}}" rel="nofollow">{{.Owner.Email}}</a>
|
|
</li>
|
|
{{end}}
|
|
{{if .Owner.Website}}
|
|
<li>
|
|
{{svg "octicon-link" 16}}
|
|
<a target="_blank" rel="noopener noreferrer me" href="{{.Owner.Website}}">{{.Owner.Website}}</a>
|
|
</li>
|
|
{{end}}
|
|
{{if .Owner.Description}}
|
|
<li>
|
|
{{svg "octicon-info" 16}}
|
|
<span>{{.Owner.Description}}</span>
|
|
</li>
|
|
{{end}}
|
|
{{range .OpenIDs}}
|
|
{{if .Show}}
|
|
<li>
|
|
<i class="fa fa-openid"></i>
|
|
<a target="_blank" rel="noopener noreferrer" href="{{.URI}}">{{.URI}}</a>
|
|
</li>
|
|
{{end}}
|
|
{{end}}
|
|
<li>{{svg "octicon-clock" 16}} {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li>
|
|
{{if and .Orgs .HasOrgsVisible}}
|
|
<li>
|
|
<ul class="user-orgs">
|
|
{{range .Orgs}}
|
|
{{if (or .Visibility.IsPublic (and ($.SignedUser) (or .Visibility.IsLimited (and (.HasMemberWithUserID $.SignedUserID) .Visibility.IsPrivate) ($.IsAdmin))))}}
|
|
<li>
|
|
<a href="{{.HomeLink}}"><img class="ui image poping up" src="{{.RelAvatarLink}}" data-content="{{.Name}}" data-position="top center" data-variation="tiny inverted"></a>
|
|
</li>
|
|
{{end}}
|
|
{{end}}
|
|
</ul>
|
|
</li>
|
|
{{end}}
|
|
{{if and .IsSigned (ne .SignedUserName .Owner.Name)}}
|
|
<li class="follow">
|
|
{{if .SignedUser.IsFollowing .Owner.ID}}
|
|
<form method="post" action="{{.Link}}/action/unfollow?redirect_to={{$.Link}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<button type="submit" class="ui basic red button">{{svg "octicon-person" 16}} {{.i18n.Tr "user.unfollow"}}</button>
|
|
</form>
|
|
{{else}}
|
|
<form method="post" action="{{.Link}}/action/follow?redirect_to={{$.Link}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<button type="submit" class="ui basic green button">{{svg "octicon-person" 16}} {{.i18n.Tr "user.follow"}}</button>
|
|
</form>
|
|
{{end}}
|
|
</li>
|
|
{{end}}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="ui eleven wide column">
|
|
<div class="ui secondary stackable pointing menu">
|
|
<a class='{{if and (ne .TabName "activity") (ne .TabName "following") (ne .TabName "followers") (ne .TabName "stars")}}active{{end}} item' href="{{.Owner.HomeLink}}">
|
|
{{svg "octicon-repo" 16}} {{.i18n.Tr "user.repositories"}}
|
|
</a>
|
|
<a class='{{if eq .TabName "activity"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=activity">
|
|
{{svg "octicon-rss" 16}} {{.i18n.Tr "user.activity"}}
|
|
</a>
|
|
<a class='{{if eq .TabName "stars"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=stars">
|
|
{{svg "octicon-star" 16}} {{.i18n.Tr "user.starred"}}
|
|
<div class="ui label">{{.Owner.NumStars}}</div>
|
|
</a>
|
|
<a class='{{if eq .TabName "following"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=following">
|
|
{{svg "octicon-person" 16}} {{.i18n.Tr "user.following"}}
|
|
<div class="ui label">{{.Owner.NumFollowing}}</div>
|
|
</a>
|
|
<a class='{{if eq .TabName "followers"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=followers">
|
|
{{svg "octicon-person" 16}} {{.i18n.Tr "user.followers"}}
|
|
<div class="ui label">{{.Owner.NumFollowers}}</div>
|
|
</a>
|
|
</div>
|
|
|
|
{{if eq .TabName "activity"}}
|
|
{{if .EnableHeatmap}}
|
|
<div id="user-heatmap" style="padding-right: 40px">
|
|
<activity-heatmap :locale="locale" :suburl="suburl" :user="heatmapUser">
|
|
<div slot="loading">
|
|
<div class="ui active centered inline indeterminate text loader" id="loading-heatmap">{{.i18n.Tr "user.heatmap.loading"}}</div>
|
|
</div>
|
|
</activity-heatmap>
|
|
</div>
|
|
<div class="ui divider"></div>
|
|
{{end}}
|
|
<div class="feeds">
|
|
{{template "user/dashboard/feeds" .}}
|
|
</div>
|
|
{{else if eq .TabName "stars"}}
|
|
<div class="stars">
|
|
{{template "explore/repo_search" .}}
|
|
{{template "explore/repo_list" .}}
|
|
{{template "base/paginate" .}}
|
|
</div>
|
|
{{else if eq .TabName "following"}}
|
|
{{template "repo/user_cards" .}}
|
|
{{else if eq .TabName "followers"}}
|
|
{{template "repo/user_cards" .}}
|
|
{{else}}
|
|
{{template "explore/repo_search" .}}
|
|
{{template "explore/repo_list" .}}
|
|
{{template "base/paginate" .}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{template "base/footer" .}}
|