2024.11.0-alpha.0に更新しました

やはり発音不能なハンドルネームにしてオフ会で来た人を困らせてくしかないか

恥ずかしくて発声できない系ハンドルネームと人類には発声しょうがない系ハンドルネームとでオフ会していかに相手のことを呼ばずに過ごすか対戦

発音しようがないハンドルネームの大物はやっぱりBio_100%にいた!J°U氏な

タイムラインにエリパチネタのわかる人がいるとわかったのでこれからは容赦なく紙より薄い俺達の命…とかつぶやいてける

2024-11-10 17:07:55 うえの :fedibird1:の投稿 utan@fedibird.com

Q.SNS中毒から回復する方法は?

うえの「SNSで聞けば教えてくれる」

2024-10-25 18:44:03 Esna Ligunskaya 👑 りぐんすかやの女王の投稿 esna@skaya.ligun.net

このアカウントは、notestockで公開設定になっていません。

手遅れのみなさん、

神罪くんいつの間にかいないいないなったった

まよえる青年は垢爆破しがち

まーそのうちまた戻ってくるでしょ

2024-11-10 17:15:40 モリーオの投稿 ozoramore@social.t2arc.net

このアカウントは、notestockで公開設定になっていません。

Xをみろ、みんなイーロンを神じゃなくて悪魔扱いしてる

Fedi民は犬、ただでSNS遊ばせてくれる鯖缶はきっと神様
X民は猫、ただでSNS遊ばせてもらえる自分はきっと神様

システム上ブロックできちゃうのに、やられるたびに「管理者をブロックしてはいけない」と言うのも微妙なので、システム上できないようにした。

アプリコードじゃなくて、DBの方にトリガを書いてこんな感じで

create or replace function check_blockee_is_not_admin()
returns trigger as
$func$
begin
	if  -- ブロック実行者がローカルサーバーの人であって
		(select host from "user" u where u.id = new."blockerId") is null
	  and
        -- ブロック対象者がこのサーバーの管理者であるなら
		new."blockeeId" in (
			select u.id
			from 	
				"user" u
			where
				u."isRoot"
			    or exists (select 1 from
			    	role_assignment ra join role r on (r.id = ra."roleId" and r."isAdministrator")
			    	where ra."userId" = u.id
			    )
		)
	then
		raise exception 'cannot block admin.';
	end if;
	return new;
end
$func$ language plpgsql;


create trigger check_blockee 
before insert on blocking
for each row execute procedure check_blockee_is_not_admin();

トリガを使うともっと強気に、管理者をブロックしたとたんにアカウント凍結みたいなことも書けちゃうんだけど、ほしいのはそういうSNSじゃないし

みさっちいつのまに大天使になったの

アークエンジェルっていうとやっぱりバリアントとかローエングリンとかのごついビーム砲を乱射してそうな感じね

トリガ書いたの初めてなのでほとんどスタックオーバーフローの書き写し

@aoikagase@calckey.aokaga.work isDeletedを解除してみたの

DBにGUIツールでつないでみて初めてわかったことなんだけど、userってテーブル名はこのままで参照できないのね、ポスグレ。
必ず
"user"って二重引用符で囲わないといけない。予約後だからそりゃそうかって感じなんだけど、psqlコマンドだけで叩こうとしてたときはなんでこのテーブルうまくアクセスできないんだってなってた

Misskeyのuserテーブル眺めてて、isLockedってフラグはなんなんだろうね