diff --git a/admin/ajax/createuser.php b/admin/ajax/createuser.php index 1bb655ed33..de52f90d4f 100644 --- a/admin/ajax/createuser.php +++ b/admin/ajax/createuser.php @@ -28,6 +28,9 @@ if( in_array( $username, OC_User::getUsers())){ // Return Success story if( OC_User::createUser( $username, $password )){ foreach( $groups as $i ){ + if(!OC_Group::groupExists($i)){ + OC_Group::createGroup($i); + } OC_Group::addToGroup( $username, $i ); } echo json_encode( array( "status" => "success", "data" => array( "username" => $username, "groups" => implode( ", ", OC_Group::getUserGroups( $username ))))); diff --git a/admin/ajax/togglegroups.php b/admin/ajax/togglegroups.php index 808e57dc9d..3210252af0 100644 --- a/admin/ajax/togglegroups.php +++ b/admin/ajax/togglegroups.php @@ -19,11 +19,19 @@ $action = "add"; $username = $_POST["username"]; $group = $_POST["group"]; +if(!OC_Group::groupExists($group)){ + OC_Group::createGroup($group); +} + // Toggle group if( OC_Group::inGroup( $username, $group )){ $action = "remove"; $error = "remove user from"; $success = OC_Group::removeFromGroup( $username, $group ); + $usersInGroup=OC_Group::usersInGroup($group); + if(count($usersInGroup)==0){ + OC_Group::deleteGroup($group); + } } else{ $success = OC_Group::addToGroup( $username, $group ); diff --git a/admin/apps.php b/admin/apps.php index 83a48b6524..07e93728a3 100644 --- a/admin/apps.php +++ b/admin/apps.php @@ -33,11 +33,16 @@ OC_Util::addScript( "admin", "apps" ); $registeredApps=OC_App::getAllApps(); $apps=array(); + +$blacklist=array('files_imageviewer','files_textviewer');//we dont want to show configuration for these + foreach($registeredApps as $app){ - $info=OC_App::getAppInfo($app); - $active=(OC_Appconfig::getValue($app,'enabled','no')=='yes')?true:false; - $info['active']=$active; - $apps[]=$info; + if(array_search($app,$blacklist)===false){ + $info=OC_App::getAppInfo($app); + $active=(OC_Appconfig::getValue($app,'enabled','no')=='yes')?true:false; + $info['active']=$active; + $apps[]=$info; + } } $categories=OC_OCSClient::getCategories(); diff --git a/admin/css/users.css b/admin/css/users.css index 521217df4f..7c0b76f369 100644 --- a/admin/css/users.css +++ b/admin/css/users.css @@ -1,5 +1,12 @@ -form {display:inline} -td.remove>img,td.select>input{display:none;cursor:pointer} -td.select,td.remove{width:1em} -tr:hover>td.remove>img{display:inline} -li.selected{background-color:#ddd} +form { display:inline; } +td.password>img, td.remove>img{ display:none;cursor:pointer; } +td.password>span { margin-right:1.2em; } +td.password { width:12em; } +td.password>img { float:right; } + +td.remove { width:1em } +tr:hover>td.password>span{ margin:0; } +tr:hover>td.remove>img, tr:hover>td.password>img { display:inline; } +li.selected { background-color:#ddd; } +#content>table { margin-top:6.5em; } +table { width:100%; } diff --git a/admin/js/users.js b/admin/js/users.js index 7e643fb60a..d6798dca57 100644 --- a/admin/js/users.js +++ b/admin/js/users.js @@ -1,5 +1,37 @@ $(document).ready(function(){ - $('select[multiple]').chosen(); + function applyMultiplySelect(element){ + var checked=[]; + var user=element.data('username') + if(element.data('userGroups')){ + checked=element.data('userGroups').split(', '); + } + if(user){ + var checkHandeler=function(group){ + if(user==OC.currentUser && group=='admin'){ + return false; + } + $.post( + OC.filePath('admin','ajax','togglegroups.php'), + { + username:user, + group:group + }, + function(){} + ); + } + }else{ + checkHandeler=false; + } + element.multiSelect({ + createText:'add group', + checked:checked, + oncheck:checkHandeler, + onuncheck:checkHandeler + }); + } + $('select[multiple]').each(function(index,element){ + applyMultiplySelect($(element)); + }); $('td.remove>img').live('click',function(event){ var uid=$(this).parent().parent().data('uid'); @@ -13,11 +45,38 @@ $(document).ready(function(){ $(this).parent().parent().remove(); }); + $('td.password>img').live('click',function(event){ + var img=$(this); + var uid=img.parent().parent().data('uid'); + var input=$(''); + img.css('display','none'); + img.parent().children('span').replaceWith(input); + input.focus(); + input.keypress(function(event) { + if(event.keyCode == 13) { + if($(this).val().length>0){ + $.post( + OC.filePath('admin','ajax','changepassword.php'), + {username:uid,password:$(this).val()}, + function(result){} + ); + input.blur(); + }else{ + input.blur(); + } + } + }); + input.blur(function(){ + $(this).replaceWith($('●●●●●●●')); + img.css('display',''); + }); + }); + $('#newuser').submit(function(event){ event.preventDefault(); var username=$('#newusername').val(); var password=$('#newuserpassword').val(); - var groups=$('#newusergroups').val(); + var groups=$('#newusergroups').prev().children('div').data('settings').checked; $.post( OC.filePath('admin','ajax','createuser.php'), { @@ -29,72 +88,21 @@ $(document).ready(function(){ } ); - var tr=$('#rightcontent tr').first().clone(); + var tr=$('#content table tr').first().clone(); tr.attr('data-uid',username); tr.find('td.name').text(username); - tr.find('td.groups').text(groups.join(', ')); - $('#rightcontent tr').first().after(tr); - if(groups.indexOf($('#leftcontent li.selected').text().trim())!=-1){ - tr.find('td.select input').attr('checked','checked'); - } - }); - - $('#newgroup').submit(function(event){ - event.preventDefault(); - var name=$('#newgroupname').val(); - $.post( - OC.filePath('admin','ajax','creategroup.php'), - {groupname:name}, - function(result){ - - } - ); - $('#newusergroups').append(''); - $('select[multiple]').trigger("liszt:updated"); - var li=$('#leftcontent li').first().next().clone(); - li.text(name); - $('#leftcontent li').first().after(li); - }); - - $('#leftcontent li').live('click',function(event){ - $('#leftcontent li').removeClass('selected'); - $(this).addClass('selected'); - $('#rightcontent tr td.select input').show(); - $('#rightcontent tr td.select input').removeAttr('checked'); - var group=$(this).text().trim(); - var rows=$('#rightcontent tr').filter(function(i,tr){ - return ($(tr).children('td.groups').text().split(', ').indexOf(group)>-1); + var select=$(' - -
@@ -14,29 +10,32 @@
-