Skip to content

Commit 6440786

Browse files
author
Ashwin Date
committed
Adding user plugin
1 parent afc868e commit 6440786

File tree

5 files changed

+443
-0
lines changed

5 files changed

+443
-0
lines changed

users/users.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
/**
3+
* @package API
4+
* @version 1.5
5+
* @author Brian Edgerton
6+
* @link http://www.edgewebworks.com
7+
* @copyright Copyright (C) 2011 Edge Web Works, LLC. All rights reserved.
8+
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
9+
*/
10+
11+
defined('_JEXEC') or die( 'Restricted access' );
12+
13+
jimport('joomla.plugin.plugin');
14+
15+
class plgAPIUsers extends ApiPlugin
16+
{
17+
public function __construct()
18+
{
19+
parent::__construct();
20+
21+
ApiResource::addIncludePath(dirname(__FILE__).'/users');
22+
}
23+
}

users/users.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<install version="1.7" type="plugin" group="api" method="upgrade">
3+
<name>Api - users</name>
4+
<version>1.0</version>
5+
<creationDate>April 2012</creationDate>
6+
<author>Tekdi</author>
7+
<authorEmail>[email protected]</authorEmail>
8+
<authorUrl>http://www.tekdi.com</authorUrl>
9+
<copyright>2012 users</copyright>
10+
<license>GNU General Public License v2</license>
11+
<description>This plugin exposes users to the Joomla! API</description>
12+
13+
<files>
14+
<filename plugin="users">users.php</filename>
15+
<filename >users/users.php</filename>
16+
<folder>users</folder>
17+
</files>
18+
</install>

users/users/users.php

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
<?php
2+
/**
3+
* @package API
4+
* @version 1.5
5+
* @author Brian Edgerton
6+
* @link http://www.edgewebworks.com
7+
* @copyright Copyright (C) 2011 Edge Web Works, LLC. All rights reserved.
8+
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
9+
*/
10+
11+
defined('_JEXEC') or die( 'Restricted access' );
12+
13+
jimport('joomla.plugin.plugin');
14+
jimport('joomla.html.html');
15+
jimport('joomla.user.helper');
16+
jimport( 'joomla.application.component.helper' );
17+
jimport( 'joomla.application.component.model' );
18+
jimport( 'joomla.database.table.user' );
19+
require_once( JPATH_SITE .DS.'components'.DS.'com_community'.DS.'libraries'.DS.'core.php');
20+
require_once( JPATH_SITE .DS.'libraries'.DS.'joomla'.DS.'filesystem'.DS.'folder.php');
21+
//vishal
22+
if(JFolder::exists(JPATH_BASE.DS.'components'.DS.'com_xipt'))
23+
{
24+
require_once( JPATH_SITE .DS.'components'.DS.'com_xipt'.DS.'api.xipt.php');
25+
}
26+
27+
class UsersApiResourceUsers extends ApiResource
28+
{
29+
30+
public function post()
31+
{
32+
33+
$error_messages = array();
34+
$fieldname = array();
35+
$response = NULL;
36+
$validated = true;
37+
$userid = NULL;
38+
$data = JRequest::get('post');
39+
//for rest api only
40+
unset($data['format']);
41+
unset($data['resource']);
42+
unset($data['app']);
43+
unset($data['password']);
44+
unset($data['username']);
45+
//
46+
//$userid = $data['userid'];
47+
$fields = $data['field'];
48+
49+
//chk data
50+
if($data['email']=="" )
51+
{
52+
$validated = false;
53+
$error_messages[] = array("id"=>1,"fieldname"=>"email","message"=>"Email cannot be blank");
54+
} elseif( false == $this->isValidEmail( $data['email'] ) ) {
55+
$validated = false;
56+
$error_messages[] = array("id"=>1,"fieldname"=>"email","message"=>"Please set valid email id eg.([email protected]). Check 'email' field in request");
57+
58+
}else
59+
{
60+
//check mail is registerd
61+
$isemail =& CFactory::getModel('register');
62+
$found = $isemail->isEmailExists(array('email'=>$data['email'] ));
63+
if($found)
64+
{
65+
$validated = false;
66+
$error_messages[] = array("id"=>1,"fieldname"=>"email","message"=>"email already exist and user is registered");
67+
}
68+
}
69+
70+
if( $data['password1']=="" )
71+
{
72+
$validated = false;
73+
$error_messages[] = array("id"=>1,"fieldname"=>"password","message"=>"Password cannot be blank");
74+
}
75+
76+
if( $data['name']=="" or $data['username1']=="" )
77+
{
78+
$validated = false;
79+
$error_messages[] = array("id"=>1,"fieldname"=>"name","message"=>"Name cannot be blank");
80+
}
81+
82+
if( true == $validated)
83+
{ //to create new user for joomla
84+
85+
global $message;
86+
jimport('joomla.user.helper');
87+
$authorize = & JFactory::getACL();
88+
$user = clone(JFactory::getUser());
89+
$user->set('username', $data['username1']);
90+
$user->set('password', $data['password1'] );
91+
$user->set('name', $data['name']);
92+
$user->set('email', $data['email']);
93+
94+
// password encryption
95+
$salt = JUserHelper::genRandomPassword(32);
96+
$crypt = JUserHelper::getCryptedPassword($user->password, $salt);
97+
$user->password = "$crypt:$salt";
98+
99+
// user group/type
100+
$user->set('id', '');
101+
$user->set('usertype', 'Registered');
102+
if(JVERSION >= '1.6.0')
103+
{
104+
$userConfig = JComponentHelper::getParams('com_users');
105+
// Default to Registered.
106+
$defaultUserGroup = $userConfig->get('new_usertype', 2);
107+
$user->set('groups', array($defaultUserGroup));
108+
}
109+
else
110+
$user->set('gid', $authorize->get_group_id( '', 'Registered', 'ARO' ));
111+
112+
$date =& JFactory::getDate();
113+
$user->set('registerDate', $date->toMySQL());
114+
115+
// true on success, false otherwise
116+
if(!$user->save())
117+
{
118+
$message="not created because of ".$user->getError();
119+
return false;
120+
}
121+
else
122+
{
123+
$message="created of username-".$user->username." and send mail of details please check";
124+
125+
}
126+
//$this->plugin->setResponse($user->id);
127+
$userid = $user->id;
128+
//create profile
129+
$profileModel =& CFactory::getModel('profile');
130+
$val = $profileModel->saveProfile($userid, $fields);
131+
//result message
132+
$result = array('user id '=>$userid,'message'=>$message);
133+
$result =($userid) ? $result : $message;
134+
135+
$this->plugin->setResponse($result);
136+
137+
138+
}
139+
else
140+
{
141+
142+
$this->plugin->setResponse($error_messages);//print_r($error_messages); die("validate mail2222");
143+
}
144+
145+
146+
147+
}
148+
149+
public function put()
150+
{
151+
$data = JRequest::get('post');
152+
153+
//for rest api only
154+
unset($data['format']);
155+
unset($data['resource']);
156+
unset($data['app']);
157+
unset($data['password']);
158+
unset($data['username']);
159+
//
160+
$userid = $data['userid'];
161+
$fields = $data['field'];
162+
163+
print_r($data);die;
164+
165+
166+
$this->plugin->setResponse( "in the put method" );
167+
}
168+
169+
public function delete()
170+
{
171+
$this->plugin->setResponse( "in the delete method" );
172+
}
173+
174+
function isValidEmail( $email )
175+
{
176+
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
177+
178+
if ( eregi( $pattern, $email ) )
179+
{
180+
return true;
181+
} else {
182+
return false;
183+
}
184+
}
185+
186+
}

