update for user settings and listing project role.

This commit is contained in:
kunw 2016-06-17 15:22:58 +08:00
parent b525062cea
commit d9825763cf
9 changed files with 20 additions and 16 deletions

View File

@ -292,7 +292,7 @@ func (ua *UserAPI) ChangePassword() {
} }
} }
// ToggleUserAdminRole handles PUT api/users/{}/toggleadmin // ToggleUserAdminRole handles PUT api/users/{}/sysadmin
func (ua *UserAPI) ToggleUserAdminRole() { func (ua *UserAPI) ToggleUserAdminRole() {
if !ua.IsAdmin { if !ua.IsAdmin {
log.Warningf("current user, id: %d does not have admin role, can not update other user's role", ua.currentUserID) log.Warningf("current user, id: %d does not have admin role, can not update other user's role", ua.currentUserID)

View File

@ -9,7 +9,6 @@
function roles() { function roles() {
return [ return [
{'id': '0', 'name': 'N/A', 'roleName': 'n/a'},
{'id': '1', 'name': 'Project Admin', 'roleName': 'projectAdmin'}, {'id': '1', 'name': 'Project Admin', 'roleName': 'projectAdmin'},
{'id': '2', 'name': 'Developer', 'roleName': 'developer'}, {'id': '2', 'name': 'Developer', 'roleName': 'developer'},
{'id': '3', 'name': 'Guest', 'roleName': 'guest'} {'id': '3', 'name': 'Guest', 'roleName': 'guest'}

View File

@ -49,13 +49,13 @@
</table> </table>
</div> </div>
</div> </div>
<div class="col-xs-4 col-md-12 well well-sm well-custom well-split"><div class="col-md-offset-10">//vm.projects ? vm.projects.length : 0// // 'items' | tr //</div></div> <div class="col-xs-4 col-md-12 well well-sm well-custom well-split"><div class="col-md-offset-10">//vm.replicationPolicies ? vm.replicationPolicies.length : 0// // 'items' | tr //</div></div>
<p class="split-handle"><span class="glyphicon glyphicon-align-justify"></span></p> <p class="split-handle"><span class="glyphicon glyphicon-align-justify"></span></p>
<h4 class="h4-custom-down">Replication Jobs</h4> <h4 class="h4-custom-down">Replication Jobs</h4>
<hr class="hr-line"/> <hr class="hr-line"/>
<div class="form-inline"> <div class="form-inline">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" placeholder="" ng-model="vm.repositoryName" size="30"> <input type="text" class="form-control" placeholder="" ng-model="vm.replicationJobName" size="30">
<span class="input-group-btn"> <span class="input-group-btn">
<button class="btn btn-primary" type="button" ng-click="vm.searchReplicationJob()"><span class="glyphicon glyphicon-search"></span></button> <button class="btn btn-primary" type="button" ng-click="vm.searchReplicationJob()"><span class="glyphicon glyphicon-search"></span></button>
</span> </span>

View File

@ -12,17 +12,16 @@
<div class="sub-pane"> <div class="sub-pane">
<table class="table"> <table class="table">
<thead> <thead>
<th>// 'username' | tr //</th><th>// 'role' | tr //</th><th>// 'email' | tr //</th><th>// 'registration_time' | tr //</th><th>// 'operation' | tr //</th> <th>// 'username' | tr //</th><th>// 'email' | tr //</th><th>// 'registration_time' | tr //</th><th>// 'operation' | tr //</th>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="u in vm.users"> <tr ng-repeat="u in vm.users">
<td>//u.username//</td> <td>//u.username//</td>
<td>N/A</td>
<td>//u.email//</td> <td>//u.email//</td>
<td>//u.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'//</td> <td>//u.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'//</td>
<td> <td>
<toggle-admin has-admin-role="u.HasAdminRole == 1" user-id="//u.UserId//"></toggle-admin>&nbsp;&nbsp; <toggle-admin has-admin-role="u.has_admin_role == 1" user-id="//u.user_id//"></toggle-admin>&nbsp;&nbsp;
&nbsp;&nbsp;<a href="javascript:void(0)" ng-click="vm.deleteUser(u.UserId)"><span class="glyphicon glyphicon-trash"></span></a> &nbsp;&nbsp;<a href="javascript:void(0)" ng-click="vm.deleteUser(u.user_id)"><span class="glyphicon glyphicon-trash"></span></a>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -12,10 +12,11 @@
var vm = this; var vm = this;
vm.isAdmin = (vm.hasAdminRole == 1) ? true : false; vm.isAdmin = (vm.hasAdminRole == 1) ? true : false;
vm.enabled = vm.isAdmin ? 0 : 1;
vm.toggle = toggle; vm.toggle = toggle;
function toggle() { function toggle() {
ToggleAdminService(vm.userId) ToggleAdminService(vm.userId, vm.enabled)
.success(toggleAdminSuccess) .success(toggleAdminSuccess)
.error(toggleAdminFailed); .error(toggleAdminFailed);
} }

View File

@ -36,8 +36,11 @@
} }
function getProjectRole(roleId) { function getProjectRole(roleId) {
var role = getRole({'key': 'roleId', 'value': roleId}); if(roleId !== 0) {
return role.name; var role = getRole({'key': 'roleId', 'value': roleId});
return role.name;
}
return '';
} }
function listProjectFailed(e) { function listProjectFailed(e) {

View File

@ -16,7 +16,7 @@
return $http return $http
.post('/api/projects/' + projectId + '/members/', { .post('/api/projects/' + projectId + '/members/', {
'roles': [ Number(roles) ], 'roles': [ Number(roles) ],
'user_name': username 'username': username
}); });
} }

View File

@ -12,9 +12,11 @@
return toggleAdmin; return toggleAdmin;
function toggleAdmin(userId) { function toggleAdmin(userId, enabled) {
return $http return $http
.put('/api/users/' + userId); .put('/api/users/' + userId + '/sysadmin', {
'has_admin_role' : enabled
});
} }
} }

View File

@ -27,7 +27,7 @@
<div class="sub-pane"> <div class="sub-pane">
<table class="table"> <table class="table">
<thead> <thead>
<th>// 'project_name' | tr //</th><th>// 'repositories' | tr //</th><th>// 'role' | tr //</th><th>// 'creation_time' | tr //</th><th>// 'publicity' | tr //</th> <th>// 'project_name' | tr //</th><th>// 'repositories' | tr //</th><th ng-if="!vm.publicity">// 'role' | tr //</th><th>// 'creation_time' | tr //</th><th>// 'publicity' | tr //</th>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
@ -36,7 +36,7 @@
<tr ng-if="vm.projects.length > 0" ng-repeat="p in vm.projects"> <tr ng-if="vm.projects.length > 0" ng-repeat="p in vm.projects">
<td><a href="/repository#/repositories?project_id=//p.project_id//&is_public=//p.public//">//p.name//</a></td> <td><a href="/repository#/repositories?project_id=//p.project_id//&is_public=//p.public//">//p.name//</a></td>
<td>//p.repo_count//</td> <td>//p.repo_count//</td>
<td>//vm.getProjectRole(p.current_user_role_id)//</td> <td ng-if="!vm.publicity">//vm.getProjectRole(p.current_user_role_id)//</td>
<td>//p.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'//</td> <td>//p.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'//</td>
<td><publicity-button is-public="p.public" owned="p.owner_id == vm.user.user_id" project-id="p.project_id"></publicity-button></td> <td><publicity-button is-public="p.public" owned="p.owner_id == vm.user.user_id" project-id="p.project_id"></publicity-button></td>
</tr> </tr>