PageRenderTime 50ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/magehelp/application/controllers/acls.php

https://bitbucket.org/jit_bec/shopifine
PHP | 528 lines | 384 code | 104 blank | 40 comment | 54 complexity | f77047aecc005d5674cc2c5a0dbf643d MD5 | raw file
Possible License(s): LGPL-3.0
  1. <?php
  2. /*
  3. * To change this template, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. /**
  7. * Description of users
  8. *
  9. * @author abhijit
  10. */
  11. require_once ("secure_area.php");
  12. class Acls extends Secure_area {
  13. function __construct()
  14. {
  15. parent::__construct('acls','adminmenu');
  16. $this->load->model('acl/User','Userview');
  17. //$this->load->model('acl/Resource','Resource');
  18. $this->load->model('acl/Role','Role');
  19. $this->load->model('acl/Permission','Permission');
  20. }
  21. function index(){
  22. $data['num_perm']= $this->Permission->totalNoOfRowsPermissionMapping();
  23. $data['num_res']= $this->Resource->totalNoOfRows();
  24. $data['num_role']= $this->Role->totalNoOfRoles();
  25. $data['num_users']= $this->User->count_all();
  26. $this->load->view("acl/dashboard",$data);
  27. }
  28. function loadUser(){
  29. $this->load->view("acl/user_grid");
  30. }
  31. function loadPermission (){
  32. $this->load->view("acl/permission_grid");
  33. }
  34. function loadResource (){
  35. $data['resourceTypeOptions'] = populateResourceTypesCommon();
  36. $data['parentOptions'] = populateParentResourcesEditCommon();
  37. $data['permissionTypeOptions']= populatePermissionTypesEditCommon(true);
  38. $this->load->view("acl/resource_grid",$data);
  39. }
  40. function loadRole (){
  41. $roleOptions = null;
  42. $roles = $this->Role->getAll();
  43. foreach($roles as $role) {
  44. $name=$role["role_name"];
  45. $id=$role["id"];
  46. if (!empty($name)){
  47. $roleOptions.="<OPTION VALUE=\"$id\">".$name;
  48. }
  49. }
  50. $data['roleOptions'] = $roleOptions;
  51. $this->load->view("acl/role_grid",$data);
  52. }
  53. function populateUser(){
  54. $searchOn = strip($_REQUEST['_search']);
  55. $page = $_REQUEST['page'];
  56. $limit = $_REQUEST['rows'];
  57. $sidx = $_REQUEST['sidx'];
  58. $sord = $_REQUEST['sord'];
  59. $usersdata = array();
  60. $count = $this->Userview->totalNoOfRowsUsersView();
  61. if( $count > 0 && $limit > 0) {
  62. $total_pages = ceil($count/$limit);
  63. } else {
  64. $total_pages = 0;
  65. }
  66. if ($page > $total_pages) $page=$total_pages;
  67. $start = $limit*$page - $limit;
  68. // if for some reasons start position is negative set it to 0
  69. // typical case is that the user type 0 for the requested page
  70. if($start <0) $start = 0;
  71. $clauses = array('orderBy'=>$sidx,'orderDir'=>$sord,'startLimit'=>$start,'limit'=>$limit);
  72. $data['total'] = $total_pages;
  73. $data['page'] = $page;
  74. $data['records'] = $count;
  75. if($searchOn=='true') {
  76. $filters = json_decode($_REQUEST['filters'],true);
  77. $groupOp = $filters['groupOp'];
  78. $rules = $filters['rules'];
  79. $like_condition = array();
  80. foreach ($rules as $rule){
  81. $field = $rule['field'];
  82. $op= $rule['op'];
  83. $input = $rule['data'];
  84. $like_condition[$field] = $input;
  85. }
  86. $users = $this->Userview->getAllUsersView(false,null,null,$clauses,$like_condition);
  87. }
  88. else {
  89. $users = $this->Userview->getAllUsersView(false,null,null,$clauses);
  90. }
  91. //$dp['system_name']
  92. foreach ($users as $dp){
  93. array_push($usersdata, array('id'=> $dp['person_id'],'dprow' => array($dp['username'],$dp['role_name'],$dp['first_name'],$dp['last_name'],$dp['phone_number'],$dp['email'])));
  94. }
  95. $data['userdata'] = $usersdata;
  96. echo json_encode($data);
  97. }
  98. function populateRolesEdit (){
  99. $roleOptions = null;
  100. $roles = $this->Role->getAll();
  101. foreach($roles as $role) {
  102. $name=$role["role_name"];
  103. $id=$role["id"];
  104. if (!empty($name)){
  105. $roleOptions.="<OPTION VALUE=\"$id\">".$name;
  106. }
  107. }
  108. echo $roleOptions;
  109. }
  110. function editUser (){
  111. $oper = $_REQUEST['oper'];
  112. $password = $_REQUEST['password'];
  113. $firstname = $_REQUEST['first_name'];
  114. $lastname = $_REQUEST['last_name'];
  115. $role = $_REQUEST['role_name'];
  116. $phone = $_REQUEST['phone_number'];
  117. $email = $_REQUEST['email'];
  118. $username = $_REQUEST['username'];
  119. $personid = $_REQUEST['id'];
  120. $userdata = array();
  121. if (!empty($role)){
  122. if (!is_numeric($role)) {
  123. $role_id= $this->Role->getId($role);
  124. }
  125. else {
  126. $role_id = $role;
  127. }
  128. }
  129. if (empty($role) || empty($role_id) ){
  130. $role_id= $this->Role->getId('Guest');
  131. }
  132. if ($oper == 'add'){
  133. $userdata['username'] = $username;
  134. $userdata['password'] = md5($password);
  135. $userdata['role_id'] = $role_id;
  136. }
  137. $persondata = array('first_name'=>$firstname,'last_name'=>$lastname,'phone_number'=>$phone,'email'=>$email);
  138. $this->Userview->save($persondata,$userdata,$personid);
  139. }
  140. function populateResources(){
  141. $searchOn = strip($_REQUEST['_search']);
  142. $page = $_REQUEST['page'];
  143. $limit = $_REQUEST['rows'];
  144. $sidx = $_REQUEST['sidx'];
  145. $sord = $_REQUEST['sord'];
  146. $resourcesdata = array();
  147. $count = $this->Resource->totalNoOfRows();
  148. if( $count > 0 && $limit > 0) {
  149. $total_pages = ceil($count/$limit);
  150. } else {
  151. $total_pages = 0;
  152. }
  153. if ($page > $total_pages) $page=$total_pages;
  154. $start = $limit*$page - $limit;
  155. // if for some reasons start position is negative set it to 0
  156. // typical case is that the user type 0 for the requested page
  157. if($start <0) $start = 0;
  158. $clauses = array('orderBy'=>$sidx,'orderDir'=>$sord,'startLimit'=>$start,'limit'=>$limit);
  159. $data['total'] = $total_pages;
  160. $data['page'] = $page;
  161. $data['records'] = strval($count);
  162. if($searchOn=='true') {
  163. $filters = json_decode($_REQUEST['filters'],true);
  164. $groupOp = $filters['groupOp'];
  165. $rules = $filters['rules'];
  166. $like_condition = array();
  167. foreach ($rules as $rule){
  168. $field = $rule['field'];
  169. $op= $rule['op'];
  170. $input = $rule['data'];
  171. if ($field=='parent_id'){
  172. //$input = $this->Resource->getId($input);
  173. //$field = 'resource';
  174. $resourcesparents = $this->Resource->getAll(false,null,null,array('resource'=>$input));
  175. $resourcesparentsid = array();
  176. foreach($resourcesparents as $parents){
  177. array_push($resourcesparentsid,$parents['id']);
  178. }
  179. $in_res_array = array('field_name'=>$field,'value_array'=>$resourcesparentsid);
  180. }
  181. else if ($field=='resource_type_id'){
  182. $input = $this->Resource->getResourceTypeId($input);
  183. $like_condition[$field] = $input;
  184. }
  185. else {
  186. $like_condition[$field] = $input;
  187. }
  188. }
  189. $resources = $this->Resource->getAll(false,null,$clauses,$like_condition,$in_res_array);
  190. }
  191. else {
  192. $resources = $this->Resource->getAll(false,null,$clauses);
  193. }
  194. foreach ($resources as $dp){
  195. array_push($resourcesdata, array('id'=> $dp['id'],'dprow' => array($dp['resource'],$dp['resource_type_id'],$dp['parent_id'],
  196. $this->Resource->getResourceTypeName($dp['resource_type_id']),$this->Resource->getResourceName($dp['parent_id']),$dp['description'],$dp['ui_display_name'],$dp['relative_path_link'],$dp['relative_order_in_category'])));
  197. }
  198. $data['resourcedata'] = $resourcesdata;
  199. echo json_encode($data);
  200. }
  201. function populateResourceTypesEdit (){
  202. echo populateResourceTypesCommon();
  203. }
  204. function populatePermissionTypesEdit (){
  205. echo populatePermissionTypesEditCommon();
  206. }
  207. function populateParentResourcesEdit(){
  208. echo populateParentResourcesEditCommon();
  209. }
  210. function editResource (){
  211. $form_data = $_REQUEST['form_data'];
  212. $resource = $form_data['resource'];
  213. $resource_type_id = $form_data['resourceType'];
  214. $parent_id = $form_data['parent'];
  215. $description = $form_data['description'];
  216. $ui_display_name = $form_data['uiDisplayName'];
  217. $relative_path_link = $form_data['relativePath'];
  218. $relative_order_in_category = $form_data['relativeOrder'];
  219. $id = $form_data['resource_id_hidden'];
  220. $oper = $form_data['oper_hidden'];
  221. if ($oper=='add'){
  222. $id=false;
  223. $default_perm = $form_data['permissionType'];
  224. }
  225. $resourcedata = array();
  226. //
  227. $resourcedata['resource'] = $resource;
  228. $resourcedata['resource_type_id'] = $resource_type_id;
  229. $resourcedata['parent_id'] = $parent_id;
  230. $resourcedata['description'] = $description;
  231. $resourcedata['ui_display_name'] = $ui_display_name;
  232. $resourcedata['relative_order_in_category'] = $relative_order_in_category;
  233. $resourcedata['relative_path_link'] = $relative_path_link;
  234. $this->Resource->save($resourcedata,$id,$default_perm);
  235. }
  236. function populatePermissions(){
  237. $searchOn = strip($_REQUEST['_search']);
  238. $page = $_REQUEST['page'];
  239. $limit = $_REQUEST['rows'];
  240. $sidx = $_REQUEST['sidx'];
  241. $sord = $_REQUEST['sord'];
  242. $permissionsdata = array();
  243. $count = $this->Permission->totalNoOfRowsPermissionMapping();
  244. if( $count > 0 && $limit > 0) {
  245. $total_pages = ceil($count/$limit);
  246. } else {
  247. $total_pages = 0;
  248. }
  249. if ($page > $total_pages) $page=$total_pages;
  250. $start = $limit*$page - $limit;
  251. // if for some reasons start position is negative set it to 0
  252. // typical case is that the user type 0 for the requested page
  253. if($start <0) $start = 0;
  254. $clauses = array('orderBy'=>$sidx,'orderDir'=>$sord,'startLimit'=>$start,'limit'=>$limit);
  255. $data['total'] = $total_pages;
  256. $data['page'] = $page;
  257. $data['records'] = strval($count);
  258. if($searchOn=='true') {
  259. $filters = json_decode($_REQUEST['filters'],true);
  260. $groupOp = $filters['groupOp'];
  261. $rules = $filters['rules'];
  262. $like_condition = array();
  263. foreach ($rules as $rule){
  264. $field = $rule['field'];
  265. $op= $rule['op'];
  266. $input = $rule['data'];
  267. $like_condition[$field] = $input;
  268. }
  269. $permissions = $this->Permission->getAllPermissionMapping(false,null,$clauses,$like_condition);
  270. }
  271. else {
  272. $permissions = $this->Permission->getAllPermissionMapping(false,null,$clauses);
  273. }
  274. foreach ($permissions as $dp){
  275. array_push($permissionsdata, array('id'=> $dp['id'],'dprow' => array($dp['role_name'],$dp['resource_name'],$dp['permission_name'],$dp['isAllowed'])));
  276. }
  277. $data['permissiondata'] = $permissionsdata;
  278. echo json_encode($data);
  279. }
  280. function checkIfExists (){
  281. $roleid = $_REQUEST['role_name'];
  282. $resourceid = $_REQUEST['resource_name'];
  283. $permissionid = $_REQUEST['permission_name'];
  284. $status = $this->Permission->permissionExists($roleid,$resourceid,$permissionid);
  285. if ($status){
  286. return true;
  287. }
  288. else {
  289. return false;
  290. }
  291. }
  292. function editPermission (){
  293. $oper = $_REQUEST['oper'];
  294. if($oper == 'add' && $this->checkIfExists()){
  295. echo 'error';
  296. }
  297. else {
  298. $roleid = $_REQUEST['role_name'];
  299. $resourceid = $_REQUEST['resource_name'];
  300. $permissionid = $_REQUEST['permission_name'];
  301. $isAllowed = $_REQUEST['isAllowed'];
  302. $role_name = $this->Role->getName($roleid);
  303. $resource_name = $this->Resource->getResourceName($resourceid);
  304. $permission_name = $this->Permission->getPermissionName($permissionid);
  305. $id = $_REQUEST['id'];
  306. if ($id=='_empty'){
  307. $id=false;
  308. }
  309. $permissiondata = array();
  310. $permissiondata['role_id'] = $roleid;
  311. $permissiondata['role_name'] = $role_name;
  312. $permissiondata['resource_id'] = $resourceid;
  313. $permissiondata['resource_name'] = $resource_name;
  314. $permissiondata['permission_id'] = $permissionid;
  315. $permissiondata['permission_name'] = $permission_name;
  316. $permissiondata['isAllowed'] = $isAllowed;
  317. $this->Permission->save($permissiondata,$id);
  318. echo 'success';
  319. }
  320. }
  321. public function populateRoles(){
  322. $searchOn = strip($_REQUEST['_search']);
  323. $page = $_REQUEST['page'];
  324. $limit = $_REQUEST['rows'];
  325. $sidx = $_REQUEST['sidx'];
  326. $sord = $_REQUEST['sord'];
  327. $rolesdata = array();
  328. $count = $this->Role->totalNoOfRowsInParentMapping();
  329. if( $count > 0 && $limit > 0) {
  330. $total_pages = ceil($count/$limit);
  331. } else {
  332. $total_pages = 0;
  333. }
  334. if ($page > $total_pages) $page=$total_pages;
  335. $start = $limit*$page - $limit;
  336. // if for some reasons start position is negative set it to 0
  337. // typical case is that the user type 0 for the requested page
  338. if($start <0) $start = 0;
  339. $clauses = array('orderBy'=>$sidx,'orderDir'=>$sord,'startLimit'=>$start,'limit'=>$limit);
  340. $data['total'] = $total_pages;
  341. $data['page'] = $page;
  342. $data['records'] = $count;
  343. if($searchOn=='true') {
  344. $filters = json_decode($_REQUEST['filters'],true);
  345. $groupOp = $filters['groupOp'];
  346. $rules = $filters['rules'];
  347. $like_condition = array();
  348. foreach ($rules as $rule){
  349. $field = $rule['field'];
  350. $op= $rule['op'];
  351. $input = $rule['data'];
  352. $like_condition[$field] = $input;
  353. }
  354. $roles = $this->Role->getAllParentsMapping(false,null,$clauses,$like_condition);
  355. }
  356. else {
  357. $roles = $this->Role->getAllParentsMapping(false,null,$clauses);
  358. }
  359. //$dp['system_name']
  360. foreach ($roles as $dp){
  361. array_push($rolesdata, array('id'=> $dp['id'],'dprow' => array($dp['role_name'],$dp['parent_role_name'])));
  362. }
  363. $data['roledata'] = $rolesdata;
  364. echo json_encode($data);
  365. }
  366. function checkIfRoleParentExists (){
  367. $roleid = $_REQUEST['role_id'];
  368. $parentroleid = $_REQUEST['parent_role_id'];
  369. $status = $this->Role->parentExists($roleid,$parentroleid);
  370. if ($status){
  371. return true;
  372. }
  373. else {
  374. return false;
  375. }
  376. }
  377. function editRoleInheritance (){
  378. if($this->checkIfRoleParentExists()){
  379. echo 'error';
  380. }
  381. else {
  382. $oper = $_REQUEST['oper'];
  383. $roleid = $_REQUEST['role_id'];
  384. $parentid = $_REQUEST['parent_role_id'];
  385. $role_name = $this->Role->getName($roleid);
  386. $parent_name = $this->Role->getName($parentid);
  387. $id = $_REQUEST['id'];
  388. if ($id=='_empty'){
  389. $id=false;
  390. }
  391. $parentdata = array();
  392. //
  393. $parentdata['role_id'] = $roleid;
  394. $parentdata['role_name'] = $role_name;
  395. $parentdata['parent_role_id'] = $parentid;
  396. $parentdata['parent_role_name'] = $parent_name;
  397. $this->Role->saveParent($parentdata,$id);
  398. echo 'success';
  399. }
  400. }
  401. // function checkIfRoleExists
  402. function createRole (){
  403. //$oper = $_REQUEST['oper'];
  404. $rolename= $_REQUEST['name'];
  405. $parents = $_REQUEST['parent'];
  406. $role_data = array('role_name'=>$rolename);
  407. $this->Role->insert($role_data,$parents);
  408. // $role_name = $this->Role->getName($roleid);
  409. // $parent_name = $this->Role->getName($parentid);
  410. //
  411. //
  412. // $id = $_REQUEST['id'];
  413. // if ($id=='_empty'){
  414. // $id=false;
  415. // }
  416. // $parentdata = array();
  417. ////
  418. // $parentdata['role_id'] = $roleid;
  419. // $parentdata['role_name'] = $role_name;
  420. // $parentdata['parent_role_id'] = $parentid;
  421. // $parentdata['parent_role_name'] = $parent_name;
  422. }
  423. }
  424. ?>