users/users/users_delete.php

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?php
2+
/**
3+
* @package API
4+
* @version 1.5
5+
* @author Brian Edgerton
6+
* @link http://www.edgewebworks.com
7+
* @copyright Copyright (C) 2011 Edge Web Works, LLC. All rights reserved.
8+
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
9+
*/
10+
11+
// Check to ensure this file is included in Joomla!
12+
defined( '_JEXEC' ) or die( 'Restricted access' );
13+
14+
jimport( 'joomla.plugin.plugin' );
15+
jimport('joomla.user.helper');
16+
jimport( 'joomla.application.component.helper' );
17+
require_once( JPATH_SITE .DS.'components'.DS.'com_community'.DS.'libraries'.DS.'core.php');
18+
require_once( JPATH_SITE .DS.'libraries'.DS.'joomla'.DS.'filesystem'.DS.'folder.php');
19+
require_once( JPATH_ADMINISTRATOR .DS.'components'.DS.'com_users'.DS.'models'.DS.'user.php');
20+
//vaibhav
21+
if(JFolder::exists(JPATH_BASE.DS.'components'.DS.'com_xipt'))
22+
{
23+
require_once( JPATH_SITE .DS.'components'.DS.'com_xipt'.DS.'api.xipt.php');
24+
}
25+
26+
class UsersApiResourceUsers_delete extends ApiResource
27+
{
28+
29+
public function post()
30+
{
31+
//print_r("in post");die;
32+
33+
$error_messages = array();
34+
$fieldname = array();
35+
$response = NULL;
36+
$validated = true;
37+
$userid = NULL;
38+
$data = JRequest::get('post');
39+
//for rest api only
40+
unset($data['format']);
41+
unset($data['resource']);
42+
unset($data['app']);
43+
unset($data['password']);
44+
unset($data['username']);
45+
//
46+
$userid = $data['userid'];
47+
48+
$db = JFactory::getDBO();
49+
50+
$query = "DELETE u, um, cu, cf
51+
FROM #__users AS u
52+
LEFT JOIN #__user_usergroup_map AS um ON um.user_id = u.id
53+
LEFT JOIN #__community_users AS cu ON cu.userid = u.id
54+
LEFT JOIN #__community_fields_values AS cf ON cf.user_id = u.id
55+
WHERE u.id =".$userid."";
56+
57+
$db->setQuery($query);
58+
//$data1 = $db->loadResult();
59+
if (!$db->query())
60+
{
61+
$this->setError( $db->getErrorMsg() );
62+
return false;
63+
}
64+
else
65+
{
66+
$this->plugin->setResponse( "User of id = ".$userid." deleted" );
67+
}
68+
69+
70+
}
71+
72+
73+
}

0 commit comments

Comments
 (0)