Artist role

merge-requests/30/head
Bob Mottram 2021-05-17 17:13:56 +01:00
parent a839e914d2
commit da07855e97
20 changed files with 117 additions and 17 deletions

View File

@ -128,6 +128,7 @@ from roles import setRole
from roles import clearModeratorStatus
from roles import clearEditorStatus
from roles import clearCounselorStatus
from roles import clearArtistStatus
from blog import htmlBlogPageRSS2
from blog import htmlBlogPageRSS3
from blog import htmlBlogView
@ -4872,6 +4873,62 @@ class PubServer(BaseHTTPRequestHandler):
edNick, domain,
'counselor')
# change site artists list
if fields.get('artists'):
if path.startswith('/users/' +
adminNickname + '/'):
artistsFile = \
baseDir + \
'/accounts/artists.txt'
clearArtistStatus(baseDir)
if ',' in fields['artists']:
# if the list was given as comma separated
edFile = open(artistsFile, "w+")
eds = fields['artists'].split(',')
for edNick in eds:
edNick = edNick.strip()
edDir = baseDir + \
'/accounts/' + edNick + \
'@' + domain
if os.path.isdir(edDir):
edFile.write(edNick + '\n')
edFile.close()
eds = fields['artists'].split(',')
for edNick in eds:
edNick = edNick.strip()
edDir = baseDir + \
'/accounts/' + edNick + \
'@' + domain
if os.path.isdir(edDir):
setRole(baseDir,
edNick, domain,
'artist')
else:
# nicknames on separate lines
edFile = open(artistsFile, "w+")
eds = fields['artists'].split('\n')
for edNick in eds:
edNick = edNick.strip()
edDir = \
baseDir + \
'/accounts/' + edNick + \
'@' + domain
if os.path.isdir(edDir):
edFile.write(edNick + '\n')
edFile.close()
eds = fields['artists'].split('\n')
for edNick in eds:
edNick = edNick.strip()
edDir = \
baseDir + \
'/accounts/' + \
edNick + '@' + \
domain
if os.path.isdir(edDir):
setRole(baseDir,
edNick, domain,
'artist')
# remove scheduled posts
if fields.get('removeScheduledPosts'):
if fields['removeScheduledPosts'] == 'on':

View File

