Ejemplo n.º 1
0
 /**
  * show member panel
  *
  * @param string $name
  * @param Knowledgeroot_User|Knowledgeroot_Group $member
  * @param array $config
  * @return string
  */
 public function memberPanel($name, $member, $config = null)
 {
     $view = new Zend_View();
     $view->name = $name;
     // available roles
     $roles = array();
     if (!isset($config['show_users']) || isset($config['show_users']) && $config['show_users']) {
         $users = Knowledgeroot_User::getUsers();
         foreach ($users as $value) {
             $roles['U_' . $value->getId()] = $value->getLogin() . ' (U)';
         }
     }
     if (!isset($config['show_groups']) || isset($config['show_groups']) && $config['show_groups']) {
         $groups = Knowledgeroot_Group::getGroups();
         foreach ($groups as $value) {
             $roles['G_' . $value->getId()] = $value->getName() . ' (G)';
         }
     }
     $view->roles = $roles;
     $memberType = "";
     $memberId = "";
     if ($member instanceof Knowledgeroot_User) {
         $memberType = "user";
         $memberId = $member->getId();
     }
     if ($member instanceof Knowledgeroot_Group) {
         $memberType = "group";
         $memberId = $member->getId();
     }
     $members = array();
     if ($memberId != null) {
         if (isset($config['show_members']) && $config['show_members'] && $memberType == 'group') {
             $members = new Knowledgeroot_Db_GroupMember();
             $select = $members->select();
             $select->where('group_id = ?', $memberId);
         } else {
             $members = new Knowledgeroot_Db_GroupMember();
             $select = $members->select();
             $select->where('member_id = ?', $memberId);
             $select->where('member_type = ?', $memberType);
         }
         $all = $members->fetchAll($select);
         $members = array();
         foreach ($all as $value) {
             if (isset($config['show_members']) && $config['show_members'] && $memberType == 'group') {
                 if ($value['member_type'] == 'user') {
                     $user = new Knowledgeroot_User($value['member_id']);
                     $members['U_' . $user->getId()] = array('name' => $user->getLogin());
                 } else {
                     $group = new Knowledgeroot_Group($value['member_id']);
                     $members['G_' . $group->getId()] = array('name' => $group->getName());
                 }
             } else {
                 $group = new Knowledgeroot_Group($value['group_id']);
                 $members['G_' . $group->getId()] = array('name' => $group->getName());
             }
         }
     }
     $view->permissions = $members;
     $view->setScriptPath(APPLICATION_PATH . '/view/scripts/');
     return $view->render('helpers/memberpanel.phtml');
 }
Ejemplo n.º 2
0
 /**
  * delete user or group as member of this group
  *
  * @param Knowledgeroot_User|Knowledgeroot_Group $member
  */
 public function delMember($member)
 {
     $type = '';
     $memberId = null;
     // check if member is a user
     if ($member instanceof Knowledgeroot_User) {
         $type = 'user';
         $memberId = $member->getId();
     }
     // check if member is a group
     if ($member instanceof Knowledgeroot_Group) {
         $type = 'group';
         $memberId = $member->getId();
     }
     $member = new Knowledgeroot_Db_GroupMember();
     $member->delete(array('group_id = ?' => $this->id, 'member_id = ?' => $memberId, 'member_type = ?' => $type));
 }
Ejemplo n.º 3
0
 public function editAction()
 {
     if ($this->getRequest()->getMethod() == 'POST') {
         if ($this->_getParam('button') == 'close') {
             $this->_redirect('group/');
         }
         $group = new Knowledgeroot_Group($this->_getParam('id'));
         $group->setName($this->_getParam('name'));
         $group->setDescription($this->_getParam('description'));
         $group->setActive($this->_getParam('active'));
         $group->save();
         // remove existing group memberships
         Knowledgeroot_Group::deleteMemberFromGroups($group);
         // save group membership
         foreach (Knowledgeroot_Util::objectToArray(json_decode($this->_getParam('memberpanel_group'))) as $memberId => $value) {
             // we only can be a member of a group
             if ($memberId[0] == 'G') {
                 $id = substr($memberId, 2);
                 $pgroup = new Knowledgeroot_Group($id);
                 $pgroup->addMember($group);
             }
         }
         Knowledgeroot_Group::deleteGroupMembers($group);
         // save members
         foreach (Knowledgeroot_Util::objectToArray(json_decode($this->_getParam('memberpanel_member'))) as $memberId => $value) {
             if ($memberId[0] == 'G') {
                 $id = substr($memberId, 2);
                 $mgroup = new Knowledgeroot_Group($id);
                 $group->addMember($mgroup);
             }
             if ($memberId[0] == 'U') {
                 $id = substr($memberId, 2);
                 $muser = new Knowledgeroot_User($id);
                 $group->addMember($muser);
             }
         }
         if ($this->_getParam('button') == 'save') {
             $this->_redirect('group/edit/' . $group->getId());
         } else {
             $this->_redirect('group/');
         }
     } else {
         $id = $this->_getParam('id');
         $group = new Knowledgeroot_Group($id);
         $this->view->action = 'edit';
         $this->view->id = $group->getId();
         $this->view->name = $group->getName();
         $this->view->description = $group->getDescription();
         $this->view->active = $group->getActive();
         $this->renderScript("group/group.phtml");
     }
 }