UserController   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 13
lcom 0
cbo 2
dl 0
loc 61
ccs 0
cts 37
cp 0
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A disconnectUser() 0 3 1
A disconnectGuest() 0 3 1
B disconnect() 0 13 5
B rename() 0 19 5
1
<?php
2
/**
3
 * ownCloud - Documents App
4
 *
5
 * @author Victor Dubiniuk
6
 * @copyright 2014 Victor Dubiniuk [email protected]
7
 *
8
 * This file is licensed under the Affero General Public License version 3 or
9
 * later.
10
 */
11
12
13
namespace OCA\Documents\Controller;
14
15
use \OCP\AppFramework\Controller;
16
use \OCP\IRequest;
17
use \OCP\AppFramework\Http\JSONResponse;
18
19
use \OCA\Documents\Db;
20
21
class UserController extends Controller {
22
	
23
	public function __construct($appName, IRequest $request){
24
		parent::__construct($appName, $request);
25
	}
26
	
27
	/**
28
	 * @NoAdminRequired
29
	 */
30
	public function disconnectUser($memberId, $esId){
31
		return $this->disconnect($memberId, $esId);
32
	}
33
	
34
	/**
35
	 * @NoAdminRequired
36
	 * @PublicPage
37
	 */
38
	public function disconnectGuest($memberId, $esId){
39
		return $this->disconnect($memberId, $esId);
40
	}
41
	
42
	private function disconnect($memberId, $esId){
43
		$member = new Db\Member();
44
		$member->loadBy('member_id', $memberId);
45
		if ($esId && $member->hasData()){
46
			if ($member->getEsId() === $esId && $member->getStatus() == Db\Member::MEMBER_STATUS_ACTIVE){
47
				$member->deactivate(array($memberId));
48
				$op = new Db\Op();
49
				$op->removeMember($esId, $memberId);
50
			}
51
		}
52
		
53
		return array('status'=>'success');
54
	}
55
	
56
	/**
57
	 * @NoAdminRequired
58
	 * @PublicPage
59
	 * @param int $memberId
60
	 * @param string $name
61
	 */
62
	public function rename($memberId, $name){
63
		$member = new Db\Member();
64
		$member->load($memberId);
65
66
		if ($member->getEsId()
67
				&& $member->getStatus() == Db\Member::MEMBER_STATUS_ACTIVE 
68
				&& $member->getIsGuest()
69
		){
70
			$guestMark = Db\Member::getGuestPostfix();
71
			if (substr($name, -strlen($guestMark)) !== $guestMark){
72
				$name = $name . ' ' . $guestMark;
73
			}
74
			
75
			$op = new Db\Op();
76
			$op->changeNick($member->getEsId(), $memberId, $name);
77
		}
78
		
79
		return array('status'=>'success');
80
	}
81
}
82