ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 9 years ago

Closed 9 years ago

#3773 closed enhancement (fixed)

コミュニティ権限の分割機能

Reported by: BW Owned by: BW
Priority: major Milestone: OpenPNE2.14beta1
Component: 指定しない Version:
Keywords: Cc:

Description (last modified by BW)

■概要

  • 現状、コミュニティへの参加方法、公開範囲を1つのフラグで管理しているので、コミュニティに関する権限を分割するフラグを追加し、権限を細かく指定できるようにする。
  • トピック・コメント作成機能に「誰でも作成可能」項目を追加し、コミュニティに参加しなくても掲示板が使えるようにする

■機能詳細

コミュニティに関する権限を以下の4項目とする 1.参加条件(既存) 2.公開範囲(既存) 3.トピック作成権限(既存) 4.コメント作成権限(新設)

各権限と、設定できる値を以下のようにする
(1)参加条件

  • 誰でも参加OK  (既存)
  • 管理者の承認が必要 (既存)

(2)公開範囲

  • 全員に公開  (既存)
  • 参加者にのみ公開 (既存)

(3)トピック作成権限

  • コミュニティ参加者が作成可能 (既存)
  • 管理者のみ作成可能  (既存)
  • 誰でも作成可能  (新設)

(4)コメント作成権限

  • 参加者のみ作成可能 (新設)
  • 誰でも作成可能  (新設)

ただし、公開範囲に「参加者のみ公開」が指定された場合、 (3)(4)の「誰でも作成可能)は指定できないようにする
フラグのマトリクスと現行にある状態かどうかを表にまとめました。

参加条件公開範囲トピック作成権限コメント作成権限現行状態有無
誰でも全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ無し
誰でもNG
管理者のみ参加者のみ無し
誰でもNG
誰でも参加者のみNG
誰でもNG
承認全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ有り
誰でもNG
管理者のみ参加者のみ有り
誰でもNG
誰でも参加者のみNG
誰でもNG

■修正内容

(1) DB
コミュニティ管理テーブル[c_commu]で管理されている、以下のフィールドは未使用とする
  ・public_flag
  ・topic_authority

[c_commu]テーブルに、以下の4フィールドを追加する
  ・参加条件
    カラム名  : is_admit (default:public)
                 public : 誰でも参加可能
                 auth   : 管理者の承認が必要
  ・公開範囲
    カラム名  : is_open  (default:public)
                 public : 全員に公開
                 member : 参加者にのみ公開
  ・トピック作成権限
    カラム名  : is_topic (default:member)
                 member : 参加者のみ作成可能
                 admit_member : 管理者のみ作成可能
                 public : 誰でも作成可能
  ・コメント作成権限
    カラム名  : is_comment (default:member)
                 member : 参加者のみ作成可能
                 public : 誰でも作成可能
              

(2) SQL
ALTER TABLE c_commu ADD COLUMN is_admit enum('public','auth') NOT NULL DEFAULT 'public';
ALTER TABLE c_commu ADD COLUMN is_open enum('public','member') NOT NULL DEFAULT 'public';
ALTER TABLE c_commu ADD COLUMN is_topic enum('member','admin_only','public') NOT NULL DEFAULT 'member';
ALTER TABLE c_commu ADD COLUMN is_comment enum('member','public') NOT NULL DEFAULT 'member';

UPDATE c_commu SET is_admit='public',is_open='public',is_comment='member' WHERE public_flag='public';
UPDATE c_commu SET is_admit='auth',is_open='public',is_comment='member' WHERE public_flag='auth_sns';
UPDATE c_commu SET is_admit='auth',is_open='public',is_comment='member' WHERE public_flag='auth_public';
UPDATE c_commu SET is_admit='auth',is_open='member',is_comment='member' WHERE public_flag='auth_commu_member';

UPDATE c_commu SET is_topic='member' WHERE topic_authority='public';
UPDATE c_commu SET is_topic='admin_only' WHERE topic_authority='admin_only';

