(feat) add admin function