Exemplo n.º 1
0
 /**
  * Gets the member's member groups
  * @param Member $member
  * @return Membergroup[] Returns the member groups assigned to the user
  */
 static function MemberMembergroups(Member $member)
 {
     if (!$member->Exists()) {
         return array();
     }
     $sql = Access::SqlBuilder();
     $tblMmg = MemberMembergroup::Schema()->Table();
     $tblMg = Membergroup::Schema()->Table();
     $join = $sql->Join($tblMmg);
     $joinCondition = $sql->Equals($tblMmg->Field('MemberGroup'), $tblMg->Field('ID'));
     $where = $sql->Equals($tblMmg->Field('Member'), $sql->Value($member->GetID()));
     $orderBy = $sql->OrderList($sql->OrderAsc($tblMg->Field('Name')));
     return Membergroup::Schema()->Fetch(false, $where, $orderBy, null, 0, null, $join, JoinType::Inner(), $joinCondition);
 }
Exemplo n.º 2
0
 private function AddGroups($member)
 {
     //Clear groups (although none should exist...)
     $memMemGrps = MemberMembergroup::Schema()->FetchByMember(false, $member);
     foreach ($memMemGrps as $memMemGrp) {
         $memMemGrp->Delete();
     }
     $confGroups = RegisterConfirmMembergroup::Schema()->FetchByConfirm(false, $this->confirm);
     foreach ($confGroups as $confGroup) {
         $memMemGrp = new MemberMembergroup();
         $memMemGrp->SetMember($member);
         $memMemGrp->SetMemberGroup($confGroup->GetMemberGroup());
         $memMemGrp->Save();
     }
 }
Exemplo n.º 3
0
 /**
  * Deletes the unselected group ids
  * @param array $exGroupIDs Currently assigned group ids
  * @param array $selGroupIDs Selected group ids
  */
 private function DeleteOldGroups(array $selGroupIDs)
 {
     $tblMmg = MemberMembergroup::Schema()->Table();
     $sql = Access::SqlBuilder();
     $where = $sql->Equals($tblMmg->Field('Member'), $sql->Value($this->member->GetID()));
     if (count($selGroupIDs) > 0) {
         $selectedList = $sql->InListFromValues($selGroupIDs);
         $where = $where->And_($sql->NotIn($tblMmg->Field('MemberGroup'), $selectedList));
     }
     MemberMembergroup::Schema()->Delete($where);
 }