@ -54,6 +54,14 @@ def clearCounselorStatus(baseDir: str) -> None:
_clearRoleStatus(baseDir, 'editor')
def clearArtistStatus(baseDir: str) -> None:
"""Removes artist status from all accounts
This could be slow if there are many users, but only happens
rarely when artists are appointed or removed
"""
_clearRoleStatus(baseDir, 'artist')
def clearModeratorStatus(baseDir: str) -> None:
"""Removes moderator status from all accounts
This could be slow if there are many users, but only happens
@ -126,6 +134,8 @@ def _setActorRole(actorJson: {}, roleName: str) -> bool:
category = '27-3041.00'
elif 'counselor' in roleName:
category = '23-1022.00'
elif 'artist' in roleName:
category = '27-1024.00'
if not category:
return False
@ -225,7 +235,8 @@ def setRole(baseDir: str, nickname: str, domain: str,
roleFiles = {
"moderator": "moderators.txt",
"editor": "editors.txt",
"counselor": "counselors.txt"
"counselor": "counselors.txt",
"artist": "artists.txt"
}
actorJson = loadJson(actorFilename)

View File

@ -3706,6 +3706,7 @@ def testRoles() -> None:
assert actorHasRole(actorJson, "moderator")
assert not actorHasRole(actorJson, "editor")
assert not actorHasRole(actorJson, "counselor")
assert not actorHasRole(actorJson, "artist")
def runAllTests():

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "إظهار رقم الإصدار داخل البيانات الوصفية للمثيل",
"Joined": "تاريخ الانضمام",
"City for spoofed GPS image metadata": "مدينة للبيانات الوصفية لصور GPS المخادعة",
"Occupation": "الاحتلال"
"Occupation": "الاحتلال",
"Artists": "الفنانين"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Mostra el número de versió a les metadades de la instància",
"Joined": "Data d'unió",
"City for spoofed GPS image metadata": "Ciutat per a metadades d'imatges GPS falsificades",
"Occupation": "Ocupació"
"Occupation": "Ocupació",
"Artists": "Artistes"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Dangos rhif y fersiwn o fewn metadata",
"Joined": "Dyddiad ymuno",
"City for spoofed GPS image metadata": "Dinas ar gyfer metadata delwedd GPS spoofed",
"Occupation": "Ngalwedigaeth"
"Occupation": "Ngalwedigaeth",
"Artists": "Artistiaid"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Versionsnummer in Instanzmetadaten anzeigen",
"Joined": "Verbundenes Datum",
"City for spoofed GPS image metadata": "Stadt für gefälschte GPS-Bildmetadaten",
"Occupation": "Besetzung"
"Occupation": "Besetzung",
"Artists": "Künstler"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Show version number within instance metadata",
"Joined": "Joined",
"City for spoofed GPS image metadata": "City for spoofed GPS image metadata",
"Occupation": "Occupation"
"Occupation": "Occupation",
"Artists": "Artists"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Mostrar el número de versión dentro de los metadatos de la instancia",
"Joined": "Fecha unida",
"City for spoofed GPS image metadata": "Ciudad para metadatos de imagen GPS falsificados",
"Occupation": "Ocupación"
"Occupation": "Ocupación",
"Artists": "Artistas"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Afficher le numéro de version dans les métadonnées de l'instance",
"Joined": "Joint",
"City for spoofed GPS image metadata": "Ville pour les métadonnées d'image GPS falsifiées",
"Occupation": "Occupation"
"Occupation": "Occupation",
"Artists": "Artistes"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Taispeáin uimhir an leagain laistigh de mheiteashonraí",
"Joined": "Dáta comhcheangailte",
"City for spoofed GPS image metadata": "Cathair le haghaidh meiteashonraí íomhá GPS spoofed",
"Occupation": "Slí bheatha"
"Occupation": "Slí bheatha",
"Artists": "Ealaíontóirí"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "उदाहरण मेटाडेटा के भीतर संस्करण संख्या दिखाएं",
"Joined": "दिनांक",
"City for spoofed GPS image metadata": "स्पूफ जीपीएस जीपीएस मेटाडेटा के लिए शहर",
"Occupation": "व्यवसाय"
"Occupation": "व्यवसाय",
"Artists": "कलाकार की"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Mostra il numero di versione nei metadati dell'istanza",
"Joined": "Unito",
"City for spoofed GPS image metadata": "Città per metadati di immagini GPS falsificate",
"Occupation": "Occupazione"
"Occupation": "Occupazione",
"Artists": "Artiste"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "インスタンスメタデータ内にバージョン番号を表示する",
"Joined": "参加日",
"City for spoofed GPS image metadata": "なりすましGPS画像メタデータの都市",
"Occupation": "職業"
"Occupation": "職業",
"Artists": "アーティスト"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Di nav metadata mînakê de nimreya guhertoyê nîşan bide",
"Joined": "Beşdarbûna Dîrokê",
"City for spoofed GPS image metadata": "Bajar ji bo metadata wêneya GPS ya xapînok",
"Occupation": "Sinet"
"Occupation": "Sinet",
"Artists": "Hunermend"
}

View File

@ -438,5 +438,6 @@
"Show version number within instance metadata": "Show version number within instance metadata",
"Joined": "Joined",
"City for spoofed GPS image metadata": "City for spoofed GPS image metadata",
"Occupation": "Occupation"
"Occupation": "Occupation",
"Artists": "Artists"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Mostrar o número da versão nos metadados da instância",
"Joined": "Data juntada",
"City for spoofed GPS image metadata": "Cidade para metadados de imagem GPS falsificados",
"Occupation": "Ocupação"
"Occupation": "Ocupação",
"Artists": "Artistas"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "Показать номер версии в метаданных экземпляра",
"Joined": "Присоединенная дата",
"City for spoofed GPS image metadata": "Город для поддельных метаданных изображения GPS",
"Occupation": "Занятие"
"Occupation": "Занятие",
"Artists": "Художники"
}

View File

@ -442,5 +442,6 @@
"Show version number within instance metadata": "在实例元数据中显示版本号",
"Joined": "加入日期",
"City for spoofed GPS image metadata": "欺骗性GPS影像元数据的城市",
"Occupation": "职业"
"Occupation": "职业",
"Artists": "艺人"
}

View File

@ -1500,6 +1500,21 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
counselors + '</textarea>'
roleAssignStr += ' </div></details>\n'
# artists
artists = ''
artistsFile = baseDir + '/accounts/artists.txt'
if os.path.isfile(artistsFile):
with open(artistsFile, "r") as f:
artists = f.read()
roleAssignStr += ' <b><label class="labels">' + \
translate['Artists'] + '</label></b><br>\n'
roleAssignStr += \
' <textarea id="message" name="artists" ' + \
'placeholder="" ' + \
'style="height:200px" spellcheck="false">' + \
artists + '</textarea>'
roleAssignStr += ' </div></details>\n'
# Video section
peertubeStr = ' <details><summary class="cw">' + \
translate['Video Settings'] + '</summary>\n'