안녕하세요
최고관리자는 @auth('admin') @admin $logged_info->is_admin === 'Y' $grant->root $grant->is_admin $grant->is_site_admin
관리그룹은 ???
게시판별 모듈 관리자는 @auth('manager') $grant->manager
최고 관리자의 권한이 너무 커서 관리그룹으로 특정회원 그룹을 관리하려 합니다.
잠깐 동안 특정 그룹을 생성하여 관리그룹 권한을 주고 나중에 그 그룹을 삭제하는 방식으로 권한 관리를 하려고 하는데
현재 로그인한 회원이 관리그룹에 속하는지 판별할 수 있는 method나 템플릿 변수 같은게 없더라구요.
어쩔수 없이
foreach(MemberModel::getAdminGroup() as $val)
{
$admingroup[$val->group_srl] = $val->title;
}
if (count(array_intersect_key($logged_info->group_list , $admingroup)) > 0)
관리그룹이 한개라면
$admingroup = MemberModel::getAdminGroupSrl()
if (array_key_exists($admingroup, $logged_info->group_list))
-- 이런식으로 만들어 쓰고 있습니다.
제가 못찾은 건지...... 혹시 없다면 스킨에서 간편히 쓸 수 있도록 코어에서 지원해 주시면 좋겠습니다. 예를들면 v2에서는 @auth('admin_group') 이런 식으로요.
그리고 설정 > 회원 > 회원그룹에서 "관리그룹"도 제한없이 삭제할 수 있더군요. 그런데 설정페이지에서 다시 생성한 그룹에 관리그룹 롤을 부여하는 곳이 없습니다. 직접 DB member_group 테이블에서 is_admin 필드를 수정해야 합니다. 이 부분도 설정페이지에서 조작할 수 있으면 좋겠습니다.
더운데 건강 조심하세요! 감사합니다.
댓글 4
관리그룹은 특별한 의미가 없습니다. "관리그룹"이라는 이름은 그냥 문자열일 뿐이고,
특정 그룹에 is_admin 플래그를 주더라도 어떤 권한이 주어지는 것이 아닙니다.
(관리자 메뉴 접근 권한 쪽에 흔적이 남아 있긴 한데, 그것도 아주 오래 전의 흔적일 뿐 실질적인 역할은 없죠.)
만약 관리그룹이 특별한 권한을 갖고 있다면, 그 그룹에게 게시판이나 페이지 등의 관리 권한을 주었기 때문일 텐데,
다른 어떤 그룹이라도 동일한 권한을 주면 동일한 효과를 얻을 수 있지요.
즉, 아무 그룹이나 소속 여부를 따져서 원하시는 권한을 부여하면 됩니다.
무의미한 is_admin 플래그는 조만간 삭제하거나 하겠습니다.
권한이 있으니 이를 사용하려 했던 것이 아니라, 기존 환경을 이용해 특정 그룹에 권한을 부여하고 모듈,스킨에서 활용하려는 것이 주 목적이었습니다. 플래그 있는 그룹은 관리그룹이 유일해서요. 사실 is_admin이 아닌 분류 같은 사용자가 지정할 수 있는 플래그가 처음부터 있었으면 좋았겠지만요.
특정 그룹에 권한을 주고 이를 활용하려면
관리자 설정에서 생성한 그룹이름 또는 srl을 모듈 이나 스킨에서 직접 지정해야 합니다. 그룹이름과 group_srl은 바뀔수도 있어서 그때마다 직접 코드를 변경해야 하므로 불편한 점이 있습니다.
하지만 관리그룹으로는 모듈, 스킨에서 한 번 지정하면 이 후 코드를 변경하지 않고도 그룹이름에 상관없이 사용할 수 있는 장점이 있습니다. 또한 그룹으로 권한을 관리하는 것이 편하기도 하구요. 가령 특정 회원들이 일주일 정도만 관리권한을 갖고 이후 권한을 상실하게 한다면 기존 is_admin그룹에 회원을 추가했다 삭제하는것이 아니라, 기존 is_admin그룹은 그대로 두고 그룹a를 만들어 여기에 추가하고 나중에 그룹a를 삭제하는 방식이었습니다. 기존 권한자와 임시권한자를 분리하여 확인도 편하고 오류도 줄이구요.
다만, 저와 같이 is_admin 플래그 및 관리그룹을 이용하는 사용자가 적고 코어관리 측면에서 바람직하다면 삭제하시는 것이 맞겠지만, 괜히 건의를 했다가 있는 기능까지 삭제하게 만드는 것 같아 아쉽습니다.
감사합니다.
이름에 "특정한 단어"가 포함된 그룹을 만들어서 원하는 회원들을 임시로 거기에 소속시키고, 접속자의 group_list를 array_filter로 걸러서 "그 단어"가 포함되어 있으면 권한을 주는 방법을 추천드립니다. 그룹 이름이든 is_admin 컬럼이든 의미없는 문자열인 것은 마찬가지인데, 그룹 이름은 지금 당장 활용할 수 있으니까요.
라이믹스에서 별다른 기능을 하지 않는 컬럼이나 함수 등이 혼란을 일으키는 것이 눈에 띄면 삭제하는 것이 원칙입니다. 특히 권한과 관련된 부분에서 오해가 일어난다면 무척 위험하니까요. 물론 되살린다는 선택지도 있지만, 과거에 XE에서 쓰다 버린 것과 동일한 구조로 되살리는 것이 현 시점에서 최적일 가능성은 무척 낮습니다. 예를 들어 말씀하신 것처럼 좀더 다양한 플래그를 지원한다면 좋겠지요. 이러나 저러나 is_admin 컬럼은 버려질 운명인 겁니다.^^
네. 그룹들은 조언해 주신 방법을 사용하겠습니다. 검토 감사합니다.^^