• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Gruppen Rollen

Jeremygolf

Mitglied
Hallo zusammen,

habe ein Gruppen Module. Jede Gruppe hat mitglieder und einen admin. Es gibt public, private und secret gruppen.
Auf public und private kann zu gegriffen werden und secret nicht.
Der Gruppen Admin hat noch ein extra tab: Manage Group.
Nun habe ich dafür einen Controller (MVC). Alleine für die manager seiten habe ich ca. 4 funktionen. In der ich jedes mal abfragen muss ob der user admin ist, was ich mühsam finde. Wenn sich das modul erweitert habe ich so viel redundanten code. Gibt es eine gute Möglichkeit dieses Problem zu lösen?

Hier zwei funktionen des admin:
Code:
public function settings($groupid) {
        $data['groupInfo'] = $this->_model->editGroup($groupid);
        if($data['groupInfo'][0]->groupAdmin != Session::get('userid')){
            $error[] = "You don't have permissions to manage this group";
        }
       
        if(!$error){
            $data['isGroupAdmin'] = true;
           
            if(isset($_POST['submit'])){
                $name = $_POST["groupName"];
                $desc = $_POST["groupDesc"];
                $privacy = $_POST["privacy"];
                               
                $datapost = array(
                    'name' => $name,
                    'description' => $desc,
                    'status' => $privacy
                );
               
                $where = array(
                    'groupid' => $groupid   
                );
               
                $this->_model->update("groups", $datapost, $where);
                Url::redirect("groups/". $groupid ."/manage/settings");
            }
        }
                       
        View::rendertemplate('header', $data);
        View::rendertemplate('sub/groups/groupnav', $data);
        View::render('groups/manage/settings', $data, $error);
        View::rendertemplate('footer', $data);
    }
   
    public function requests($groupid){
        $data['groupInfo'] = $this->_model->editGroup($groupid);
        if($data['groupInfo'][0]->groupAdmin != Session::get('userid')){
            $error[] = "You don't have permissions to manage this group";
        }
       
        if(!$error){
            $data['requests'] = $this->_model->getRequests($groupid);
            $data['isGroupAdmin'] = true;
        }
       
        //print_r($data['requests']);
       
        View::rendertemplate('header', $data);
        View::rendertemplate('sub/groups/groupnav', $data);
        View::render('groups/manage/requests', $data, $error);
        View::rendertemplate('footer', $data);
    }
 
Werbung:
Hallo,

ich würde das dann am Anfang machen, wie folgt:

PHP:
public function __construct() {
    $this->_benutzerrechte = $_SESSION['benutzerrechte'];
    }

das kannst du dann in allen folgenden funktionen verwenden...
 
Zurück
Oben