[Form] public class AMSysAdminAssignment extends FormRun { public void init() { super(); } [Control("Button")] class btnAssignSysAdmin { public void clicked() { str userId = curUserId(); SecurityRole sr; SecurityUserRole sur; select AotName, RecId from sr where sr.AotName == "-SYSADMIN-"; if(sr) { select firstonly forupdate User, SecurityRole, AssignmentStatus from sur where sur.User == userId && sur.SecurityRole == sr.RecId; if(sur) { ttsbegin; sur.AssignmentStatus = RoleAssignmentStatus::Enabled; sur.update(); ttscommit; } else { ttsbegin; sur.clear(); sur.User = userId; sur.SecurityRole = sr.RecId; sur.AssignmentStatus = RoleAssignmentStatus::Enabled; sur.AssignmentMode = RoleAssignmentMode::Manual; sur.insert(); ttscommit; } Box::info(strFmt("Assigned SYSADMIN role to %1", userId), "", ""); } element.close(); } } [Control("Button")] class btnRevokeSysAdmin { public void clicked() { str userId = curUserId(); SecurityRole sr; SecurityUserRole sur; select AotName, RecId from sr where sr.AotName == "-SYSADMIN-"; if(sr) { select firstonly forupdate User, SecurityRole, AssignmentStatus from sur where sur.User == userId && sur.SecurityRole == sr.RecId; if(sur) { ttsbegin; sur.AssignmentStatus = RoleAssignmentStatus::Disabled; sur.update(); ttscommit; Box::info(strFmt("Removed SYSADMIN role from %1", userId), "", ""); } else { Box::info(strFmt("SYSADMIN role not assigned to %1", userId), "", ""); } } element.close(); } } [Control("Button")] class btnCancel { public void clicked() { element.close(); } } }