Code Duplication    Length = 23-27 lines in 3 locations

src/database/databasetraits/RoleTrait.php 3 locations

@@ 277-303 (lines=27) @@
274
        return $this->execute($sql);
275
    }
276
277
    private function _dealWithOldParentRoles($original_parent_roles, $new_roles_to_add, $rolename)
278
    {
279
        $old = explode(',', $original_parent_roles);
280
281
        // Grant the roles of the old role owners to the new owner
282
        foreach ($new_roles_to_add as $m) {
283
            if (!in_array($m, $old, true)) {
284
                $status = $this->grantRole($m, $rolename);
285
                if ($status != 0) {
286
                    return -1;
287
                }
288
            }
289
        }
290
291
        // Revoke the new role to the old members if they don't have the requested role name
292
293
        foreach ($old as $o) {
294
            if (!in_array($o, $new_roles_to_add, true)) {
295
                $status = $this->revokeRole($o, $rolename, 0, 'CASCADE');
296
                if ($status != 0) {
297
                    return -1;
298
                }
299
            }
300
        }
301
302
        return 0;
303
    }
304
305
    private function _dealWithOriginalMembers($original_members, $new_members_of_role, $rolename)
306
    {
@@ 305-329 (lines=25) @@
302
        return 0;
303
    }
304
305
    private function _dealWithOriginalMembers($original_members, $new_members_of_role, $rolename)
306
    {
307
        //members
308
        $old = explode(',', $original_members);
309
        foreach ($new_members_of_role as $m) {
310
            if (!in_array($m, $old, true)) {
311
                $status = $this->grantRole($rolename, $m);
312
                if ($status != 0) {
313
                    return -1;
314
                }
315
            }
316
        }
317
        if ($original_members) {
318
            foreach ($old as $o) {
319
                if (!in_array($o, $new_members_of_role, true)) {
320
                    $status = $this->revokeRole($rolename, $o, 0, 'CASCADE');
321
                    if ($status != 0) {
322
                        return -1;
323
                    }
324
                }
325
            }
326
        }
327
328
        return 0;
329
    }
330
331
    private function _dealWithOriginalAdmins($original_admins, $new_admins_of_role, $rolename)
332
    {
@@ 331-353 (lines=23) @@
328
        return 0;
329
    }
330
331
    private function _dealWithOriginalAdmins($original_admins, $new_admins_of_role, $rolename)
332
    {
333
        $old = explode(',', $original_admins);
334
        foreach ($new_admins_of_role as $m) {
335
            if (!in_array($m, $old, true)) {
336
                $status = $this->grantRole($rolename, $m, 1);
337
                if ($status != 0) {
338
                    return -1;
339
                }
340
            }
341
        }
342
343
        foreach ($old as $o) {
344
            if (!in_array($o, $new_admins_of_role, true)) {
345
                $status = $this->revokeRole($rolename, $o, 1, 'CASCADE');
346
                if ($status != 0) {
347
                    return -1;
348
                }
349
            }
350
        }
351
352
        return 0;
353
    }
354
355
    private function _alterRole($rolename, $password, $connlimit, $expiry, $superuser, $createdb, $createrole, $inherits, $login)
356
    {