Fixed broken logging

environments/review-front-deve-otr6gc/deployments/1920
Eliot Berriot 2019-06-24 15:30:17 +02:00
rodzic 32de134e4a
commit 68b21d706c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: DD6965E2476E5C27
8 zmienionych plików z 121 dodań i 13 usunięć

Wyświetl plik

@ -46,7 +46,7 @@ logging.config.dictConfig(
},
"loggers": {
"funkwhale_api": {
"level": LOGLEVEL,
"level": logging.getLevelName("LOGLEVEL"),
"handlers": ["console"],
# required to avoid double logging with root logger
"propagate": False,

Wyświetl plik

@ -237,10 +237,20 @@ class ManageUploadFilterSet(filters.FilterSet):
class ManageDomainFilterSet(filters.FilterSet):
q = fields.SearchFilter(search_fields=["name"])
allowed = filters.BooleanFilter()
class Meta:
model = federation_models.Domain
fields = ["name"]
fields = ["name", "allowed"]
def filter_allowed(self, qs, value):
"""
If value=false, we want to include object with value=null as well
"""
if value:
return qs.filter(allowed=True)
else:
return qs.filter(allowed__in=[False, None])
class ManageActorFilterSet(filters.FilterSet):

Wyświetl plik

@ -19,8 +19,8 @@ class AllowListPublic(types.BooleanPreference):
name = "allow_list_public"
verbose_name = "Publish your allowed-domains list"
help_text = (
"If enabled, everyone will be able to retrieve the list of domains you allowed. ",
"If enabled, everyone will be able to retrieve the list of domains you allowed. "
"This is useful on open setups, to help people decide if they want to join your pod, or to "
"make your moderation policy public.",
"make your moderation policy public."
)
default = False

Wyświetl plik

@ -6,6 +6,14 @@
<label><translate translate-context="Content/Search/Input.Label/Noun">Search</translate></label>
<input name="search" type="text" v-model="search" :placeholder="labels.searchPlaceholder" />
</div>
<div class="field">
<label><translate translate-context="Content/Moderation/*/Adjective">Is present on allow-list</translate></label>
<select class="ui dropdown" v-model="allowed">
<option :value="null"><translate translate-context="*/*/*">All</translate></option>
<option :value="true"><translate translate-context="*/*/*">Yes</translate></option>
<option :value="false"><translate translate-context="*/*/*">No</translate></option>
</select>
</div>
<div class="field">
<label><translate translate-context="Content/Search/Dropdown.Label/Noun">Ordering</translate></label>
<select class="ui dropdown" v-model="ordering">
@ -93,7 +101,8 @@ import TranslationsMixin from '@/components/mixins/Translations'
export default {
mixins: [OrderingMixin, TranslationsMixin],
props: {
filters: {type: Object, required: false}
filters: {type: Object, required: false},
allowListEnabled: {type: Boolean, default: false},
},
components: {
Pagination,
@ -108,6 +117,7 @@ export default {
page: 1,
paginateBy: 50,
search: '',
allowed: null,
orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field,
orderingOptions: [
@ -124,12 +134,16 @@ export default {
},
methods: {
fetchData () {
let params = _.merge({
let baseFilters = {
'page': this.page,
'page_size': this.paginateBy,
'q': this.search,
'ordering': this.getOrderingAsString()
}, this.filters)
'ordering': this.getOrderingAsString(),
}
if (this.allowed !== null) {
baseFilters.allowed = this.allowed
}
let params = _.merge(baseFilters, this.filters)
let self = this
self.isLoading = true
self.checked = []
@ -179,6 +193,9 @@ export default {
page () {
this.fetchData()
},
allowed () {
this.fetchData()
},
ordering () {
this.fetchData()
},

Wyświetl plik

@ -82,6 +82,7 @@ export default {
let musicLabel = this.$pgettext('*/*/*/Noun', 'Music')
let playlistsLabel = this.$pgettext('*/*/*', 'Playlists')
let federationLabel = this.$pgettext('Content/Admin/Menu', 'Federation')
let moderationLabel = this.$pgettext('Content/Admin/Menu', 'Moderation')
let subsonicLabel = this.$pgettext('Content/Admin/Menu', 'Subsonic')
let statisticsLabel = this.$pgettext('Content/Admin/Menu', 'Statistics')
let errorLabel = this.$pgettext('Content/Admin/Menu', 'Error reporting')
@ -118,6 +119,14 @@ export default {
id: "playlists",
settings: ["playlists__max_tracks"]
},
{
label: moderationLabel,
id: "moderation",
settings: [
"moderation__allow_list_enabled",
"moderation__allow_list_public",
]
},
{
label: federationLabel,
id: "federation",

Wyświetl plik

@ -9,12 +9,31 @@
:to="{name: 'manage.moderation.accounts.list'}"><translate translate-context="*/Moderation/Title">Accounts</translate></router-link>
</nav>
<router-view :key="$route.fullPath"></router-view>
<router-view :allow-list-enabled="allowListEnabled" :key="$route.fullPath"></router-view>
</div>
</template>
<script>
import _ from '@/lodash'
import axios from 'axios'
export default {
data () {
return {
allowListEnabled: false
}
},
created () {
this.fetchNodeInfo()
},
methods: {
fetchNodeInfo () {
let self = this
axios.get('instance/nodeinfo/2.0/').then(response => {
self.allowListEnabled = _.get(response.data, 'metadata.allowList.enabled', false)
})
},
},
computed: {
labels() {
return {
@ -22,6 +41,6 @@ export default {
secondaryMenu: this.$pgettext('Menu/*/Hidden text', "Secondary menu")
}
}
}
},
}
</script>

Wyświetl plik

@ -20,6 +20,34 @@
</div>
</div>
</h2>
<div class="header-buttons">
<div class="ui icon buttons">
<a
v-if="$store.state.auth.profile.is_superuser"
class="ui labeled icon button"
:href="$store.getters['instance/absoluteUrl'](`/api/admin/federation/domain/${object.name}`)"
target="_blank" rel="noopener noreferrer">
<i class="wrench icon"></i>
<translate translate-context="Content/Moderation/Link/Verb">View in Django's admin</translate>&nbsp;
</a>
</div>
<div v-if="allowListEnabled" class="ui icon buttons">
<button
v-if="object.allowed"
@click.prevent="setAllowList(false)"
:class="['ui', 'labeled', {loading: isLoadingAllowList}, 'icon', 'button']">
<i class="x icon"></i>
<translate translate-context="Content/Moderation/Link/Verb">Remove from allow-list</translate>
</button>
<button
v-else
@click.prevent="setAllowList(true)"
:class="['ui', 'labeled', {loading: isLoadingAllowList}, 'icon', 'button']">
<i class="check icon"></i>
<translate translate-context="Content/Moderation/Link/Verb">Add to allow-list</translate>
</button>
</div>
</div>
</div>
</div>
<div class="ui column">
@ -74,6 +102,15 @@
</h3>
<table class="ui very basic table">
<tbody>
<tr v-if="allowListEnabled">
<td>
<translate translate-context="Content/Moderation/*/Adjective">Is present on allow-list</translate>
</td>
<td>
<translate v-if="object.allowed" translate-context="*/*/*">Yes</translate>
<translate v-else translate-context="*/*/*">No</translate>
</td>
</tr>
<tr>
<td>
<translate translate-context="Content/*/Table.Label">Last checked</translate>
@ -300,7 +337,7 @@ import InstancePolicyForm from "@/components/manage/moderation/InstancePolicyFor
import InstancePolicyCard from "@/components/manage/moderation/InstancePolicyCard"
export default {
props: ["id"],
props: ["id", "allowListEnabled"],
components: {
InstancePolicyForm,
InstancePolicyCard,
@ -311,6 +348,7 @@ export default {
isLoading: true,
isLoadingStats: false,
isLoadingPolicy: false,
isLoadingAllowList: false,
policy: null,
object: null,
stats: null,
@ -353,6 +391,15 @@ export default {
self.isLoadingPolicy = false
})
},
setAllowList(value) {
var self = this
this.isLoadingAllowList = true
let url = `manage/federation/domains/${this.id}/`
axios.patch(url, {allowed: value}).then(response => {
self.object = response.data
self.isLoadingAllowList = false
})
},
refreshNodeInfo (data) {
this.object.nodeinfo = data
this.object.nodeinfo_fetch_date = new Date()

Wyświetl plik

@ -14,6 +14,10 @@
<label for="domain"><translate translate-context="Content/Moderation/Form.Label/Verb">Add a domain</translate></label>
<input type="text" name="domain" id="domain" v-model="domainName">
</div>
<div class="field" v-if="allowListEnabled">
<input type="checkbox" name="allowed" id="allowed" v-model="domainAllowed">
<label for="allowed"><translate translate-context="Content/Moderation/Form.Label/Verb">Add to allow-list</translate></label>
</div>
<div class="field">
<button :class="['ui', {'loading': isCreating}, 'green', 'button']" type="submit" :disabled="isCreating">
<label for="domain"><translate translate-context="Content/Moderation/Button/Verb">Add</translate></label>
@ -22,7 +26,7 @@
</div>
</form>
<div class="ui clearing hidden divider"></div>
<domains-table></domains-table>
<domains-table :allow-list-enabled="allowListEnabled"></domains-table>
</section>
</main>
</template>
@ -32,12 +36,14 @@ import axios from 'axios'
import DomainsTable from "@/components/manage/moderation/DomainsTable"
export default {
props: ['allowListEnabled'],
components: {
DomainsTable
},
data () {
return {
domainName: '',
domainAllowed: this.allowListEnabled ? true : null,
isCreating: false,
errors: []
}
@ -54,7 +60,7 @@ export default {
let self = this
this.isCreating = true
this.errors = []
axios.post('manage/federation/domains/', {name: this.domainName}).then((response) => {
axios.post('manage/federation/domains/', {name: this.domainName, allowed: this.domainAllowed}).then((response) => {
this.isCreating = false
this.$router.push({
name: "manage.moderation.domains.detail",