(3) ソース
OpenPNE2.13.6ベースで作成

Change History (20)

comment:2 Changed 9 years ago by BW

Description: modified (diff)

comment:3 Changed 9 years ago by BW

Description: modified (diff)

comment:4 Changed 9 years ago by kiwa

Milestone: OpenPNE2.13.8

ありがとうございます><2.13.8で取り込み検討します。

comment:5 Changed 9 years ago by kiwa

Priority: minormajor

comment:6 Changed 9 years ago by urabe

Owner: changed from nobody to urabe
Status: newassigned

comment:7 Changed 9 years ago by urabe

Keywords: 確認中 added

r11351 でトランクにマージしました。

comment:8 Changed 9 years ago by urabe

r11429 でSQLファイル名を適用バージョン用に変更しました。

comment:9 Changed 9 years ago by ShogoKawahara

r11516

アップデートSQLのファイル名の連番・バージョンを変更しました。

comment:10 Changed 9 years ago by ShogoKawahara

Keywords: 差し戻し added; 確認中 removed

Descriptionに

コミュニティ管理テーブル[c_commu]で管理されている、以下のフィールドは未使用とする
  ・public_flag
  ・topic_authority

とありますが、上記2つのフィールドは削除すべきであると考えます。

MySQL4.1<= の場合、現行のUPDATE SQLの最後に

ALTER TABLE c_commu DROP public_flag;
ALTER TABLE c_commu DROP topic_authority;

とすることで2つのフィールドを削除できると思います。

comment:11 Changed 9 years ago by kiwa

update sqlに問題があるので、今回はちょっと取り込み内容から外したいと思います。魅力的な機能ではあるので2.14beta1では対応させましょう。

comment:12 Changed 9 years ago by kiwa

取り外しやります

comment:13 Changed 9 years ago by kiwa

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで変更を取り消しました。

  • update sqlの削除 - r11548
  • r11351の変更取り消し - r11550
  • 残りのupdate sqlの連番修正 - r11551

comment:14 Changed 9 years ago by imamura623

Keywords: 確認中 removed
Milestone: OpenPNE2.13.8OpenPNE2.14beta1

機能取り外し後、2.13xで正常に動作することを確認しました。
Milestoneを2.14Beta1に変更いたします。

comment:15 Changed 9 years ago by BW

r11563でpublic_flag、topic_authorityの削除SQL追加しました。 r11564でpublic_flagの使用している箇所の修正漏れを修正しました。

comment:16 Changed 9 years ago by imamura623

  • r11600で取り外した機能をtrunkへ再マージ
  • r11601でr11563のpublic_flag、topic_authorityの削除SQL追加をtrunkへマージ
  • r11602でr11564のpublic_flagの使用している箇所の修正漏れを修正をtrunkへマージ

comment:17 Changed 9 years ago by kiwa

Owner: changed from urabe to nobody
Status: assignednew

ownerを外します

comment:18 Changed 9 years ago by nakasone

以下の表で動作確認を行ったところ、問題ありません。

参加条件公開範囲トピック作成権限コメント作成権限現行状態有無動作(管理者)動作(参加者)動作(非参加者)
誰でも全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ無し
誰でもNG---
管理者のみ参加者のみ無し
誰でもNG---
誰でも参加者のみNG---
誰でもNG---
承認全員参加者のみ参加者のみ有り
誰でも無し
管理者のみ参加者のみ有り
誰でも無し
誰でも参加者のみ無し
誰でも無し
参加者のみ参加者のみ参加者のみ有り
誰でもNG---
管理者のみ参加者のみ有り
誰でもNG---
誰でも参加者のみNG---
誰でもNG---

comment:19 Changed 9 years ago by imamura623

Owner: changed from nobody to BW

comment:20 Changed 9 years ago by imamura623

Resolution: fixed
Status: newclosed

問題無いようなので修正完了としこのチケットは閉じます。
お疲れ様でした。

Note: See TracTickets for help on using tickets.