Disable private projects when disabling a user
This commit is contained in:
@@ -286,7 +286,11 @@ class UserModel extends Base
|
|||||||
*/
|
*/
|
||||||
public function disable($user_id)
|
public function disable($user_id)
|
||||||
{
|
{
|
||||||
return $this->db->table(self::TABLE)->eq('id', $user_id)->update(array('is_active' => 0));
|
$this->db->startTransaction();
|
||||||
|
$result1 = $this->db->table(self::TABLE)->eq('id', $user_id)->update(array('is_active' => 0));
|
||||||
|
$result2 = $this->db->table(ProjectModel::TABLE)->eq('is_private', 1)->eq('owner_id', $user_id)->update(array('is_active' => 0));
|
||||||
|
$this->db->closeTransaction();
|
||||||
|
return $result1 && $result2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -381,4 +381,17 @@ class UserModelTest extends Base
|
|||||||
$this->assertEquals(1, $user['is_active']);
|
$this->assertEquals(1, $user['is_active']);
|
||||||
$this->assertTrue($userModel->isActive(2));
|
$this->assertTrue($userModel->isActive(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testDisablePrivateProjects()
|
||||||
|
{
|
||||||
|
$userModel = new UserModel($this->container);
|
||||||
|
$projectModel = new ProjectModel($this->container);
|
||||||
|
|
||||||
|
$this->assertEquals(2, $userModel->create(array('username' => 'toto', 'password' => '123456', 'name' => 'Toto')));
|
||||||
|
$this->assertEquals(1, $projectModel->create(array('name' => 'Project #1', 'is_private' => 1, 'owner_id' => 2)));
|
||||||
|
$this->assertTrue($userModel->disable(2));
|
||||||
|
|
||||||
|
$project = $projectModel->getById(2);
|
||||||
|
$this->assertEquals(0, $project['is_active']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user