Disable private projects when disabling a user
This commit is contained in:
parent
aa5199db7f
commit
cb9e6377f6
|
|
@ -286,7 +286,11 @@ class UserModel extends Base
|
|||
*/
|
||||
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->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']);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue