コード例 #1
0
ファイル: UserTest.php プロジェクト: dsyman2/X2CRM
 public function testAfterDelete()
 {
     $user = User::model()->findByPk('2');
     if (X2_TEST_DEBUG_LEVEL > 1) {
         /**/
         print 'id of user to delete: ';
         /**/
         print $user->id;
     }
     // test calendar permissions deletion
     $this->assertNotEquals(0, sizeof(X2CalendarPermissions::model()->findAllByAttributes(array('user_id' => $user->id))));
     $this->assertNotEquals(0, sizeof(X2CalendarPermissions::model()->findAllByAttributes(array('other_user_id' => $user->id))));
     // assert that group to user records exist for this user
     $this->assertTrue(sizeof(GroupToUser::model()->findAllByAttributes(array('userId' => $user->id))) > 0);
     $this->assertTrue($user->delete());
     X2_TEST_DEBUG_LEVEL > 1 && (print 'looking for groupToUser records with userId = ' . $user->id);
     GroupToUser::model()->refresh();
     // assert that group to user records were deleted
     $this->assertTrue(sizeof(GroupToUser::model()->findAllByAttributes(array('userId' => $user->id))) === 0);
     // test profile deletion
     $this->assertTrue(sizeof(Profile::model()->findAllByAttributes(array('username' => $user->username))) === 0);
     // test social deletion
     $this->assertTrue(sizeof(Social::model()->findAllByAttributes(array('user' => $user->username))) === 0);
     $this->assertTrue(sizeof(Social::model()->findAllByAttributes(array('associationId' => $user->id))) === 0);
     // test event deletion
     $this->assertTrue(sizeof(Events::model()->findAll("user=:username OR (type='feed' AND associationId=" . $user->id . ")", array(':username' => $user->username))) === 0);
     // test calendar permissions deletion
     $this->assertEquals(0, sizeof(X2CalendarPermissions::model()->findAllByAttributes(array('user_id' => $user->id))));
     $this->assertEquals(0, sizeof(X2CalendarPermissions::model()->findAllByAttributes(array('other_user_id' => $user->id))));
 }
コード例 #2
0
ファイル: CalendarController.php プロジェクト: shuvro35/X2CRM
 /**
  *    Admin can set calendar permissions for all users
  */
 public function actionUserCalendarPermissions()
 {
     if (isset($_POST['user-id'])) {
         $id = $_POST['user-id'];
         // clear old permissions
         X2CalendarPermissions::model()->deleteAllByAttributes(array('user_id' => $id));
         $viewPermission = array();
         $editPermission = array();
         // $_POST['view-permission'] won't be set if no user has view permission
         if (isset($_POST['view-permission'])) {
             // any users have permssion to view this user's calendar?
             $viewPermission = $_POST['view-permission'];
         }
         if (isset($_POST['edit-permission'])) {
             // any users have permssion to edit this user's calendar?
             $editPermission = $_POST['edit-permission'];
         }
         $users = User::model()->findAll(array('select' => 'id'));
         foreach ($users as $user) {
             $view = in_array($user->id, $viewPermission);
             $edit = in_array($user->id, $editPermission);
             $permission = new X2CalendarPermissions();
             $permission->user_id = $id;
             $permission->other_user_id = $user->id;
             $permission->view = $view;
             $permission->edit = $edit;
             $permission->save();
         }
     }
     if (isset($_GET['id'])) {
         $this->render('userCalendarPermissions', array('id' => $_GET['id']));
     } else {
         $this->render('userCalendarPermissions');
     }
 }
コード例 #3
0
ファイル: User.php プロジェクト: dsyman2/X2CRM
 public function afterDelete()
 {
     // delete related social records (e.g. notes)
     $social = Social::model()->findAllByAttributes(array('user' => $this->username));
     foreach ($social as $socialItem) {
         $socialItem->delete();
     }
     $social = Social::model()->findAllByAttributes(array('associationId' => $this->id));
     foreach ($social as $socialItem) {
         $socialItem->delete();
     }
     X2CalendarPermissions::model()->deleteAllByAttributes(array(), 'user_id=:userId OR other_user_id=:userId', array(':userId' => $this->id));
     // delete profile
     $prof = Profile::model()->findByAttributes(array('username' => $this->username));
     if ($prof) {
         $prof->delete();
     }
     // delete associated events
     Yii::app()->db->createCommand()->delete('x2_events', "user=:username OR (type='feed' AND associationId=" . $this->id . ")", array(':username' => $this->username));
     // Delete associated group to user records
     GroupToUser::model()->deleteAll(array('condition' => 'userId=' . $this->id));
     parent::afterDelete();
 }
コード例 #4
0
 public static function getUserIdsWithEditPermission($id)
 {
     $users = User::model()->findAll(array('select' => 'id, username, firstName, lastName', 'index' => 'id'));
     $permissions = X2CalendarPermissions::model()->findAll(array('select' => 'user_id, other_user_id, edit', 'condition' => 'user_id=:user_id', 'params' => array(':user_id' => $id), 'index' => 'other_user_id'));
     $ids = array();
     $ids[] = 0;
     if (count($permissions) > 0) {
         // user has set permissions
         foreach ($users as $user) {
             if (isset($permissions[$user->id]) && $permissions[$user->id]->edit) {
                 $ids[] = $user->id;
             }
         }
     }
     // if user hasn't set permissions, default to not let anyone edit there calendar
     return $ids;
 }