プロジェクト

全般

プロフィール

QA #1276 » delete_redmine_loginid.py

登録承認待ちのユーザをCSVファイルを参照し削除 - 奈良 裕記, 2021/11/22 02:38

 
# Redmineの登録承認待ちユーザIDの削除

# redmine_url='https://対象RedmineサーバURL'
# redmine_key='システム管理権限ユーザのAPIKEY'
# del_csvfilename="登録承認待ユーザIDのCSVファイル"

redmine_url='https://対象RedmineサーバURL'
redmine_key='システム管理権限ユーザのAPIKEY'
del_csvfilename="登録承認待ユーザIDのCSVファイルフルパス"

from redminelib import Redmine
from redminelib.exceptions import ResourceNotFoundError
from redminelib.exceptions import ServerError
import csv

def redmine_delete_id_csv(redmine,del_csvfilename):
delete_id_count=0
csv_file = open(del_csvfilename, "r", encoding="ms932", errors="", newline="" )
f = csv.reader(csv_file, delimiter=",", doublequote=False, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
header = next(f)
for row in f:
if delete_by_loginid(redmine,row[0]):
print('Deleted: ' + row[0])
delete_id_count=delete_id_count+1
else:
print('Delete Error: ' + row[0])
return delete_id_count

def delete_by_loginid(redmine,del_loginid):
ret=False
del_users = redmine.user.filter(name=del_loginid, status=2)
if len(del_users)==1:
ret=del_users[0].delete()
return ret


def redmine_registered_id_list(redmine):
registered_users = redmine.user.filter(status=2)
if len(registered_users)==0:
print('登録待ちIDはありません')
else:
print('下記の登録待ちIDがあります')
for user in registered_users:
print(user.login)


redmine = Redmine(redmine_url , key=redmine_key)
delete_count=redmine_delete_id_csv(redmine,del_csvfilename)
print('Deleted Id count= ' + str(delete_count))
redmine_registered_id_list(redmine)
(1-1/2)